pub trait Number:
Sized
+ Copy
+ Clone
+ PartialOrd
+ Ord
+ PartialEq
+ Eq {
type UnderlyingType: Number + Debug + From<u8> + TryFrom<u16> + TryFrom<u32> + TryFrom<u64> + TryFrom<u128>;
const BITS: usize;
const MIN: Self;
const MAX: Self;
// Required methods
fn new(value: Self::UnderlyingType) -> Self;
fn try_new(value: Self::UnderlyingType) -> Result<Self, TryNewError>;
fn value(self) -> Self::UnderlyingType;
fn from_<T: Number>(value: T) -> Self;
fn masked_new<T: Number>(value: T) -> Self;
fn as_u8(&self) -> u8;
fn as_u16(&self) -> u16;
fn as_u32(&self) -> u32;
fn as_u64(&self) -> u64;
fn as_u128(&self) -> u128;
fn as_usize(&self) -> usize;
// Provided method
fn as_<T: Number>(self) -> T { ... }
}Required Associated Constants§
Required Associated Types§
type UnderlyingType: Number + Debug + From<u8> + TryFrom<u16> + TryFrom<u32> + TryFrom<u64> + TryFrom<u128>
Required Methods§
Sourcefn new(value: Self::UnderlyingType) -> Self
fn new(value: Self::UnderlyingType) -> Self
Creates a number from the given value, throwing an error if the value is too large. This constructor is useful when creating a value from a literal.
Sourcefn try_new(value: Self::UnderlyingType) -> Result<Self, TryNewError>
fn try_new(value: Self::UnderlyingType) -> Result<Self, TryNewError>
Creates a number from the given value, return None if the value is too large
fn value(self) -> Self::UnderlyingType
Sourcefn from_<T: Number>(value: T) -> Self
fn from_<T: Number>(value: T) -> Self
Creates a number from the given value, throwing an error if the value is too large.
This constructor is useful when the value is convertable to T. Use Self::new for literals.
Sourcefn masked_new<T: Number>(value: T) -> Self
fn masked_new<T: Number>(value: T) -> Self
Creates an instance from the given value. Unlike the various new... functions, this
will never fail as the value is masked to the result size.
fn as_u8(&self) -> u8
fn as_u16(&self) -> u16
fn as_u32(&self) -> u32
fn as_u64(&self) -> u64
fn as_u128(&self) -> u128
fn as_usize(&self) -> usize
Provided Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.