pub trait Number: UnsignedInteger<UnderlyingType = Self::UnderlyingType> {
type UnderlyingType: Integer + Debug + From<u8> + TryFrom<u16> + TryFrom<u32> + TryFrom<u64> + TryFrom<u128>;
const BITS: usize = <Self as Integer>::BITS;
const MIN: Self = <Self as Integer>::MIN;
const MAX: Self = <Self as Integer>::MAX;
// Provided methods
fn new(value: <Self as Number>::UnderlyingType) -> Self { ... }
fn try_new(
value: <Self as Number>::UnderlyingType,
) -> Result<Self, TryNewError> { ... }
fn value(self) -> <Self as Number>::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 { ... }
fn as_<T: Number>(self) -> T { ... }
}UnsignedInteger] or [Integer] instead. Suggested to import via use arbitrary_int::prelude::*.Expand description
Compatibility with arbitrary-int 1.x, which didnโt support signed integers.
Going forward, use UnsignedInteger (to allow only unsigned integers) or Integer (to
support either signed or unsigned).
It is suggested to import via use arbitrary_int::prelude::* as use arbitrary_int::* will
pull in this trait as well, which causes clashes with Integer.
Provided Associated Constantsยง
Sourceconst BITS: usize = <Self as Integer>::BITS
๐Deprecated since 2.0.0: Use [UnsignedInteger] or [Integer] instead. Suggested to import via use arbitrary_int::prelude::*.
const BITS: usize = <Self as Integer>::BITS
UnsignedInteger] or [Integer] instead. Suggested to import via use arbitrary_int::prelude::*.Number of bits that can fit in this type
Required Associated Typesยง
type UnderlyingType: Integer + Debug + From<u8> + TryFrom<u16> + TryFrom<u32> + TryFrom<u64> + TryFrom<u128>
UnsignedInteger] or [Integer] instead. Suggested to import via use arbitrary_int::prelude::*.Provided Methodsยง
Sourcefn new(value: <Self as Number>::UnderlyingType) -> Self
๐Deprecated since 2.0.0: Use [UnsignedInteger] or [Integer] instead. Suggested to import via use arbitrary_int::prelude::*.
fn new(value: <Self as Number>::UnderlyingType) -> Self
UnsignedInteger] or [Integer] instead. Suggested to import via use arbitrary_int::prelude::*.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 as Number>::UnderlyingType) -> Result<Self, TryNewError>
๐Deprecated since 2.0.0: Use [UnsignedInteger] or [Integer] instead. Suggested to import via use arbitrary_int::prelude::*.
fn try_new(value: <Self as Number>::UnderlyingType) -> Result<Self, TryNewError>
UnsignedInteger] or [Integer] instead. Suggested to import via use arbitrary_int::prelude::*.Creates a number from the given value, return None if the value is too large
fn value(self) -> <Self as Number>::UnderlyingType
UnsignedInteger] or [Integer] instead. Suggested to import via use arbitrary_int::prelude::*.Sourcefn from_<T: Number>(value: T) -> Self
๐Deprecated since 2.0.0: Use [UnsignedInteger] or [Integer] instead. Suggested to import via use arbitrary_int::prelude::*.
fn from_<T: Number>(value: T) -> Self
UnsignedInteger] or [Integer] instead. Suggested to import via use arbitrary_int::prelude::*.Creates a number from the given value, throwing an error if the value is too large.
This constructor is useful when the value is convertible to T. Use Self::new for literals.
Sourcefn masked_new<T: Number>(value: T) -> Self
๐Deprecated since 2.0.0: Use [UnsignedInteger] or [Integer] instead. Suggested to import via use arbitrary_int::prelude::*.
fn masked_new<T: Number>(value: T) -> Self
UnsignedInteger] or [Integer] instead. Suggested to import via use arbitrary_int::prelude::*.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
UnsignedInteger] or [Integer] instead. Suggested to import via use arbitrary_int::prelude::*.fn as_u16(&self) -> u16
UnsignedInteger] or [Integer] instead. Suggested to import via use arbitrary_int::prelude::*.fn as_u32(&self) -> u32
UnsignedInteger] or [Integer] instead. Suggested to import via use arbitrary_int::prelude::*.fn as_u64(&self) -> u64
UnsignedInteger] or [Integer] instead. Suggested to import via use arbitrary_int::prelude::*.fn as_u128(&self) -> u128
UnsignedInteger] or [Integer] instead. Suggested to import via use arbitrary_int::prelude::*.fn as_usize(&self) -> usize
UnsignedInteger] or [Integer] instead. Suggested to import via use arbitrary_int::prelude::*.fn as_<T: Number>(self) -> T
UnsignedInteger] or [Integer] instead. Suggested to import via use arbitrary_int::prelude::*.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.
Implementations on Foreign Typesยง
Sourceยงimpl Number for u8
impl Number for u8
Sourceยงtype UnderlyingType = u8
type UnderlyingType = u8
UnsignedInteger] or [Integer] instead. Suggested to import via use arbitrary_int::prelude::*.Sourceยงimpl Number for u16
impl Number for u16
Sourceยงtype UnderlyingType = u16
type UnderlyingType = u16
UnsignedInteger] or [Integer] instead. Suggested to import via use arbitrary_int::prelude::*.Sourceยงimpl Number for u32
impl Number for u32
Sourceยงtype UnderlyingType = u32
type UnderlyingType = u32
UnsignedInteger] or [Integer] instead. Suggested to import via use arbitrary_int::prelude::*.Sourceยงimpl Number for u64
impl Number for u64
Sourceยงtype UnderlyingType = u64
type UnderlyingType = u64
UnsignedInteger] or [Integer] instead. Suggested to import via use arbitrary_int::prelude::*.Sourceยงimpl Number for u128
impl Number for u128
Sourceยงtype UnderlyingType = u128
type UnderlyingType = u128
UnsignedInteger] or [Integer] instead. Suggested to import via use arbitrary_int::prelude::*.