Struct ramp::int::Int
[−]
[src]
pub struct Int { /* fields omitted */ }
An arbitrary-precision signed integer.
This type grows to the size it needs to in order to store the result of any operation.
Creation
An Int
can be constructed in a number of ways:
Int::zero
andInt::one
construct a zero- and one-valuedInt
respectively.Int::from
will convert from any primitive integer type to anInt
of the same valuelet four = Int::from(4);
Int::from_str
(orstr::parse
) will attempt to convert from a string to anInt
let i = Int::from_str("123456789").unwrap();
Output
Int
supports all the formatting traits, allowing it to be used just like a regular integer
when used in format!
and similar macros. Int
also supports conversion to primitive integer
types, truncating if the Int
cannot fit into the target type. Conversion to primtive integers
is done with the From
trait:
let big_i = Int::from(123456789); let i = i32::from(&big_i); assert_eq!(123456789, i);
Usage
Int
has a number of operator overloads to make working with them as painless as possible.
The most basic usage is simply a + b
or similar. Assuming a
and b
are of type Int
, this
operation will consume both operands, reusing the storage from one of them. If you do not wish
your operands to be moved, one or both of them can be references: &a + &b
works as well, but
requires an entire new Int
to be allocated for the return value.
There are also a overloads for a small number of primitive integer types, namely i32
and
usize
. While automatic type widening isn't done in Rust in general, many operations are much
more efficient when working with a single integer. This means you can do a + 1
knowing that it
will be performed as efficiently as possible. Comparison with these integer types is also
possible, allowing checks for small constant values to be done easily:
let big_i = Int::from(123456789); assert!(big_i == 123456789);
Semantics
Addition, subtraction and multiplication follow the expected rules for integers. Division of two
integers, N / D
is defined as producing two values: a quotient, Q
, and a remainder, R
,
such that the following equation holds: N = Q*D + R
. The division operator itself returns Q
while the remainder/modulo operator returns R
. The sign of R
is the same as the sign of Q
.
The "bit-shift" operations are defined as being multiplication and division by a power-of-two for shift-left and shift-right respectively. The sign of the number is unaffected.
The remaining bitwise operands act as if the numbers are stored in two's complement format and as if the two inputs have the same number of bits.
Methods
impl Int
[src]
fn zero() -> Int
[src]
Creates the Int
that represents zero.
fn one() -> Int
[src]
Creates the Int
that represents one.
fn from_single_limb(limb: Limb) -> Int
[src]
Creates an Int
from a single Limb
fn sign(&self) -> i32
[src]
Returns the sign of this Int
as either -1, 0 or 1 depending on whether it is negative,
zero, or positive, respectively.
fn abs(self) -> Int
[src]
Consumes this Int
and returns its absolute value.
fn to_single_limb(&self) -> Limb
[src]
Returns the least-significant Limb
of this Int
.
fn abs_cmp(&self, other: &Int) -> Ordering
[src]
Compares the absolute value of this Int
with the absolute value of another.
fn abs_eq(&self, other: &Int) -> bool
[src]
Returns whether this Int
has the same absolute value as another.
fn abs_hash<H>(&self, state: &mut H) where
H: Hasher,
[src]
H: Hasher,
Hashes the value without including the sign.
This is useful for when the sign is handled elsewhere and making a copy just to change the sign is wasteful.
fn shrink_to_fit(&mut self)
[src]
Shrinks the allocated data for this Int
, attempting to remove excess capacity.
fn to_str_radix(&self, base: u8, upper: bool) -> String
[src]
Creates a string containing the value of this Int
in base base
.
For bases greater than ten, if upper
is true, upper-case letters are used; otherwise,
lower-case letters are used.
Panics
Panics if base
is less than two or greater than 36.
fn write_radix<W: Write>(&self, w: &mut W, base: u8, upper: bool) -> Result<()>
[src]
Similar to to_str_radix
, writing to something that implements io::Write
instead.
fn from_str_radix(src: &str, base: u8) -> Result<Int, ParseIntError>
[src]
Creates a new Int from the given string in base base
.
fn divmod(&self, other: &Int) -> (Int, Int)
[src]
Divides this Int
by other
, returning the quotient q
and the remainder r
as (q, r)
.
This satisfies self = q * other + r
, ensuring that q
and r
have the same sign.
Panics
Panics if other
is zero.
fn pow(&self, exp: usize) -> Int
[src]
Raises this Int
to the power of exp
.
fn square(&self) -> Int
[src]
Squares this Int
.
fn dsquare(self) -> Int
[src]
Consumes this Int
and returns its square.
TODO: Is there a more idiomatic way of doing this?
fn sqrt_rem(self) -> Option<(Int, Int)>
[src]
Computes the nearest square root s
of this number and its remainder r
as
Some((s, r))
, or None
if this Int
is negative.
s
and r
are both positive and satisfy self = s * s + r
.
fn negate(&mut self)
[src]
Negates this Int
in place.
fn is_even(&self) -> bool
[src]
Returns whether this Int
is even.
fn trailing_zeros(&self) -> u32
[src]
Returns the number of trailing zero bits for this Int
, or zero if this Int
is zero.
fn count_ones(&self) -> usize
[src]
Returns the number of trailing one bits (i.e. the population count) for this Int
If this number is negative, it has infinitely many ones (in two's complement). Therefore,
this method returns usize::MAX
for negative numbers.
fn bit_length(&self) -> u32
[src]
Returns the number of bits required to represent the absolute value of this Int
, i.e.,
floor(log2(abs(self))) + 1
.
Returns one if this number is zero.
fn bit(&self, bit: u32) -> bool
[src]
Returns the value of the bit
th bit in this Int
, as if it were represented in two's
complement.
fn set_bit(&mut self, bit: u32, bit_val: bool)
[src]
Sets the bit
th bit of this number to bit_val
, treating negative numbers as if they're
stored in two's complement.
fn gcd(&self, other: &Int) -> Int
[src]
Computes the greates common divisor (GCD) of this Int
and other
.
The result is always positive.
fn lcm(&self, other: &Int) -> Int
[src]
Computes the lowest common multiple (LCM) of this Int
and other
.
fn to_f64(&self) -> f64
[src]
Converts this Int
into an f64
.
This is not an exact conversion, because this Int
may be more precise than an f64
can
account for.
Trait Implementations
impl Clone for Int
[src]
fn clone(&self) -> Int
[src]
Returns a copy of the value. Read more
fn clone_from(&mut self, other: &Int)
[src]
Performs copy-assignment from source
. Read more
impl Default for Int
[src]
impl Drop for Int
[src]
impl PartialEq<Int> for Int
[src]
fn eq(&self, other: &Int) -> bool
[src]
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests for !=
.
impl PartialEq<Limb> for Int
[src]
fn eq(&self, other: &Limb) -> bool
[src]
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests for !=
.
impl Eq for Int
[src]
impl Ord for Int
[src]
fn cmp(&self, other: &Int) -> Ordering
[src]
This method returns an Ordering
between self
and other
. Read more
fn max(self, other: Self) -> Self
[src]
ord_max_min
)Compares and returns the maximum of two values. Read more
fn min(self, other: Self) -> Self
[src]
ord_max_min
)Compares and returns the minimum of two values. Read more
impl PartialOrd<Int> for Int
[src]
fn partial_cmp(&self, other: &Int) -> Option<Ordering>
[src]
This method returns an ordering between self
and other
values if one exists. Read more
fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than (for self
and other
) and is used by the <
operator. Read more
fn le(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than or equal to (for self
and other
) and is used by the >=
operator. Read more
impl PartialOrd<Limb> for Int
[src]
fn partial_cmp(&self, other: &Limb) -> Option<Ordering>
[src]
This method returns an ordering between self
and other
values if one exists. Read more
fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than (for self
and other
) and is used by the <
operator. Read more
fn le(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than or equal to (for self
and other
) and is used by the >=
operator. Read more
impl Hash for Int
[src]
fn hash<H>(&self, state: &mut H) where
H: Hasher,
[src]
H: Hasher,
Feeds this value into the given [Hasher
]. Read more
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
Feeds a slice of this type into the given [Hasher
]. Read more
impl AddAssign<Limb> for Int
[src]
fn add_assign(&mut self, other: Limb)
[src]
Performs the +=
operation.
impl Add<Limb> for Int
[src]
type Output = Int
The resulting type after applying the +
operator.
fn add(self, other: Limb) -> Int
[src]
Performs the +
operation.
impl<'a> AddAssign<&'a Int> for Int
[src]
fn add_assign(&mut self, other: &'a Int)
[src]
Performs the +=
operation.
impl<'a> Add<&'a Int> for Int
[src]
type Output = Int
The resulting type after applying the +
operator.
fn add(self, other: &'a Int) -> Int
[src]
Performs the +
operation.
impl<'a> Add<Int> for &'a Int
[src]
type Output = Int
The resulting type after applying the +
operator.
fn add(self, other: Int) -> Int
[src]
Performs the +
operation.
impl Add<Int> for Int
[src]
type Output = Int
The resulting type after applying the +
operator.
fn add(self, other: Int) -> Int
[src]
Performs the +
operation.
impl AddAssign<Int> for Int
[src]
fn add_assign(&mut self, other: Int)
[src]
Performs the +=
operation.
impl<'a, 'b> Add<&'a Int> for &'b Int
[src]
type Output = Int
The resulting type after applying the +
operator.
fn add(self, other: &'a Int) -> Int
[src]
Performs the +
operation.
impl SubAssign<Limb> for Int
[src]
fn sub_assign(&mut self, other: Limb)
[src]
Performs the -=
operation.
impl Sub<Limb> for Int
[src]
type Output = Int
The resulting type after applying the -
operator.
fn sub(self, other: Limb) -> Int
[src]
Performs the -
operation.
impl<'a> SubAssign<&'a Int> for Int
[src]
fn sub_assign(&mut self, other: &'a Int)
[src]
Performs the -=
operation.
impl<'a> Sub<&'a Int> for Int
[src]
type Output = Int
The resulting type after applying the -
operator.
fn sub(self, other: &'a Int) -> Int
[src]
Performs the -
operation.
impl<'a> Sub<Int> for &'a Int
[src]
type Output = Int
The resulting type after applying the -
operator.
fn sub(self, other: Int) -> Int
[src]
Performs the -
operation.
impl Sub<Int> for Int
[src]
type Output = Int
The resulting type after applying the -
operator.
fn sub(self, other: Int) -> Int
[src]
Performs the -
operation.
impl SubAssign<Int> for Int
[src]
fn sub_assign(&mut self, other: Int)
[src]
Performs the -=
operation.
impl<'a, 'b> Sub<&'a Int> for &'b Int
[src]
type Output = Int
The resulting type after applying the -
operator.
fn sub(self, other: &'a Int) -> Int
[src]
Performs the -
operation.
impl MulAssign<Limb> for Int
[src]
fn mul_assign(&mut self, other: Limb)
[src]
Performs the *=
operation.
impl Mul<Limb> for Int
[src]
type Output = Int
The resulting type after applying the *
operator.
fn mul(self, other: Limb) -> Int
[src]
Performs the *
operation.
impl<'a, 'b> Mul<&'a Int> for &'b Int
[src]
type Output = Int
The resulting type after applying the *
operator.
fn mul(self, other: &'a Int) -> Int
[src]
Performs the *
operation.
impl<'a> Mul<&'a Int> for Int
[src]
type Output = Int
The resulting type after applying the *
operator.
fn mul(self, other: &'a Int) -> Int
[src]
Performs the *
operation.
impl<'a> Mul<Int> for &'a Int
[src]
type Output = Int
The resulting type after applying the *
operator.
fn mul(self, other: Int) -> Int
[src]
Performs the *
operation.
impl Mul<Int> for Int
[src]
type Output = Int
The resulting type after applying the *
operator.
fn mul(self, other: Int) -> Int
[src]
Performs the *
operation.
impl<'a> MulAssign<&'a Int> for Int
[src]
fn mul_assign(&mut self, other: &'a Int)
[src]
Performs the *=
operation.
impl MulAssign<Int> for Int
[src]
fn mul_assign(&mut self, other: Int)
[src]
Performs the *=
operation.
impl DivAssign<Limb> for Int
[src]
fn div_assign(&mut self, other: Limb)
[src]
Performs the /=
operation.
impl Div<Limb> for Int
[src]
type Output = Int
The resulting type after applying the /
operator.
fn div(self, other: Limb) -> Int
[src]
Performs the /
operation.
impl<'a, 'b> Div<&'a Int> for &'b Int
[src]
type Output = Int
The resulting type after applying the /
operator.
fn div(self, other: &'a Int) -> Int
[src]
Performs the /
operation.
impl<'a> Div<&'a Int> for Int
[src]
type Output = Int
The resulting type after applying the /
operator.
fn div(self, other: &'a Int) -> Int
[src]
Performs the /
operation.
impl<'a> Div<Int> for &'a Int
[src]
type Output = Int
The resulting type after applying the /
operator.
fn div(self, other: Int) -> Int
[src]
Performs the /
operation.
impl Div<Int> for Int
[src]
type Output = Int
The resulting type after applying the /
operator.
fn div(self, other: Int) -> Int
[src]
Performs the /
operation.
impl<'a> DivAssign<&'a Int> for Int
[src]
fn div_assign(&mut self, other: &'a Int)
[src]
Performs the /=
operation.
impl DivAssign<Int> for Int
[src]
fn div_assign(&mut self, other: Int)
[src]
Performs the /=
operation.
impl Rem<Limb> for Int
[src]
type Output = Int
The resulting type after applying the %
operator.
fn rem(self, other: Limb) -> Int
[src]
Performs the %
operation.
impl RemAssign<Limb> for Int
[src]
fn rem_assign(&mut self, other: Limb)
[src]
Performs the %=
operation.
impl DivRem<Limb> for Int
[src]
impl<'a, 'b> Rem<&'a Int> for &'b Int
[src]
type Output = Int
The resulting type after applying the %
operator.
fn rem(self, other: &'a Int) -> Int
[src]
Performs the %
operation.
impl<'a> Rem<&'a Int> for Int
[src]
type Output = Int
The resulting type after applying the %
operator.
fn rem(self, other: &'a Int) -> Int
[src]
Performs the %
operation.
impl<'a> Rem<Int> for &'a Int
[src]
type Output = Int
The resulting type after applying the %
operator.
fn rem(self, other: Int) -> Int
[src]
Performs the %
operation.
impl Rem<Int> for Int
[src]
type Output = Int
The resulting type after applying the %
operator.
fn rem(self, other: Int) -> Int
[src]
Performs the %
operation.
impl<'a, 'b> DivRem<&'a Int> for &'b Int
[src]
impl RemAssign<Int> for Int
[src]
fn rem_assign(&mut self, other: Int)
[src]
Performs the %=
operation.
impl<'a> RemAssign<&'a Int> for Int
[src]
fn rem_assign(&mut self, other: &'a Int)
[src]
Performs the %=
operation.
impl Neg for Int
[src]
type Output = Int
The resulting type after applying the -
operator.
fn neg(self) -> Int
[src]
Performs the unary -
operation.
impl<'a> Neg for &'a Int
[src]
type Output = Int
The resulting type after applying the -
operator.
fn neg(self) -> Int
[src]
Performs the unary -
operation.
impl ShlAssign<usize> for Int
[src]
fn shl_assign(&mut self, cnt: usize)
[src]
Performs the <<=
operation.
impl<'a> Shl<usize> for &'a Int
[src]
type Output = Int
The resulting type after applying the <<
operator.
fn shl(self, cnt: usize) -> Int
[src]
Performs the <<
operation.
impl Shl<usize> for Int
[src]
type Output = Int
The resulting type after applying the <<
operator.
fn shl(self, other: usize) -> Int
[src]
Performs the <<
operation.
impl ShrAssign<usize> for Int
[src]
fn shr_assign(&mut self, cnt: usize)
[src]
Performs the >>=
operation.
impl<'a> Shr<usize> for &'a Int
[src]
type Output = Int
The resulting type after applying the >>
operator.
fn shr(self, other: usize) -> Int
[src]
Performs the >>
operation.
impl Shr<usize> for Int
[src]
type Output = Int
The resulting type after applying the >>
operator.
fn shr(self, other: usize) -> Int
[src]
Performs the >>
operation.
impl<'a> BitAnd<Limb> for Int
[src]
type Output = Int
The resulting type after applying the &
operator.
fn bitand(self, other: Limb) -> Int
[src]
Performs the &
operation.
impl BitAndAssign<Limb> for Int
[src]
fn bitand_assign(&mut self, other: Limb)
[src]
Performs the &=
operation.
impl<'a> BitAnd<&'a Int> for Int
[src]
type Output = Int
The resulting type after applying the &
operator.
fn bitand(self, other: &'a Int) -> Int
[src]
Performs the &
operation.
impl<'a> BitAnd<Int> for &'a Int
[src]
type Output = Int
The resulting type after applying the &
operator.
fn bitand(self, other: Int) -> Int
[src]
Performs the &
operation.
impl<'a, 'b> BitAnd<&'a Int> for &'b Int
[src]
type Output = Int
The resulting type after applying the &
operator.
fn bitand(self, other: &'a Int) -> Int
[src]
Performs the &
operation.
impl BitAnd<Int> for Int
[src]
type Output = Int
The resulting type after applying the &
operator.
fn bitand(self, other: Int) -> Int
[src]
Performs the &
operation.
impl BitAndAssign<Int> for Int
[src]
fn bitand_assign(&mut self, other: Int)
[src]
Performs the &=
operation.
impl<'a> BitAndAssign<&'a Int> for Int
[src]
fn bitand_assign(&mut self, other: &'a Int)
[src]
Performs the &=
operation.
impl BitOr<Limb> for Int
[src]
type Output = Int
The resulting type after applying the |
operator.
fn bitor(self, other: Limb) -> Int
[src]
Performs the |
operation.
impl BitOrAssign<Limb> for Int
[src]
fn bitor_assign(&mut self, other: Limb)
[src]
Performs the |=
operation.
impl<'a> BitOr<&'a Int> for Int
[src]
type Output = Int
The resulting type after applying the |
operator.
fn bitor(self, other: &'a Int) -> Int
[src]
Performs the |
operation.
impl<'a> BitOr<Int> for &'a Int
[src]
type Output = Int
The resulting type after applying the |
operator.
fn bitor(self, other: Int) -> Int
[src]
Performs the |
operation.
impl<'a, 'b> BitOr<&'a Int> for &'b Int
[src]
type Output = Int
The resulting type after applying the |
operator.
fn bitor(self, other: &'a Int) -> Int
[src]
Performs the |
operation.
impl BitOr<Int> for Int
[src]
type Output = Int
The resulting type after applying the |
operator.
fn bitor(self, other: Int) -> Int
[src]
Performs the |
operation.
impl BitOrAssign<Int> for Int
[src]
fn bitor_assign(&mut self, other: Int)
[src]
Performs the |=
operation.
impl<'a> BitOrAssign<&'a Int> for Int
[src]
fn bitor_assign(&mut self, other: &'a Int)
[src]
Performs the |=
operation.
impl<'a> BitXor<Limb> for Int
[src]
type Output = Int
The resulting type after applying the ^
operator.
fn bitxor(self, other: Limb) -> Int
[src]
Performs the ^
operation.
impl BitXorAssign<Limb> for Int
[src]
fn bitxor_assign(&mut self, other: Limb)
[src]
Performs the ^=
operation.
impl<'a> BitXor<&'a Int> for Int
[src]
type Output = Int
The resulting type after applying the ^
operator.
fn bitxor(self, other: &'a Int) -> Int
[src]
Performs the ^
operation.
impl<'a> BitXor<Int> for &'a Int
[src]
type Output = Int
The resulting type after applying the ^
operator.
fn bitxor(self, other: Int) -> Int
[src]
Performs the ^
operation.
impl<'a, 'b> BitXor<&'a Int> for &'b Int
[src]
type Output = Int
The resulting type after applying the ^
operator.
fn bitxor(self, other: &'a Int) -> Int
[src]
Performs the ^
operation.
impl BitXor<Int> for Int
[src]
type Output = Int
The resulting type after applying the ^
operator.
fn bitxor(self, other: Int) -> Int
[src]
Performs the ^
operation.
impl BitXorAssign<Int> for Int
[src]
fn bitxor_assign(&mut self, other: Int)
[src]
Performs the ^=
operation.
impl<'a> BitXorAssign<&'a Int> for Int
[src]
fn bitxor_assign(&mut self, other: &'a Int)
[src]
Performs the ^=
operation.
impl Add<i32> for Int
[src]
type Output = Int
The resulting type after applying the +
operator.
fn add(self, other: i32) -> Int
[src]
Performs the +
operation.
impl AddAssign<i32> for Int
[src]
fn add_assign(&mut self, other: i32)
[src]
Performs the +=
operation.
impl Sub<i32> for Int
[src]
type Output = Int
The resulting type after applying the -
operator.
fn sub(self, other: i32) -> Int
[src]
Performs the -
operation.
impl SubAssign<i32> for Int
[src]
fn sub_assign(&mut self, other: i32)
[src]
Performs the -=
operation.
impl Mul<i32> for Int
[src]
type Output = Int
The resulting type after applying the *
operator.
fn mul(self, other: i32) -> Int
[src]
Performs the *
operation.
impl MulAssign<i32> for Int
[src]
fn mul_assign(&mut self, other: i32)
[src]
Performs the *=
operation.
impl DivAssign<i32> for Int
[src]
fn div_assign(&mut self, other: i32)
[src]
Performs the /=
operation.
impl Div<i32> for Int
[src]
type Output = Int
The resulting type after applying the /
operator.
fn div(self, other: i32) -> Int
[src]
Performs the /
operation.
impl RemAssign<i32> for Int
[src]
fn rem_assign(&mut self, other: i32)
[src]
Performs the %=
operation.
impl Rem<i32> for Int
[src]
type Output = Int
The resulting type after applying the %
operator.
fn rem(self, other: i32) -> Int
[src]
Performs the %
operation.
impl DivRem<i32> for Int
[src]
impl BitAndAssign<i32> for Int
[src]
fn bitand_assign(&mut self, other: i32)
[src]
Performs the &=
operation.
impl BitOrAssign<i32> for Int
[src]
fn bitor_assign(&mut self, other: i32)
[src]
Performs the |=
operation.
impl BitXorAssign<i32> for Int
[src]
fn bitxor_assign(&mut self, other: i32)
[src]
Performs the ^=
operation.
impl<'a> Add<i32> for &'a Int
[src]
type Output = Int
The resulting type after applying the +
operator.
fn add(self, other: i32) -> Int
[src]
Performs the +
operation.
impl<'a> Sub<i32> for &'a Int
[src]
type Output = Int
The resulting type after applying the -
operator.
fn sub(self, other: i32) -> Int
[src]
Performs the -
operation.
impl<'a> Mul<i32> for &'a Int
[src]
type Output = Int
The resulting type after applying the *
operator.
fn mul(self, other: i32) -> Int
[src]
Performs the *
operation.
impl<'a> Div<i32> for &'a Int
[src]
type Output = Int
The resulting type after applying the /
operator.
fn div(self, other: i32) -> Int
[src]
Performs the /
operation.
impl<'a> Rem<i32> for &'a Int
[src]
type Output = Int
The resulting type after applying the %
operator.
fn rem(self, other: i32) -> Int
[src]
Performs the %
operation.
impl BitAnd<i32> for Int
[src]
type Output = Int
The resulting type after applying the &
operator.
fn bitand(self, other: i32) -> Int
[src]
Performs the &
operation.
impl<'a> BitAnd<i32> for &'a Int
[src]
type Output = Int
The resulting type after applying the &
operator.
fn bitand(self, other: i32) -> Int
[src]
Performs the &
operation.
impl BitOr<i32> for Int
[src]
type Output = Int
The resulting type after applying the |
operator.
fn bitor(self, other: i32) -> Int
[src]
Performs the |
operation.
impl<'a> BitOr<i32> for &'a Int
[src]
type Output = Int
The resulting type after applying the |
operator.
fn bitor(self, other: i32) -> Int
[src]
Performs the |
operation.
impl BitXor<i32> for Int
[src]
type Output = Int
The resulting type after applying the ^
operator.
fn bitxor(self, other: i32) -> Int
[src]
Performs the ^
operation.
impl<'a> BitXor<i32> for &'a Int
[src]
type Output = Int
The resulting type after applying the ^
operator.
fn bitxor(self, other: i32) -> Int
[src]
Performs the ^
operation.
impl Add<usize> for Int
[src]
type Output = Int
The resulting type after applying the +
operator.
fn add(self, other: usize) -> Int
[src]
Performs the +
operation.
impl AddAssign<usize> for Int
[src]
fn add_assign(&mut self, other: usize)
[src]
Performs the +=
operation.
impl Sub<usize> for Int
[src]
type Output = Int
The resulting type after applying the -
operator.
fn sub(self, other: usize) -> Int
[src]
Performs the -
operation.
impl SubAssign<usize> for Int
[src]
fn sub_assign(&mut self, other: usize)
[src]
Performs the -=
operation.
impl Mul<usize> for Int
[src]
type Output = Int
The resulting type after applying the *
operator.
fn mul(self, other: usize) -> Int
[src]
Performs the *
operation.
impl MulAssign<usize> for Int
[src]
fn mul_assign(&mut self, other: usize)
[src]
Performs the *=
operation.
impl Div<usize> for Int
[src]
type Output = Int
The resulting type after applying the /
operator.
fn div(self, other: usize) -> Int
[src]
Performs the /
operation.
impl DivAssign<usize> for Int
[src]
fn div_assign(&mut self, other: usize)
[src]
Performs the /=
operation.
impl Rem<usize> for Int
[src]
type Output = Int
The resulting type after applying the %
operator.
fn rem(self, other: usize) -> Int
[src]
Performs the %
operation.
impl RemAssign<usize> for Int
[src]
fn rem_assign(&mut self, other: usize)
[src]
Performs the %=
operation.
impl DivRem<usize> for Int
[src]
impl BitAndAssign<usize> for Int
[src]
fn bitand_assign(&mut self, other: usize)
[src]
Performs the &=
operation.
impl BitOrAssign<usize> for Int
[src]
fn bitor_assign(&mut self, other: usize)
[src]
Performs the |=
operation.
impl BitXorAssign<usize> for Int
[src]
fn bitxor_assign(&mut self, other: usize)
[src]
Performs the ^=
operation.
impl<'a> Add<usize> for &'a Int
[src]
type Output = Int
The resulting type after applying the +
operator.
fn add(self, other: usize) -> Int
[src]
Performs the +
operation.
impl<'a> Sub<usize> for &'a Int
[src]
type Output = Int
The resulting type after applying the -
operator.
fn sub(self, other: usize) -> Int
[src]
Performs the -
operation.
impl<'a> Mul<usize> for &'a Int
[src]
type Output = Int
The resulting type after applying the *
operator.
fn mul(self, other: usize) -> Int
[src]
Performs the *
operation.
impl<'a> Div<usize> for &'a Int
[src]
type Output = Int
The resulting type after applying the /
operator.
fn div(self, other: usize) -> Int
[src]
Performs the /
operation.
impl<'a> Rem<usize> for &'a Int
[src]
type Output = Int
The resulting type after applying the %
operator.
fn rem(self, other: usize) -> Int
[src]
Performs the %
operation.
impl BitAnd<usize> for Int
[src]
type Output = Int
The resulting type after applying the &
operator.
fn bitand(self, other: usize) -> Int
[src]
Performs the &
operation.
impl<'a> BitAnd<usize> for &'a Int
[src]
type Output = Int
The resulting type after applying the &
operator.
fn bitand(self, other: usize) -> Int
[src]
Performs the &
operation.
impl BitOr<usize> for Int
[src]
type Output = Int
The resulting type after applying the |
operator.
fn bitor(self, other: usize) -> Int
[src]
Performs the |
operation.
impl<'a> BitOr<usize> for &'a Int
[src]
type Output = Int
The resulting type after applying the |
operator.
fn bitor(self, other: usize) -> Int
[src]
Performs the |
operation.
impl BitXor<usize> for Int
[src]
type Output = Int
The resulting type after applying the ^
operator.
fn bitxor(self, other: usize) -> Int
[src]
Performs the ^
operation.
impl<'a> BitXor<usize> for &'a Int
[src]
type Output = Int
The resulting type after applying the ^
operator.
fn bitxor(self, other: usize) -> Int
[src]
Performs the ^
operation.
impl Add<BaseInt> for Int
[src]
type Output = Int
The resulting type after applying the +
operator.
fn add(self, other: BaseInt) -> Int
[src]
Performs the +
operation.
impl AddAssign<BaseInt> for Int
[src]
fn add_assign(&mut self, other: BaseInt)
[src]
Performs the +=
operation.
impl Sub<BaseInt> for Int
[src]
type Output = Int
The resulting type after applying the -
operator.
fn sub(self, other: BaseInt) -> Int
[src]
Performs the -
operation.
impl SubAssign<BaseInt> for Int
[src]
fn sub_assign(&mut self, other: BaseInt)
[src]
Performs the -=
operation.
impl Mul<BaseInt> for Int
[src]
type Output = Int
The resulting type after applying the *
operator.
fn mul(self, other: BaseInt) -> Int
[src]
Performs the *
operation.
impl MulAssign<BaseInt> for Int
[src]
fn mul_assign(&mut self, other: BaseInt)
[src]
Performs the *=
operation.
impl Div<BaseInt> for Int
[src]
type Output = Int
The resulting type after applying the /
operator.
fn div(self, other: BaseInt) -> Int
[src]
Performs the /
operation.
impl DivAssign<BaseInt> for Int
[src]
fn div_assign(&mut self, other: BaseInt)
[src]
Performs the /=
operation.
impl Rem<BaseInt> for Int
[src]
type Output = Int
The resulting type after applying the %
operator.
fn rem(self, other: BaseInt) -> Int
[src]
Performs the %
operation.
impl RemAssign<BaseInt> for Int
[src]
fn rem_assign(&mut self, other: BaseInt)
[src]
Performs the %=
operation.
impl DivRem<BaseInt> for Int
[src]
impl BitAndAssign<BaseInt> for Int
[src]
fn bitand_assign(&mut self, other: BaseInt)
[src]
Performs the &=
operation.
impl BitOrAssign<BaseInt> for Int
[src]
fn bitor_assign(&mut self, other: BaseInt)
[src]
Performs the |=
operation.
impl BitXorAssign<BaseInt> for Int
[src]
fn bitxor_assign(&mut self, other: BaseInt)
[src]
Performs the ^=
operation.
impl<'a> Add<BaseInt> for &'a Int
[src]
type Output = Int
The resulting type after applying the +
operator.
fn add(self, other: BaseInt) -> Int
[src]
Performs the +
operation.
impl<'a> Sub<BaseInt> for &'a Int
[src]
type Output = Int
The resulting type after applying the -
operator.
fn sub(self, other: BaseInt) -> Int
[src]
Performs the -
operation.
impl<'a> Mul<BaseInt> for &'a Int
[src]
type Output = Int
The resulting type after applying the *
operator.
fn mul(self, other: BaseInt) -> Int
[src]
Performs the *
operation.
impl<'a> Div<BaseInt> for &'a Int
[src]
type Output = Int
The resulting type after applying the /
operator.
fn div(self, other: BaseInt) -> Int
[src]
Performs the /
operation.
impl<'a> Rem<BaseInt> for &'a Int
[src]
type Output = Int
The resulting type after applying the %
operator.
fn rem(self, other: BaseInt) -> Int
[src]
Performs the %
operation.
impl BitAnd<BaseInt> for Int
[src]
type Output = Int
The resulting type after applying the &
operator.
fn bitand(self, other: BaseInt) -> Int
[src]
Performs the &
operation.
impl<'a> BitAnd<BaseInt> for &'a Int
[src]
type Output = Int
The resulting type after applying the &
operator.
fn bitand(self, other: BaseInt) -> Int
[src]
Performs the &
operation.
impl BitOr<BaseInt> for Int
[src]
type Output = Int
The resulting type after applying the |
operator.
fn bitor(self, other: BaseInt) -> Int
[src]
Performs the |
operation.
impl<'a> BitOr<BaseInt> for &'a Int
[src]
type Output = Int
The resulting type after applying the |
operator.
fn bitor(self, other: BaseInt) -> Int
[src]
Performs the |
operation.
impl BitXor<BaseInt> for Int
[src]
type Output = Int
The resulting type after applying the ^
operator.
fn bitxor(self, other: BaseInt) -> Int
[src]
Performs the ^
operation.
impl<'a> BitXor<BaseInt> for &'a Int
[src]
type Output = Int
The resulting type after applying the ^
operator.
fn bitxor(self, other: BaseInt) -> Int
[src]
Performs the ^
operation.
impl PartialEq<i32> for Int
[src]
fn eq(&self, other: &i32) -> bool
[src]
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests for !=
.
impl PartialOrd<i32> for Int
[src]
fn partial_cmp(&self, other: &i32) -> Option<Ordering>
[src]
This method returns an ordering between self
and other
values if one exists. Read more
fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than (for self
and other
) and is used by the <
operator. Read more
fn le(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than or equal to (for self
and other
) and is used by the >=
operator. Read more
impl PartialEq<usize> for Int
[src]
fn eq(&self, other: &usize) -> bool
[src]
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests for !=
.
impl PartialOrd<usize> for Int
[src]
fn partial_cmp(&self, other: &usize) -> Option<Ordering>
[src]
This method returns an ordering between self
and other
values if one exists. Read more
fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than (for self
and other
) and is used by the <
operator. Read more
fn le(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than or equal to (for self
and other
) and is used by the >=
operator. Read more
impl PartialEq<u64> for Int
[src]
fn eq(&self, other: &u64) -> bool
[src]
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests for !=
.
impl PartialOrd<u64> for Int
[src]
fn partial_cmp(&self, other: &u64) -> Option<Ordering>
[src]
This method returns an ordering between self
and other
values if one exists. Read more
fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than (for self
and other
) and is used by the <
operator. Read more
fn le(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than or equal to (for self
and other
) and is used by the >=
operator. Read more
impl PartialEq<i64> for Int
[src]
fn eq(&self, other: &i64) -> bool
[src]
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests for !=
.
impl PartialOrd<i64> for Int
[src]
fn partial_cmp(&self, other: &i64) -> Option<Ordering>
[src]
This method returns an ordering between self
and other
values if one exists. Read more
fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than (for self
and other
) and is used by the <
operator. Read more
fn le(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than or equal to (for self
and other
) and is used by the >=
operator. Read more
impl From<i8> for Int
[src]
impl From<i16> for Int
[src]
impl From<i32> for Int
[src]
impl From<i64> for Int
[src]
impl From<isize> for Int
[src]
impl From<u8> for Int
[src]
impl From<u16> for Int
[src]
impl From<u32> for Int
[src]
impl From<u64> for Int
[src]
impl From<usize> for Int
[src]
impl Binary for Int
[src]
impl Octal for Int
[src]
impl Display for Int
[src]
fn fmt(&self, f: &mut Formatter) -> Result
[src]
Formats the value using the given formatter. Read more
impl Debug for Int
[src]
impl LowerHex for Int
[src]
impl UpperHex 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<Int, ParseIntError>
[src]
Parses a string s
to return a value of this type. Read more
impl Zero for Int
[src]
fn zero() -> Int
[src]
Returns the additive identity element of Self
, 0
. Read more
fn is_zero(&self) -> bool
[src]
Returns true
if self
is equal to the additive identity.
impl One for Int
[src]
impl Num for Int
[src]
type FromStrRadixErr = ParseIntError
fn from_str_radix(src: &str, radix: u32) -> Result<Int, ParseIntError>
[src]
Convert from a string and radix <= 36. Read more
impl Integer for Int
[src]
fn div_floor(&self, other: &Int) -> Int
[src]
Floored integer division. Read more
fn mod_floor(&self, other: &Int) -> Int
[src]
Floored integer modulo, satisfying: Read more
fn gcd(&self, other: &Int) -> Int
[src]
Greatest Common Divisor (GCD). Read more
fn lcm(&self, other: &Int) -> Int
[src]
Lowest Common Multiple (LCM). Read more
fn divides(&self, other: &Int) -> bool
[src]
Deprecated, use is_multiple_of
instead.
fn is_multiple_of(&self, other: &Int) -> bool
[src]
Returns true
if other
is a multiple of self
. Read more
fn is_even(&self) -> bool
[src]
Returns true
if the number is even. Read more
fn is_odd(&self) -> bool
[src]
Returns true
if the number is odd. Read more
fn div_rem(&self, other: &Int) -> (Int, Int)
[src]
Simultaneous truncated integer division and modulus. Returns (quotient, remainder)
. Read more
fn div_mod_floor(&self, other: &Self) -> (Self, Self)
[src]
Simultaneous floored integer division and modulus. Returns (quotient, remainder)
. Read more
impl Step for Int
[src]
fn steps_between(start: &Int, end: &Int) -> Option<usize>
[src]
🔬 This is a nightly-only experimental API. (step_trait
)
likely to be replaced by finer-grained traits
Returns the number of steps between two step objects. The count is inclusive of start
and exclusive of end
. Read more
fn replace_one(&mut self) -> Self
[src]
🔬 This is a nightly-only experimental API. (step_trait
)
likely to be replaced by finer-grained traits
Replaces this step with 1
, returning itself
fn replace_zero(&mut self) -> Self
[src]
🔬 This is a nightly-only experimental API. (step_trait
)
likely to be replaced by finer-grained traits
Replaces this step with 0
, returning itself
fn add_one(&self) -> Self
[src]
🔬 This is a nightly-only experimental API. (step_trait
)
likely to be replaced by finer-grained traits
Adds one to this step, returning the result
fn sub_one(&self) -> Self
[src]
🔬 This is a nightly-only experimental API. (step_trait
)
likely to be replaced by finer-grained traits
Subtracts one to this step, returning the result
fn add_usize(&self, n: usize) -> Option<Self>
[src]
🔬 This is a nightly-only experimental API. (step_trait
)
likely to be replaced by finer-grained traits
Add an usize, returning None on overflow
impl PartialEq<Rational> for Int
[src]
fn eq(&self, other: &Rational) -> bool
[src]
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests for !=
.
impl PartialOrd<Rational> for Int
[src]
fn partial_cmp(&self, other: &Rational) -> Option<Ordering>
[src]
This method returns an ordering between self
and other
values if one exists. Read more
fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than (for self
and other
) and is used by the <
operator. Read more
fn le(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than or equal to (for self
and other
) and is used by the >=
operator. Read more
impl Add<Rational> for Int
[src]
type Output = Rational
The resulting type after applying the +
operator.
fn add(self, other: Rational) -> Rational
[src]
Performs the +
operation.
impl<'a> Add<&'a Rational> for Int
[src]
type Output = Rational
The resulting type after applying the +
operator.
fn add(self, other: &'a Rational) -> Rational
[src]
Performs the +
operation.
impl<'a> Add<Rational> for &'a Int
[src]
type Output = Rational
The resulting type after applying the +
operator.
fn add(self, other: Rational) -> Rational
[src]
Performs the +
operation.
impl<'a, 'b> Add<&'a Rational> for &'b Int
[src]
type Output = Rational
The resulting type after applying the +
operator.
fn add(self, other: &'a Rational) -> Rational
[src]
Performs the +
operation.
impl Mul<Rational> for Int
[src]
type Output = Rational
The resulting type after applying the *
operator.
fn mul(self, other: Rational) -> Rational
[src]
Performs the *
operation.
impl<'a> Mul<&'a Rational> for Int
[src]
type Output = Rational
The resulting type after applying the *
operator.
fn mul(self, other: &'a Rational) -> Rational
[src]
Performs the *
operation.
impl<'a> Mul<Rational> for &'a Int
[src]
type Output = Rational
The resulting type after applying the *
operator.
fn mul(self, other: Rational) -> Rational
[src]
Performs the *
operation.
impl<'a, 'b> Mul<&'a Rational> for &'b Int
[src]
type Output = Rational
The resulting type after applying the *
operator.
fn mul(self, other: &'a Rational) -> Rational
[src]
Performs the *
operation.
impl Div<Rational> for Int
[src]
type Output = Rational
The resulting type after applying the /
operator.
fn div(self, other: Rational) -> Rational
[src]
Performs the /
operation.
impl<'a> Div<&'a Rational> for Int
[src]
type Output = Rational
The resulting type after applying the /
operator.
fn div(self, other: &'a Rational) -> Rational
[src]
Performs the /
operation.
impl<'a> Div<Rational> for &'a Int
[src]
type Output = Rational
The resulting type after applying the /
operator.
fn div(self, other: Rational) -> Rational
[src]
Performs the /
operation.