An interface for casting between machine scalars.
Creates a number from another value that can be converted into
a primitive via the
ToPrimitive trait. If the source value cannot be
represented by the target type, then
None is returned.
A value can be represented by the target type when it lies within
the range of scalars supported by the target type.
For example, a negative integer cannot be represented by an unsigned
integer type, and an
i64 with a very high magnitude might not be
convertible to an
On the other hand, conversions with possible precision loss or truncation
are admitted, like an
f32 with a decimal part to an integer type, or
even a large
f64 saturating to