1 2 3 4 5 6 7 8 9 10 11 12 13
pub trait Addable { fn add(self, right: Self) -> Self; } impl Addable for String { fn add(self, right: Self) -> Self { format!("{}{}", self, right) } } pub fn __op_addadd<A: Addable>(left: A, right: A) -> A { Addable::add(left, right) }