[][src]Trait primitive_from::PrimitiveFrom

pub trait PrimitiveFrom<T> {
    fn from(_: T) -> Self;
}

A generic interface for casting between machine scalars with the as operator, which admits narrowing and precision loss. Implementers of this trait PrimitiveFrom should behave like a primitive numeric type (e.g. a newtype around another primitive), and the intended conversion must never fail.

Examples

let three: i32 = PrimitiveFrom::from(3.14159265f32);
assert_eq!(three, 3);

Safety

Currently, some uses of the as operator are not entirely safe. In particular, it is undefined behavior if:

  • A truncated floating point value cannot fit in the target integer type (#10184);
This example is not tested
let x: u8 = PrimitiveFrom::from(1.04E+17); // UB
  • Or a floating point value does not fit in another floating point type (#15536).
This example is not tested
let x: f32 = PrimitiveFrom::from(1e300f64); // UB

Required methods

fn from(_: T) -> Self

Loading content...

Implementations on Foreign Types

impl PrimitiveFrom<u8> for char[src]

impl PrimitiveFrom<u8> for u8[src]

impl PrimitiveFrom<u8> for i8[src]

impl PrimitiveFrom<u8> for u16[src]

impl PrimitiveFrom<u8> for i16[src]

impl PrimitiveFrom<u8> for u32[src]

impl PrimitiveFrom<u8> for i32[src]

impl PrimitiveFrom<u8> for u64[src]

impl PrimitiveFrom<u8> for isize[src]

impl PrimitiveFrom<u8> for usize[src]

impl PrimitiveFrom<u8> for i64[src]

impl PrimitiveFrom<u8> for f32[src]

impl PrimitiveFrom<u8> for f64[src]

impl PrimitiveFrom<i8> for u8[src]

impl PrimitiveFrom<i8> for i8[src]

impl PrimitiveFrom<i8> for u16[src]

impl PrimitiveFrom<i8> for i16[src]

impl PrimitiveFrom<i8> for u32[src]

impl PrimitiveFrom<i8> for i32[src]

impl PrimitiveFrom<i8> for u64[src]

impl PrimitiveFrom<i8> for isize[src]

impl PrimitiveFrom<i8> for usize[src]

impl PrimitiveFrom<i8> for i64[src]

impl PrimitiveFrom<i8> for f32[src]

impl PrimitiveFrom<i8> for f64[src]

impl PrimitiveFrom<u16> for u8[src]

impl PrimitiveFrom<u16> for i8[src]

impl PrimitiveFrom<u16> for u16[src]

impl PrimitiveFrom<u16> for i16[src]

impl PrimitiveFrom<u16> for u32[src]

impl PrimitiveFrom<u16> for i32[src]

impl PrimitiveFrom<u16> for u64[src]

impl PrimitiveFrom<u16> for isize[src]

impl PrimitiveFrom<u16> for usize[src]

impl PrimitiveFrom<u16> for i64[src]

impl PrimitiveFrom<u16> for f32[src]

impl PrimitiveFrom<u16> for f64[src]

impl PrimitiveFrom<i16> for u8[src]

impl PrimitiveFrom<i16> for i8[src]

impl PrimitiveFrom<i16> for u16[src]

impl PrimitiveFrom<i16> for i16[src]

impl PrimitiveFrom<i16> for u32[src]

impl PrimitiveFrom<i16> for i32[src]

impl PrimitiveFrom<i16> for u64[src]

impl PrimitiveFrom<i16> for isize[src]

impl PrimitiveFrom<i16> for usize[src]

impl PrimitiveFrom<i16> for i64[src]

impl PrimitiveFrom<i16> for f32[src]

impl PrimitiveFrom<i16> for f64[src]

impl PrimitiveFrom<u32> for u8[src]

impl PrimitiveFrom<u32> for i8[src]

impl PrimitiveFrom<u32> for u16[src]

impl PrimitiveFrom<u32> for i16[src]

impl PrimitiveFrom<u32> for u32[src]

impl PrimitiveFrom<u32> for i32[src]

impl PrimitiveFrom<u32> for u64[src]

impl PrimitiveFrom<u32> for isize[src]

impl PrimitiveFrom<u32> for usize[src]

impl PrimitiveFrom<u32> for i64[src]

impl PrimitiveFrom<u32> for f32[src]

impl PrimitiveFrom<u32> for f64[src]

impl PrimitiveFrom<i32> for u8[src]

impl PrimitiveFrom<i32> for i8[src]

impl PrimitiveFrom<i32> for u16[src]

impl PrimitiveFrom<i32> for i16[src]

impl PrimitiveFrom<i32> for u32[src]

impl PrimitiveFrom<i32> for i32[src]

impl PrimitiveFrom<i32> for u64[src]

impl PrimitiveFrom<i32> for isize[src]

impl PrimitiveFrom<i32> for usize[src]

impl PrimitiveFrom<i32> for i64[src]

impl PrimitiveFrom<i32> for f32[src]

impl PrimitiveFrom<i32> for f64[src]

impl PrimitiveFrom<u64> for u8[src]

impl PrimitiveFrom<u64> for i8[src]

impl PrimitiveFrom<u64> for u16[src]

impl PrimitiveFrom<u64> for i16[src]

impl PrimitiveFrom<u64> for u32[src]

impl PrimitiveFrom<u64> for i32[src]

impl PrimitiveFrom<u64> for u64[src]

impl PrimitiveFrom<u64> for isize[src]

impl PrimitiveFrom<u64> for usize[src]

impl PrimitiveFrom<u64> for i64[src]

impl PrimitiveFrom<u64> for f32[src]

impl PrimitiveFrom<u64> for f64[src]

impl PrimitiveFrom<i64> for u8[src]

impl PrimitiveFrom<i64> for i8[src]

impl PrimitiveFrom<i64> for u16[src]

impl PrimitiveFrom<i64> for i16[src]

impl PrimitiveFrom<i64> for u32[src]

impl PrimitiveFrom<i64> for i32[src]

impl PrimitiveFrom<i64> for u64[src]

impl PrimitiveFrom<i64> for isize[src]

impl PrimitiveFrom<i64> for usize[src]

impl PrimitiveFrom<i64> for i64[src]

impl PrimitiveFrom<i64> for f32[src]

impl PrimitiveFrom<i64> for f64[src]

impl PrimitiveFrom<usize> for u8[src]

impl PrimitiveFrom<usize> for i8[src]

impl PrimitiveFrom<usize> for u16[src]

impl PrimitiveFrom<usize> for i16[src]

impl PrimitiveFrom<usize> for u32[src]

impl PrimitiveFrom<usize> for i32[src]

impl PrimitiveFrom<usize> for u64[src]

impl PrimitiveFrom<usize> for isize[src]

impl PrimitiveFrom<usize> for usize[src]

impl PrimitiveFrom<usize> for i64[src]

impl PrimitiveFrom<usize> for f32[src]

impl PrimitiveFrom<usize> for f64[src]

impl PrimitiveFrom<isize> for u8[src]

impl PrimitiveFrom<isize> for i8[src]

impl PrimitiveFrom<isize> for u16[src]

impl PrimitiveFrom<isize> for i16[src]

impl PrimitiveFrom<isize> for u32[src]

impl PrimitiveFrom<isize> for i32[src]

impl PrimitiveFrom<isize> for u64[src]

impl PrimitiveFrom<isize> for isize[src]

impl PrimitiveFrom<isize> for usize[src]

impl PrimitiveFrom<isize> for i64[src]

impl PrimitiveFrom<isize> for f32[src]

impl PrimitiveFrom<isize> for f64[src]

impl PrimitiveFrom<f32> for u8[src]

impl PrimitiveFrom<f32> for i8[src]

impl PrimitiveFrom<f32> for u16[src]

impl PrimitiveFrom<f32> for i16[src]

impl PrimitiveFrom<f32> for u32[src]

impl PrimitiveFrom<f32> for i32[src]

impl PrimitiveFrom<f32> for u64[src]

impl PrimitiveFrom<f32> for isize[src]

impl PrimitiveFrom<f32> for usize[src]

impl PrimitiveFrom<f32> for i64[src]

impl PrimitiveFrom<f32> for f32[src]

impl PrimitiveFrom<f32> for f64[src]

impl PrimitiveFrom<f64> for u8[src]

impl PrimitiveFrom<f64> for i8[src]

impl PrimitiveFrom<f64> for u16[src]

impl PrimitiveFrom<f64> for i16[src]

impl PrimitiveFrom<f64> for u32[src]

impl PrimitiveFrom<f64> for i32[src]

impl PrimitiveFrom<f64> for u64[src]

impl PrimitiveFrom<f64> for isize[src]

impl PrimitiveFrom<f64> for usize[src]

impl PrimitiveFrom<f64> for i64[src]

impl PrimitiveFrom<f64> for f32[src]

impl PrimitiveFrom<f64> for f64[src]

impl PrimitiveFrom<char> for char[src]

impl PrimitiveFrom<char> for u8[src]

impl PrimitiveFrom<char> for i8[src]

impl PrimitiveFrom<char> for u16[src]

impl PrimitiveFrom<char> for i16[src]

impl PrimitiveFrom<char> for u32[src]

impl PrimitiveFrom<char> for i32[src]

impl PrimitiveFrom<char> for u64[src]

impl PrimitiveFrom<char> for isize[src]

impl PrimitiveFrom<char> for usize[src]

impl PrimitiveFrom<char> for i64[src]

impl PrimitiveFrom<bool> for u8[src]

impl PrimitiveFrom<bool> for i8[src]

impl PrimitiveFrom<bool> for u16[src]

impl PrimitiveFrom<bool> for i16[src]

impl PrimitiveFrom<bool> for u32[src]

impl PrimitiveFrom<bool> for i32[src]

impl PrimitiveFrom<bool> for u64[src]

impl PrimitiveFrom<bool> for isize[src]

impl PrimitiveFrom<bool> for usize[src]

impl PrimitiveFrom<bool> for i64[src]

Loading content...

Implementors

Loading content...