How to use where clauses

Use the `where` keyword after a function signature to list trait constraints for generic types cleanly.

Use a where clause to specify trait bounds for generic types when the signature becomes too long or complex. Place the where keyword after the function's return type (or after the generic parameters in structs/impls) and list each constraint on a new line ending with a comma.

fn some_function<T, U>(t: &T, u: &U) -> i32
where
    T: Display + Clone,
    U: Clone + Debug,
{
    unimplemented!()
}