Por que o operador binário + não funciona com dois & mut int?

fn increment(number: &mut int) {

    // this fails with: binary operation `+` cannot be applied to type `&mut int`
    //let foo = number + number;

    let foo = number.add(number);

    println!("{}", foo);
}

fn main() {
    let mut test = 5;
    increment(&mut test);

    println!("{}", test);
}

Porquenumber + number falhar, masnumber.add(number) trabalho?

Como uma pergunta de bônus: O texto acima é impresso

10
5

Estou certo em assumir quetest ainda é 5 porque os dados sãocopiado para aumentar? A única maneira que o originaltest variável pode ser mutada peloincrement função seria se fosse enviado comoBox<int>, direito?

questionAnswers(1)

yourAnswerToTheQuestion