Trait num_traits::cast::ToPrimitive
source · [−]pub trait ToPrimitive {
Show 14 methods
fn to_i64(&self) -> Option<i64>;
fn to_u64(&self) -> Option<u64>;
fn to_isize(&self) -> Option<isize> { ... }
fn to_i8(&self) -> Option<i8> { ... }
fn to_i16(&self) -> Option<i16> { ... }
fn to_i32(&self) -> Option<i32> { ... }
fn to_i128(&self) -> Option<i128> { ... }
fn to_usize(&self) -> Option<usize> { ... }
fn to_u8(&self) -> Option<u8> { ... }
fn to_u16(&self) -> Option<u16> { ... }
fn to_u32(&self) -> Option<u32> { ... }
fn to_u128(&self) -> Option<u128> { ... }
fn to_f32(&self) -> Option<f32> { ... }
fn to_f64(&self) -> Option<f64> { ... }
}
Expand description
A generic trait for converting a value to a number.
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 i32
.
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 f32
infinity.
Required Methods
Provided Methods
sourcefn to_isize(&self) -> Option<isize>
fn to_isize(&self) -> Option<isize>
Converts the value of self
to an isize
. If the value cannot be
represented by an isize
, then None
is returned.
sourcefn to_i8(&self) -> Option<i8>
fn to_i8(&self) -> Option<i8>
Converts the value of self
to an i8
. If the value cannot be
represented by an i8
, then None
is returned.
sourcefn to_i16(&self) -> Option<i16>
fn to_i16(&self) -> Option<i16>
Converts the value of self
to an i16
. If the value cannot be
represented by an i16
, then None
is returned.
sourcefn to_i32(&self) -> Option<i32>
fn to_i32(&self) -> Option<i32>
Converts the value of self
to an i32
. If the value cannot be
represented by an i32
, then None
is returned.
sourcefn to_i128(&self) -> Option<i128>
fn to_i128(&self) -> Option<i128>
Converts the value of self
to an i128
. If the value cannot be
represented by an i128
(i64
under the default implementation), then
None
is returned.
This method is only available with feature i128
enabled on Rust >= 1.26.
The default implementation converts through to_i64()
. Types implementing
this trait should override this method if they can represent a greater range.
sourcefn to_usize(&self) -> Option<usize>
fn to_usize(&self) -> Option<usize>
Converts the value of self
to a usize
. If the value cannot be
represented by a usize
, then None
is returned.
sourcefn to_u8(&self) -> Option<u8>
fn to_u8(&self) -> Option<u8>
Converts the value of self
to a u8
. If the value cannot be
represented by a u8
, then None
is returned.
sourcefn to_u16(&self) -> Option<u16>
fn to_u16(&self) -> Option<u16>
Converts the value of self
to a u16
. If the value cannot be
represented by a u16
, then None
is returned.
sourcefn to_u32(&self) -> Option<u32>
fn to_u32(&self) -> Option<u32>
Converts the value of self
to a u32
. If the value cannot be
represented by a u32
, then None
is returned.
sourcefn to_u128(&self) -> Option<u128>
fn to_u128(&self) -> Option<u128>
Converts the value of self
to a u128
. If the value cannot be
represented by a u128
(u64
under the default implementation), then
None
is returned.
This method is only available with feature i128
enabled on Rust >= 1.26.
The default implementation converts through to_u64()
. Types implementing
this trait should override this method if they can represent a greater range.
sourcefn to_f32(&self) -> Option<f32>
fn to_f32(&self) -> Option<f32>
Converts the value of self
to an f32
. Overflows may map to positive
or negative inifinity, otherwise None
is returned if the value cannot
be represented by an f32
.
sourcefn to_f64(&self) -> Option<f64>
fn to_f64(&self) -> Option<f64>
Converts the value of self
to an f64
. Overflows may map to positive
or negative inifinity, otherwise None
is returned if the value cannot
be represented by an f64
.
The default implementation tries to convert through to_i64()
, and
failing that through to_u64()
. Types implementing this trait should
override this method if they can represent a greater range.