use crate::traits::{Integer, UnsignedInteger};
use crate::TryNewError;
use core::fmt::Debug;
#[deprecated(
since = "2.0.0",
note = "Use [`UnsignedInteger`] or [`Integer`] instead. Suggested to import via `use arbitrary_int::prelude::*`."
)]
pub trait Number: UnsignedInteger<UnderlyingType = <Self as Number>::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;
#[inline]
fn new(value: <Self as Number>::UnderlyingType) -> Self {
Integer::new(value)
}
#[inline]
fn try_new(value: <Self as Number>::UnderlyingType) -> Result<Self, TryNewError> {
Integer::try_new(value)
}
#[inline]
fn value(self) -> <Self as Number>::UnderlyingType {
Integer::value(self)
}
#[inline]
fn from_<T: Number>(value: T) -> Self {
Integer::from_(value)
}
#[inline]
fn masked_new<T: Number>(value: T) -> Self {
Integer::masked_new(value)
}
#[inline]
fn as_u8(&self) -> u8 {
Integer::as_u8(*self)
}
#[inline]
fn as_u16(&self) -> u16 {
Integer::as_u16(*self)
}
#[inline]
fn as_u32(&self) -> u32 {
Integer::as_u32(*self)
}
#[inline]
fn as_u64(&self) -> u64 {
Integer::as_u64(*self)
}
#[inline]
fn as_u128(&self) -> u128 {
Integer::as_u128(*self)
}
#[inline]
fn as_usize(&self) -> usize {
Integer::as_usize(*self)
}
#[inline]
fn as_<T: Number>(self) -> T {
Integer::as_(self)
}
}