Bignum arithmetic actually is pretty simple in Rust if you use the right library. Rug[0] makes using bignums look almost just like using native numbers through operator overloading.
let a = Integer::from(10);
let b = a + a; let b = &a + &a;
will work, but I agree it's unfortunate that this is necessary.