[−][src]Struct js_int::Int
An integer limited to the range of integers that can be represented exactly by an f64.
Implementations
impl Int
[src]
pub const MIN: Self
[src]
The smallest value that can be represented by this integer type.
Examples
Basic usage:
assert_eq!(Int::MIN, Int::try_from(-9_007_199_254_740_991i64).unwrap());
pub const MAX: Self
[src]
The largest value that can be represented by this integer type.
Examples
Basic usage:
assert_eq!(Int::MAX, Int::try_from(9_007_199_254_740_991i64).unwrap());
#[must_use]pub fn new(val: i64) -> Option<Self>
[src]
Try to create an Int
from the provided i64
, returning None
if it is smaller than
MIN_SAFE_INT
or larger than MAX_SAFE_INT
.
This is the same as the TryFrom<u64>
implementation for Int
, except that it returns
an Option
instead of a Result
.
Examples
Basic usage:
assert_eq!(Int::new(js_int::MIN_SAFE_INT), Some(Int::MIN)); assert_eq!(Int::new(js_int::MAX_SAFE_INT), Some(Int::MAX)); assert_eq!(Int::new(js_int::MIN_SAFE_INT - 1), None); assert_eq!(Int::new(js_int::MAX_SAFE_INT + 1), None);
pub fn from_str_radix(src: &str, radix: u32) -> Result<Self, ParseIntError>
[src]
Converts a string slice in a given base to an integer.
The string is expected to be an optional +
or -
sign followed by digits.
Leading and trailing whitespace represent an error. Digits are a subset of these characters,
depending on radix
:
0-9
a-z
A-Z
Panics
This function panics if radix
is not in the range from 2 to 36.
Examples
Basic usage:
assert_eq!(Int::from_str_radix("A", 16), Ok(Int::from(10)));
#[must_use]pub const fn min_value() -> Self
[src]
Use UInt::MIN
instead.
Returns the smallest value that can be represented by this integer type.
Examples
Basic usage:
assert_eq!(Int::min_value(), Int::try_from(-9_007_199_254_740_991i64).unwrap());
#[must_use]pub const fn max_value() -> Self
[src]
Use Int::MAX
instead.
Returns the largest value that can be represented by this integer type.
Examples
Basic usage:
assert_eq!(Int::max_value(), Int::try_from(9_007_199_254_740_991i64).unwrap());
#[must_use]pub fn abs(self) -> Self
[src]
Computes the absolute value of self
.
Examples
Basic usage:
assert_eq!(Int::from(10).abs(), Int::from(10)); assert_eq!(Int::from(-10).abs(), Int::from(10)); // Differently from i8 / i16 / i32 / i128, Int's min_value is its max_value negated assert_eq!(Int::MIN.abs(), Int::MAX);
#[must_use]pub const fn is_positive(self) -> bool
[src]
Returns true
if self
is positive and false
if the number is zero or negative.
Examples
Basic usage:
assert!(Int::from(10).is_positive()); assert!(!Int::from(0).is_positive()); assert!(!Int::from(-10).is_positive());
#[must_use]pub const fn is_negative(self) -> bool
[src]
Returns true
if self
is negative and false
if the number is zero or positive.
Examples
Basic usage:
assert!(Int::from(-10).is_negative()); assert!(!Int::from(0).is_negative()); assert!(!Int::from(10).is_negative());
#[must_use]pub fn checked_add(self, rhs: Self) -> Option<Self>
[src]
Checked integer addition. Computes self + rhs
, returning None
if overflow
occurred.
Examples
Basic usage:
assert_eq!( (Int::MAX - Int::from(1)).checked_add(Int::from(1)), Some(Int::MAX) ); assert_eq!((Int::MAX - Int::from(1)).checked_add(Int::from(2)), None);
#[must_use]pub fn checked_sub(self, rhs: Self) -> Option<Self>
[src]
Checked integer subtraction. Computes self - rhs
, returning None
if overflow
occurred.
Examples
Basic usage:
assert_eq!( (Int::MIN + Int::from(2)).checked_sub(Int::from(1)), Some(Int::MIN + Int::from(1)) ); assert_eq!((Int::MIN + Int::from(2)).checked_sub(Int::from(3)), None);
#[must_use]pub fn checked_mul(self, rhs: Self) -> Option<Self>
[src]
Checked integer multiplication. Computes self * rhs
, returning None
if overflow
occurred.
Examples
Basic usage:
assert_eq!(Int::from(5).checked_mul(Int::from(1)), Some(Int::from(5))); assert_eq!(Int::MAX.checked_mul(Int::from(2)), None);
#[must_use]pub fn checked_div(self, rhs: Self) -> Option<Self>
[src]
Checked integer division. Computes self / rhs
, returning None
if rhs == 0
.
Examples
Basic usage:
assert_eq!(Int::MIN.checked_div(Int::from(-1)), Some(Int::MAX)); assert_eq!(Int::from(1).checked_div(Int::from(0)), None);
#[must_use]pub fn checked_rem(self, rhs: Self) -> Option<Self>
[src]
Checked integer remainder. Computes self % rhs
, returning None
if rhs == 0
.
Examples
Basic usage:
assert_eq!(Int::from(5).checked_rem(Int::from(2)), Some(Int::from(1))); assert_eq!(Int::from(5).checked_rem(Int::from(0)), None); assert_eq!(Int::MIN.checked_rem(Int::from(-1)), Some(Int::from(0)));
#[must_use]pub fn checked_pow(self, exp: u32) -> Option<Self>
[src]
Checked exponentiation. Computes self.pow(exp)
, returning None
if overflow or
underflow occurred.
Examples
Basic usage:
assert_eq!(Int::from(8).checked_pow(2), Some(Int::from(64))); assert_eq!(Int::MAX.checked_pow(2), None); assert_eq!(Int::MIN.checked_pow(2), None); assert_eq!(Int::from(1_000_000_000).checked_pow(2), None);
#[must_use]pub fn saturating_add(self, rhs: Self) -> Self
[src]
Saturating integer addition. Computes self + rhs
, saturating at the numeric bounds
instead of overflowing.
Examples
Basic usage:
assert_eq!(Int::from(100).saturating_add(Int::from(1)), Int::from(101)); assert_eq!(Int::MAX.saturating_add(Int::from(1)), Int::MAX);
#[must_use]pub fn saturating_sub(self, rhs: Self) -> Self
[src]
Saturating integer subtraction. Computes self - rhs
, saturating at the numeric
bounds instead of underflowing.
Examples
Basic usage:
assert_eq!(Int::from(100).saturating_sub(Int::from(1)), Int::from(99)); assert_eq!(Int::MIN.saturating_sub(Int::from(1)), Int::MIN);
#[must_use]pub fn saturating_mul(self, rhs: Self) -> Self
[src]
Saturating integer multiplication. Computes self * rhs
, saturating at the numeric
bounds instead of overflowing.
Examples
Basic usage:
assert_eq!(Int::from(100).saturating_mul(Int::from(2)), Int::from(200)); assert_eq!(Int::MAX.saturating_mul(Int::from(2)), Int::MAX); assert_eq!(Int::MAX.saturating_mul(Int::MAX), Int::MAX); assert_eq!(Int::MAX.saturating_mul(Int::MIN), Int::MIN);
#[must_use]pub fn saturating_pow(self, exp: u32) -> Self
[src]
Saturating integer exponentiation. Computes self.pow(exp)
, saturating at the
numeric bounds instead of overflowing or underflowing.
Examples
Basic usage:
assert_eq!(Int::from(5).saturating_pow(2), Int::from(25)); assert_eq!(Int::from(-2).saturating_pow(3), Int::from(-8)); assert_eq!(Int::MAX.saturating_pow(2), Int::MAX); assert_eq!(Int::MIN.saturating_pow(2), Int::MAX);
Trait Implementations
impl Add<Int> for Int
[src]
type Output = Self
The resulting type after applying the +
operator.
fn add(self, rhs: Self) -> Self
[src]
impl AddAssign<Int> for Int
[src]
fn add_assign(&mut self, other: Self)
[src]
impl Clone for Int
[src]
impl Copy for Int
[src]
impl Debug for Int
[src]
impl Default for Int
[src]
impl Display for Int
[src]
impl Div<Int> for Int
[src]
type Output = Self
The resulting type after applying the /
operator.
fn div(self, rhs: Self) -> Self
[src]
impl DivAssign<Int> for Int
[src]
fn div_assign(&mut self, other: Self)
[src]
impl Eq for Int
[src]
impl From<Int> for i64
[src]
impl From<Int> for i128
[src]
impl From<Int> for f64
[src]
impl From<i16> for Int
[src]
impl From<i32> for Int
[src]
impl From<i8> for Int
[src]
impl From<u16> for Int
[src]
impl From<u32> for Int
[src]
impl From<u8> for Int
[src]
impl FromStr for Int
[src]
type Err = ParseIntError
The associated error which can be returned from parsing.
fn from_str(src: &str) -> Result<Self, Self::Err>
[src]
impl Hash for Int
[src]
fn hash<__H: Hasher>(&self, state: &mut __H)
[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl Mul<Int> for Int
[src]
type Output = Self
The resulting type after applying the *
operator.
fn mul(self, rhs: Self) -> Self
[src]
impl MulAssign<Int> for Int
[src]
fn mul_assign(&mut self, other: Self)
[src]
impl Neg for Int
[src]
impl Ord for Int
[src]
fn cmp(&self, other: &Int) -> Ordering
[src]
#[must_use]fn max(self, other: Self) -> Self
1.21.0[src]
#[must_use]fn min(self, other: Self) -> Self
1.21.0[src]
#[must_use]fn clamp(self, min: Self, max: Self) -> Self
[src]
impl PartialEq<Int> for Int
[src]
impl PartialOrd<Int> for Int
[src]
fn partial_cmp(&self, other: &Int) -> Option<Ordering>
[src]
fn lt(&self, other: &Int) -> bool
[src]
fn le(&self, other: &Int) -> bool
[src]
fn gt(&self, other: &Int) -> bool
[src]
fn ge(&self, other: &Int) -> bool
[src]
impl<'a> Product<&'a Int> for Int
[src]
impl Product<Int> for Int
[src]
impl Rem<Int> for Int
[src]
type Output = Self
The resulting type after applying the %
operator.
fn rem(self, rhs: Self) -> Self
[src]
impl RemAssign<Int> for Int
[src]
fn rem_assign(&mut self, other: Self)
[src]
impl StructuralEq for Int
[src]
impl StructuralPartialEq for Int
[src]
impl Sub<Int> for Int
[src]
type Output = Self
The resulting type after applying the -
operator.
fn sub(self, rhs: Self) -> Self
[src]
impl SubAssign<Int> for Int
[src]
fn sub_assign(&mut self, other: Self)
[src]
impl<'a> Sum<&'a Int> for Int
[src]
impl Sum<Int> for Int
[src]
impl TryFrom<Int> for i8
[src]
type Error = TryFromIntError
The type returned in the event of a conversion error.
fn try_from(val: Int) -> Result<Self, TryFromIntError>
[src]
impl TryFrom<Int> for i16
[src]
type Error = TryFromIntError
The type returned in the event of a conversion error.
fn try_from(val: Int) -> Result<Self, TryFromIntError>
[src]
impl TryFrom<Int> for i32
[src]
type Error = TryFromIntError
The type returned in the event of a conversion error.
fn try_from(val: Int) -> Result<Self, TryFromIntError>
[src]
impl TryFrom<i128> for Int
[src]
type Error = TryFromIntError
The type returned in the event of a conversion error.
fn try_from(val: i128) -> Result<Self, TryFromIntError>
[src]
impl TryFrom<i64> for Int
[src]
type Error = TryFromIntError
The type returned in the event of a conversion error.
fn try_from(val: i64) -> Result<Self, TryFromIntError>
[src]
impl TryFrom<u128> for Int
[src]
type Error = TryFromIntError
The type returned in the event of a conversion error.
fn try_from(val: u128) -> Result<Self, TryFromIntError>
[src]
impl TryFrom<u64> for Int
[src]
type Error = TryFromIntError
The type returned in the event of a conversion error.
fn try_from(val: u64) -> Result<Self, TryFromIntError>
[src]
Auto Trait Implementations
impl RefUnwindSafe for Int
impl Send for Int
impl Sync for Int
impl Unpin for Int
impl UnwindSafe for Int
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,