capypad
0 Tage Serie
rust / intermediate
Snippet

Mehrere Trait-Grenzen mit dem + Operator

Trait-Grenzen können mit + kombiniert werden, um zu erfordern, dass ein Typ mehrere Traits implementiert. Dies ermöglicht es Funktionen, Funktionalität aus mehreren Traits gleichzeitig zu nutzen und bietet Flexibilität bei generischen Einschränkungen.

snippet.rs
rust
1
2
3
4
5
6
7
8
9
10
11
12
13
use std::fmt::{Debug, Display};
 
fn print_debug<T>(item: &T)
where
T: Debug + Display,
{
println!("Debug: {:?}, Display: {}", item, item);
}
 
fn main() {
let num = 42;
print_debug(&num);
}
Erklärung
1
T: Debug + Display,
Typ T muss sowohl das Debug als auch das Display Trait implementieren
2
println!("Debug: {:?}, Display: {}", item, item);
Kann sowohl Debug- als auch Display-Formatierung auf item aufrufen