Trait AsPrimitive
trait AsPrimitive<T>: 'static + Copy
where
T: 'static + Copy
A generic interface for casting between machine scalars with the
as operator, which admits narrowing and precision loss.
Implementers of this trait AsPrimitive should behave like a primitive
numeric type (e.g. a newtype around another primitive), and the
intended conversion must never fail.
Examples
# use AsPrimitive;
let three: i32 = .as_;
assert_eq!;
Safety
In Rust versions before 1.45.0, some uses of the as operator were not entirely safe.
In particular, it was undefined behavior if
a truncated floating point value could not fit in the target integer
type (#10184).
# use num_traits::AsPrimitive;
let x: u8 = (1.04E+17).as_(); // UB
Required Methods
fn as_(self: Self) -> TConvert a value to another, using the
asoperator.
Implementors
impl AsPrimitive for i32impl AsPrimitive for i8impl AsPrimitive for f32impl AsPrimitive for i64impl AsPrimitive for u16impl AsPrimitive for charimpl AsPrimitive for i128impl AsPrimitive for u32impl AsPrimitive for isizeimpl AsPrimitive for u64impl AsPrimitive for i8impl AsPrimitive for f32impl AsPrimitive for u128impl AsPrimitive for i16impl AsPrimitive for charimpl AsPrimitive for i128impl AsPrimitive for u32impl AsPrimitive for u8impl AsPrimitive for isizeimpl AsPrimitive for u64impl AsPrimitive for i8impl AsPrimitive for f64impl AsPrimitive for u128impl AsPrimitive for i16impl AsPrimitive for charimpl AsPrimitive for usizeimpl AsPrimitive for i32impl AsPrimitive for u8impl AsPrimitive for isizeimpl AsPrimitive for i64impl AsPrimitive for u16impl AsPrimitive for f64impl AsPrimitive for u128impl AsPrimitive for i16impl AsPrimitive for boolimpl AsPrimitive for usizeimpl AsPrimitive for i32impl AsPrimitive for u8impl AsPrimitive for f32impl AsPrimitive for i64impl AsPrimitive for u16impl AsPrimitive for f64impl AsPrimitive for i128impl AsPrimitive for u32impl AsPrimitive for boolimpl AsPrimitive for usizeimpl AsPrimitive for u64impl AsPrimitive for i8impl AsPrimitive for f32impl AsPrimitive for i64impl AsPrimitive for u16impl AsPrimitive for charimpl AsPrimitive for i128impl AsPrimitive for u32impl AsPrimitive for isizeimpl AsPrimitive for u64impl AsPrimitive for i8impl AsPrimitive for f32impl AsPrimitive for u128impl AsPrimitive for i16impl AsPrimitive for charimpl AsPrimitive for i128impl AsPrimitive for i32impl AsPrimitive for u8impl AsPrimitive for isizeimpl AsPrimitive for u64impl AsPrimitive for i8impl AsPrimitive for f64impl AsPrimitive for u128impl AsPrimitive for i16impl AsPrimitive for boolimpl AsPrimitive for usizeimpl AsPrimitive for i32impl AsPrimitive for u8impl AsPrimitive for isizeimpl AsPrimitive for i64impl AsPrimitive for u16impl AsPrimitive for f64impl AsPrimitive for u128impl AsPrimitive for u32impl AsPrimitive for boolimpl AsPrimitive for usizeimpl AsPrimitive for i32impl AsPrimitive for u8impl AsPrimitive for f32impl AsPrimitive for i64impl AsPrimitive for u16impl AsPrimitive for f64impl AsPrimitive for i128impl AsPrimitive for u32impl AsPrimitive for boolimpl AsPrimitive for usizeimpl AsPrimitive for u64impl AsPrimitive for i8impl AsPrimitive for f32impl AsPrimitive for i64impl AsPrimitive for i16impl AsPrimitive for charimpl AsPrimitive for i128impl AsPrimitive for u32impl AsPrimitive for u8impl AsPrimitive for isizeimpl AsPrimitive for u64impl AsPrimitive for i8impl AsPrimitive for f32impl AsPrimitive for u128impl AsPrimitive for i16impl AsPrimitive for charimpl AsPrimitive for i128impl AsPrimitive for i32impl AsPrimitive for u8impl AsPrimitive for isizeimpl AsPrimitive for u64impl AsPrimitive for u16impl AsPrimitive for f64impl AsPrimitive for u128impl AsPrimitive for i16impl AsPrimitive for boolimpl AsPrimitive for usizeimpl AsPrimitive for i32impl AsPrimitive for u8impl AsPrimitive for isizeimpl AsPrimitive for i64impl AsPrimitive for u16impl AsPrimitive for f64impl AsPrimitive for u128impl AsPrimitive for u32impl AsPrimitive for boolimpl AsPrimitive for usizeimpl AsPrimitive for i32impl AsPrimitive for i8impl AsPrimitive for f32impl AsPrimitive for i64impl AsPrimitive for u16impl AsPrimitive for charimpl AsPrimitive for i128impl AsPrimitive for u32impl AsPrimitive for boolimpl AsPrimitive for usizeimpl AsPrimitive for u64impl AsPrimitive for i8impl AsPrimitive for f32impl AsPrimitive for i64impl AsPrimitive for i16impl AsPrimitive for charimpl AsPrimitive for i128impl AsPrimitive for u32impl AsPrimitive for u8impl AsPrimitive for isizeimpl AsPrimitive for u64impl AsPrimitive for i8impl AsPrimitive for f64impl AsPrimitive for u128impl AsPrimitive for i16impl AsPrimitive for charimpl AsPrimitive for i128impl AsPrimitive for i32impl AsPrimitive for u8impl AsPrimitive for isizeimpl AsPrimitive for u64impl AsPrimitive for u16impl AsPrimitive for f64impl AsPrimitive for u128impl AsPrimitive for i16impl AsPrimitive for boolimpl AsPrimitive for usizeimpl AsPrimitive for i32impl AsPrimitive for u8impl AsPrimitive for f32impl AsPrimitive for i64impl AsPrimitive for u16impl AsPrimitive for f64impl AsPrimitive for u128impl AsPrimitive for u32impl AsPrimitive for boolimpl AsPrimitive for usizeimpl AsPrimitive for i32impl AsPrimitive for i8impl AsPrimitive for f32impl AsPrimitive for i64impl AsPrimitive for u16impl AsPrimitive for charimpl AsPrimitive for i128impl AsPrimitive for u32impl AsPrimitive for isizeimpl AsPrimitive for u64impl AsPrimitive for i8impl AsPrimitive for f32impl AsPrimitive for i64impl AsPrimitive for i16impl AsPrimitive for charimpl AsPrimitive for i128impl AsPrimitive for u32impl AsPrimitive for u8impl AsPrimitive for isizeimpl AsPrimitive for u64impl AsPrimitive for i8impl AsPrimitive for f64impl AsPrimitive for u128impl AsPrimitive for i16impl AsPrimitive for charimpl AsPrimitive for usizeimpl AsPrimitive for i32impl AsPrimitive for u8impl AsPrimitive for isizeimpl AsPrimitive for u64impl AsPrimitive for u16impl AsPrimitive for f64impl AsPrimitive for u128impl AsPrimitive for i16impl AsPrimitive for boolimpl AsPrimitive for usizeimpl AsPrimitive for i32impl AsPrimitive for u8impl AsPrimitive for f32impl AsPrimitive for i64impl AsPrimitive for u16impl AsPrimitive for f64impl AsPrimitive for i128impl AsPrimitive for u32impl AsPrimitive for boolimpl AsPrimitive for usize