Trait Bounds and Where Clauses

Updated

October 31, 2026

Trait Bounds and Where Clauses

Constrain generics using trait bounds and where clauses:

use std::fmt::Display;

fn print_and_return<T>(val: T) -> T
where
    T: Display + Clone,
{
    println!("Value: {}", val);
    val.clone()
}

fn main() {
    let res = print_and_return(42);
    println!("Returned: {}", res);
}