pub trait ToPrimitive {
Show 14 methods
// Required methods
fn to_i64(&self) -> Option<i64>;
fn to_u64(&self) -> Option<u64>;
// Provided methods
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.
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.
Examples found in repository?
11fn main() {
12 use enum_unitary::{FromPrimitive, ToPrimitive};
13
14 assert_eq!(enum_iterator::cardinality::<Myenum>(), 3);
15 assert_eq!(Into::<usize>::into (Myenum::A), 0);
16 assert_eq!(Into::<usize>::into (Myenum::B), 1);
17 assert_eq!(Into::<usize>::into (Myenum::C), 2);
18 assert_eq!(Some (Myenum::A), Myenum::from_usize (0));
19 assert_eq!(Some (Myenum::B), Myenum::from_usize (1));
20 assert_eq!(Some (Myenum::C), Myenum::from_usize (2));
21 assert_eq!(None, Myenum::from_usize (3));
22 assert_eq!(Some (0), Myenum::A.to_usize());
23 assert_eq!(Some (1), Myenum::B.to_usize());
24 assert_eq!(Some (2), Myenum::C.to_usize());
25 assert_eq!(enum_iterator::first::<Myenum>().unwrap(), Myenum::A);
26 assert_eq!(enum_iterator::last::<Myenum>().unwrap(), Myenum::C);
27 let mut i = enum_iterator::all::<Myenum>();
28 assert_eq!(i.next(), Some (Myenum::A));
29 assert_eq!(i.next(), Some (Myenum::B));
30 assert_eq!(i.next(), Some (Myenum::C));
31 assert_eq!(i.next(), None);
32 assert_eq!(enum_iterator::next (&Myenum::A), Some (Myenum::B));
33 assert_eq!(enum_iterator::previous (&Myenum::A), None);
34 assert_eq!(enum_iterator::next (&Myenum::B), Some (Myenum::C));
35 assert_eq!(enum_iterator::previous (&Myenum::B), Some (Myenum::A));
36 assert_eq!(enum_iterator::next (&Myenum::C), None);
37 assert_eq!(enum_iterator::previous (&Myenum::C), Some (Myenum::B));
38}
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.
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.