rust-ape-example/src/bin/generics_where.rs
2022-09-07 10:49:49 +05:30

31 lines
628 B
Rust

// ./src/generics/where.md
use std::fmt::Debug;
trait PrintInOption {
fn print_in_option(self);
}
// Because we would otherwise have to express this as `T: Debug` or
// use another method of indirect approach, this requires a `where` clause:
impl<T> PrintInOption for T where
Option<T>: Debug {
// We want `Option<T>: Debug` as our bound because that is what's
// being printed. Doing otherwise would be using the wrong bound.
fn print_in_option(self) {
println!("{:?}", Some(self));
}
}
fn part0() {
let vec = vec![1, 2, 3];
vec.print_in_option();
}
pub fn main() {
part0();
}