capypad
0 Tage Serie
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
rust
1
2
3
4
5
6
7
8
9
10
fn process_data<F>(data: &str, handler: F)
where
F: 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.