rust / expert
Snippet
Higher-Rank Trait Bounds (HRTB)
Higher-Rank Trait Bounds (HRTB) ermöglichen es, anzugeben, dass eine Bindung für alle möglichen Lebensdauern gilt. Die 'for<'a>'-Syntax stellt sicher, dass die Closure eine Referenz mit jeder beliebigen Lebensdauer verarbeiten kann, statt einer festen Lebensdauer beim Aufruf.
snippet.rs
1
2
3
4
5
6
7
8
9
10
fn process_data<F>(data: &str, handler: F)whereF: for<'a> Fn(&'a str),{handler(data);}fn main() {process_data("expert", |s| println!("Processing: {}", s));}
Erklärung
1
for<'a> Fn(&'a str)
Gibt an, dass die Funktion F den Fn-Trait für jede beliebige Lebensdauer 'a implementieren muss.