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)
}