As there’s currently no standard multiple-precision float library, only the built-in types, I tried to create bindings for GNU MPFR in Rust. It’s almost a perfect fit for the Float type, and I think it would be great if functions could be made generic over any float type.
However, Float requires Copy, and as the MPFR types need to implement Drop to conform to the library, I can’t create a Float implementation for them.
I can’t think of why a Float would also need to be Copy. Is there a reason behind it?