Struct ramp::int::Int
[−]
[src]
pub struct Int { // some 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
fn one() -> Int
fn from_single_limb(limb: Limb) -> Int
Creates a new Int from the given Limb.
fn sign(&self) -> i32
Returns the sign of the Int as either -1, 0 or 1 for self being negative, zero or positive, respectively.
fn abs(self) -> Int
Consumes self and returns the absolute value
fn to_single_limb(&self) -> Limb
Returns the least-significant limb of self.
fn abs_cmp(&self, other: &Int) -> Ordering
Compare the absolute value of self to the absolute value of other, returning an Ordering with the result.
fn abs_eq(&self, other: &Int) -> bool
Returns the equality of the absolute values of self and other.
fn abs_hash<H>(&self, state: &mut H) where H: Hasher
Hashes the value without including the sign, 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)
Try to shrink the allocated data for this Int.
fn to_str_radix(&self, base: u8, upper: bool) -> String
Returns a string containing the value of self in base base
. For bases greater than
ten, if upper
is true, upper-case letters are used, otherwise lower-case ones are used.
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<()>
fn from_str_radix(src: &str, base: u8) -> Result<Int, ParseIntError>
Creates a new Int from the given string in base base
.
fn divmod(&self, other: &Int) -> (Int, Int)
Divide self by other, returning the quotient, Q, and remainder, R as (Q, R).
With N = self, D = other, Q and R satisfy: N = QD + R
.
The sign of Q
and R
are the same.
This will panic if other
is zero.
fn pow(&self, exp: usize) -> Int
Raises self to the power of exp
fn square(&self) -> Int
Returns the square of self
.
fn dsquare(self) -> Int
fn sqrt_rem(self) -> Option<(Int, Int)>
Compute the sqrt of this number, returning its floor, S, and the remainder, R, as Some((S, R)), or None if this number is negative.
The numbers S, R are both positive and satisfy self = S * S + R
.
fn negate(&mut self)
Negates self
in-place
fn is_even(&self) -> bool
Returns whether or not this number is even.
Returns 0 if self == 0
fn trailing_zeros(&self) -> u32
Returns the number of trailing zero bits in this number
Returns 0 if self == 0
fn count_ones(&self) -> usize
Returns the number of ones (the population count) in this number
If this number is negative, it has infinitely many ones (in two's complement), so this returns usize::MAX.
fn bit_length(&self) -> u32
Returns the number of bits required to represent (the absolute
value of) this number, that is, floor(log2(abs(self))) + 1
.
Returns 1 if self == 0
.
fn bit(&self, bit: u32) -> bool
Returns the value of the bit
th bit in this number, as if it
were represented in two's complement.
fn set_bit(&mut self, bit: u32, bit_val: bool)
Set 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
Calculates the Greatest Common Divisor (GCD) of the number and other
.
The result is always positive.
fn lcm(&self, other: &Int) -> Int
Calculates the Lowest Common Multiple (LCM) of the number and other
.
fn to_f64(&self) -> f64
Trait Implementations
impl Clone for Int
[src]
fn clone(&self) -> Int
Returns a copy of the value. Read more
fn clone_from(&mut self, other: &Int)
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
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
This method tests for !=
.
impl PartialEq<Limb> for Int
[src]
fn eq(&self, other: &Limb) -> bool
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
This method tests for !=
.
impl Eq for Int
[src]
impl Ord for Int
[src]
fn cmp(&self, other: &Int) -> Ordering
This method returns an Ordering
between self
and other
. Read more
impl PartialOrd<Int> for Int
[src]
fn partial_cmp(&self, other: &Int) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
fn lt(&self, other: &Rhs) -> bool
1.0.0
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
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
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
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>
This method returns an ordering between self
and other
values if one exists. Read more
fn lt(&self, other: &Rhs) -> bool
1.0.0
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
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
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
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
Feeds this value into the state given, updating the hasher as necessary.
fn hash_slice<H>(data: &[Self], state: &mut H) where H: Hasher
1.3.0
Feeds a slice of this type into the state provided.
impl AddAssign<Limb> for Int
[src]
fn add_assign(&mut self, other: Limb)
The method for the +=
operator
impl Add<Limb> for Int
[src]
type Output = Int
The resulting type after applying the +
operator
fn add(self, other: Limb) -> Int
The method for the +
operator
impl<'a> AddAssign<&'a Int> for Int
[src]
fn add_assign(&mut self, other: &'a Int)
The method for the +=
operator
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
The method for the +
operator
impl<'a> Add<Int> for &'a Int
[src]
type Output = Int
The resulting type after applying the +
operator
fn add(self, other: Int) -> Int
The method for the +
operator
impl Add<Int> for Int
[src]
type Output = Int
The resulting type after applying the +
operator
fn add(self, other: Int) -> Int
The method for the +
operator
impl AddAssign<Int> for Int
[src]
fn add_assign(&mut self, other: Int)
The method for the +=
operator
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
The method for the +
operator
impl SubAssign<Limb> for Int
[src]
fn sub_assign(&mut self, other: Limb)
The method for the -=
operator
impl Sub<Limb> for Int
[src]
type Output = Int
The resulting type after applying the -
operator
fn sub(self, other: Limb) -> Int
The method for the -
operator
impl<'a> SubAssign<&'a Int> for Int
[src]
fn sub_assign(&mut self, other: &'a Int)
The method for the -=
operator
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
The method for the -
operator
impl<'a> Sub<Int> for &'a Int
[src]
type Output = Int
The resulting type after applying the -
operator
fn sub(self, other: Int) -> Int
The method for the -
operator
impl Sub<Int> for Int
[src]
type Output = Int
The resulting type after applying the -
operator
fn sub(self, other: Int) -> Int
The method for the -
operator
impl SubAssign<Int> for Int
[src]
fn sub_assign(&mut self, other: Int)
The method for the -=
operator
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
The method for the -
operator
impl MulAssign<Limb> for Int
[src]
fn mul_assign(&mut self, other: Limb)
The method for the *=
operator
impl Mul<Limb> for Int
[src]
type Output = Int
The resulting type after applying the *
operator
fn mul(self, other: Limb) -> Int
The method for the *
operator
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
The method for the *
operator
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
The method for the *
operator
impl<'a> Mul<Int> for &'a Int
[src]
type Output = Int
The resulting type after applying the *
operator
fn mul(self, other: Int) -> Int
The method for the *
operator
impl Mul<Int> for Int
[src]
type Output = Int
The resulting type after applying the *
operator
fn mul(self, other: Int) -> Int
The method for the *
operator
impl<'a> MulAssign<&'a Int> for Int
[src]
fn mul_assign(&mut self, other: &'a Int)
The method for the *=
operator
impl MulAssign<Int> for Int
[src]
fn mul_assign(&mut self, other: Int)
The method for the *=
operator
impl DivAssign<Limb> for Int
[src]
fn div_assign(&mut self, other: Limb)
The method for the /=
operator
impl Div<Limb> for Int
[src]
type Output = Int
The resulting type after applying the /
operator
fn div(self, other: Limb) -> Int
The method for the /
operator
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
The method for the /
operator
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
The method for the /
operator
impl<'a> Div<Int> for &'a Int
[src]
type Output = Int
The resulting type after applying the /
operator
fn div(self, other: Int) -> Int
The method for the /
operator
impl Div<Int> for Int
[src]
type Output = Int
The resulting type after applying the /
operator
fn div(self, other: Int) -> Int
The method for the /
operator
impl<'a> DivAssign<&'a Int> for Int
[src]
fn div_assign(&mut self, other: &'a Int)
The method for the /=
operator
impl DivAssign<Int> for Int
[src]
fn div_assign(&mut self, other: Int)
The method for the /=
operator
impl Rem<Limb> for Int
[src]
type Output = Int
The resulting type after applying the %
operator
fn rem(self, other: Limb) -> Int
The method for the %
operator
impl RemAssign<Limb> for Int
[src]
fn rem_assign(&mut self, other: Limb)
The method for the %=
operator
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
The method for the %
operator
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
The method for the %
operator
impl<'a> Rem<Int> for &'a Int
[src]
type Output = Int
The resulting type after applying the %
operator
fn rem(self, other: Int) -> Int
The method for the %
operator
impl Rem<Int> for Int
[src]
type Output = Int
The resulting type after applying the %
operator
fn rem(self, other: Int) -> Int
The method for the %
operator
impl<'a, 'b> DivRem<&'a Int> for &'b Int
[src]
impl RemAssign<Int> for Int
[src]
fn rem_assign(&mut self, other: Int)
The method for the %=
operator
impl<'a> RemAssign<&'a Int> for Int
[src]
fn rem_assign(&mut self, other: &'a Int)
The method for the %=
operator
impl Neg for Int
[src]
type Output = Int
The resulting type after applying the -
operator
fn neg(self) -> Int
The method for the unary -
operator
impl<'a> Neg for &'a Int
[src]
type Output = Int
The resulting type after applying the -
operator
fn neg(self) -> Int
The method for the unary -
operator
impl ShlAssign<usize> for Int
[src]
fn shl_assign(&mut self, cnt: usize)
The method for the <<=
operator
impl<'a> Shl<usize> for &'a Int
[src]
type Output = Int
The resulting type after applying the <<
operator
fn shl(self, cnt: usize) -> Int
The method for the <<
operator
impl Shl<usize> for Int
[src]
type Output = Int
The resulting type after applying the <<
operator
fn shl(self, other: usize) -> Int
The method for the <<
operator
impl ShrAssign<usize> for Int
[src]
fn shr_assign(&mut self, cnt: usize)
The method for the >>=
operator
impl<'a> Shr<usize> for &'a Int
[src]
type Output = Int
The resulting type after applying the >>
operator
fn shr(self, other: usize) -> Int
The method for the >>
operator
impl Shr<usize> for Int
[src]
type Output = Int
The resulting type after applying the >>
operator
fn shr(self, other: usize) -> Int
The method for the >>
operator
impl<'a> BitAnd<Limb> for Int
[src]
type Output = Int
The resulting type after applying the &
operator
fn bitand(self, other: Limb) -> Int
The method for the &
operator
impl BitAndAssign<Limb> for Int
[src]
fn bitand_assign(&mut self, other: Limb)
The method for the &
operator
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
The method for the &
operator
impl<'a> BitAnd<Int> for &'a Int
[src]
type Output = Int
The resulting type after applying the &
operator
fn bitand(self, other: Int) -> Int
The method for the &
operator
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
The method for the &
operator
impl BitAnd<Int> for Int
[src]
type Output = Int
The resulting type after applying the &
operator
fn bitand(self, other: Int) -> Int
The method for the &
operator
impl BitAndAssign<Int> for Int
[src]
fn bitand_assign(&mut self, other: Int)
The method for the &
operator
impl<'a> BitAndAssign<&'a Int> for Int
[src]
fn bitand_assign(&mut self, other: &'a Int)
The method for the &
operator
impl BitOr<Limb> for Int
[src]
type Output = Int
The resulting type after applying the |
operator
fn bitor(self, other: Limb) -> Int
The method for the |
operator
impl BitOrAssign<Limb> for Int
[src]
fn bitor_assign(&mut self, other: Limb)
The method for the |=
operator
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
The method for the |
operator
impl<'a> BitOr<Int> for &'a Int
[src]
type Output = Int
The resulting type after applying the |
operator
fn bitor(self, other: Int) -> Int
The method for the |
operator
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
The method for the |
operator
impl BitOr<Int> for Int
[src]
type Output = Int
The resulting type after applying the |
operator
fn bitor(self, other: Int) -> Int
The method for the |
operator
impl BitOrAssign<Int> for Int
[src]
fn bitor_assign(&mut self, other: Int)
The method for the |=
operator
impl<'a> BitOrAssign<&'a Int> for Int
[src]
fn bitor_assign(&mut self, other: &'a Int)
The method for the |=
operator
impl<'a> BitXor<Limb> for Int
[src]
type Output = Int
The resulting type after applying the ^
operator
fn bitxor(self, other: Limb) -> Int
The method for the ^
operator
impl BitXorAssign<Limb> for Int
[src]
fn bitxor_assign(&mut self, other: Limb)
The method for the ^=
operator
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
The method for the ^
operator
impl<'a> BitXor<Int> for &'a Int
[src]
type Output = Int
The resulting type after applying the ^
operator
fn bitxor(self, other: Int) -> Int
The method for the ^
operator
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
The method for the ^
operator
impl BitXor<Int> for Int
[src]
type Output = Int
The resulting type after applying the ^
operator
fn bitxor(self, other: Int) -> Int
The method for the ^
operator
impl BitXorAssign<Int> for Int
[src]
fn bitxor_assign(&mut self, other: Int)
The method for the ^=
operator
impl<'a> BitXorAssign<&'a Int> for Int
[src]
fn bitxor_assign(&mut self, other: &'a Int)
The method for the ^=
operator
impl Add<i32> for Int
[src]
type Output = Int
The resulting type after applying the +
operator
fn add(self, other: i32) -> Int
The method for the +
operator
impl AddAssign<i32> for Int
[src]
fn add_assign(&mut self, other: i32)
The method for the +=
operator
impl Sub<i32> for Int
[src]
type Output = Int
The resulting type after applying the -
operator
fn sub(self, other: i32) -> Int
The method for the -
operator
impl SubAssign<i32> for Int
[src]
fn sub_assign(&mut self, other: i32)
The method for the -=
operator
impl Mul<i32> for Int
[src]
type Output = Int
The resulting type after applying the *
operator
fn mul(self, other: i32) -> Int
The method for the *
operator
impl MulAssign<i32> for Int
[src]
fn mul_assign(&mut self, other: i32)
The method for the *=
operator
impl DivAssign<i32> for Int
[src]
fn div_assign(&mut self, other: i32)
The method for the /=
operator
impl Div<i32> for Int
[src]
type Output = Int
The resulting type after applying the /
operator
fn div(self, other: i32) -> Int
The method for the /
operator
impl RemAssign<i32> for Int
[src]
fn rem_assign(&mut self, other: i32)
The method for the %=
operator
impl Rem<i32> for Int
[src]
type Output = Int
The resulting type after applying the %
operator
fn rem(self, other: i32) -> Int
The method for the %
operator
impl DivRem<i32> for Int
[src]
impl BitAndAssign<i32> for Int
[src]
fn bitand_assign(&mut self, other: i32)
The method for the &
operator
impl BitOrAssign<i32> for Int
[src]
fn bitor_assign(&mut self, other: i32)
The method for the |=
operator
impl BitXorAssign<i32> for Int
[src]
fn bitxor_assign(&mut self, other: i32)
The method for the ^=
operator
impl<'a> Add<i32> for &'a Int
[src]
type Output = Int
The resulting type after applying the +
operator
fn add(self, other: i32) -> Int
The method for the +
operator
impl<'a> Sub<i32> for &'a Int
[src]
type Output = Int
The resulting type after applying the -
operator
fn sub(self, other: i32) -> Int
The method for the -
operator
impl<'a> Mul<i32> for &'a Int
[src]
type Output = Int
The resulting type after applying the *
operator
fn mul(self, other: i32) -> Int
The method for the *
operator
impl<'a> Div<i32> for &'a Int
[src]
type Output = Int
The resulting type after applying the /
operator
fn div(self, other: i32) -> Int
The method for the /
operator
impl<'a> Rem<i32> for &'a Int
[src]
type Output = Int
The resulting type after applying the %
operator
fn rem(self, other: i32) -> Int
The method for the %
operator
impl BitAnd<i32> for Int
[src]
type Output = Int
The resulting type after applying the &
operator
fn bitand(self, other: i32) -> Int
The method for the &
operator
impl<'a> BitAnd<i32> for &'a Int
[src]
type Output = Int
The resulting type after applying the &
operator
fn bitand(self, other: i32) -> Int
The method for the &
operator
impl BitOr<i32> for Int
[src]
type Output = Int
The resulting type after applying the |
operator
fn bitor(self, other: i32) -> Int
The method for the |
operator
impl<'a> BitOr<i32> for &'a Int
[src]
type Output = Int
The resulting type after applying the |
operator
fn bitor(self, other: i32) -> Int
The method for the |
operator
impl BitXor<i32> for Int
[src]
type Output = Int
The resulting type after applying the ^
operator
fn bitxor(self, other: i32) -> Int
The method for the ^
operator
impl<'a> BitXor<i32> for &'a Int
[src]
type Output = Int
The resulting type after applying the ^
operator
fn bitxor(self, other: i32) -> Int
The method for the ^
operator
impl Add<usize> for Int
[src]
type Output = Int
The resulting type after applying the +
operator
fn add(self, other: usize) -> Int
The method for the +
operator
impl AddAssign<usize> for Int
[src]
fn add_assign(&mut self, other: usize)
The method for the +=
operator
impl Sub<usize> for Int
[src]
type Output = Int
The resulting type after applying the -
operator
fn sub(self, other: usize) -> Int
The method for the -
operator
impl SubAssign<usize> for Int
[src]
fn sub_assign(&mut self, other: usize)
The method for the -=
operator
impl Mul<usize> for Int
[src]
type Output = Int
The resulting type after applying the *
operator
fn mul(self, other: usize) -> Int
The method for the *
operator
impl MulAssign<usize> for Int
[src]
fn mul_assign(&mut self, other: usize)
The method for the *=
operator
impl Div<usize> for Int
[src]
type Output = Int
The resulting type after applying the /
operator
fn div(self, other: usize) -> Int
The method for the /
operator
impl DivAssign<usize> for Int
[src]
fn div_assign(&mut self, other: usize)
The method for the /=
operator
impl Rem<usize> for Int
[src]
type Output = Int
The resulting type after applying the %
operator
fn rem(self, other: usize) -> Int
The method for the %
operator
impl RemAssign<usize> for Int
[src]
fn rem_assign(&mut self, other: usize)
The method for the %=
operator
impl DivRem<usize> for Int
[src]
impl BitAndAssign<usize> for Int
[src]
fn bitand_assign(&mut self, other: usize)
The method for the &
operator
impl BitOrAssign<usize> for Int
[src]
fn bitor_assign(&mut self, other: usize)
The method for the |=
operator
impl BitXorAssign<usize> for Int
[src]
fn bitxor_assign(&mut self, other: usize)
The method for the ^=
operator
impl<'a> Add<usize> for &'a Int
[src]
type Output = Int
The resulting type after applying the +
operator
fn add(self, other: usize) -> Int
The method for the +
operator
impl<'a> Sub<usize> for &'a Int
[src]
type Output = Int
The resulting type after applying the -
operator
fn sub(self, other: usize) -> Int
The method for the -
operator
impl<'a> Mul<usize> for &'a Int
[src]
type Output = Int
The resulting type after applying the *
operator
fn mul(self, other: usize) -> Int
The method for the *
operator
impl<'a> Div<usize> for &'a Int
[src]
type Output = Int
The resulting type after applying the /
operator
fn div(self, other: usize) -> Int
The method for the /
operator
impl<'a> Rem<usize> for &'a Int
[src]
type Output = Int
The resulting type after applying the %
operator
fn rem(self, other: usize) -> Int
The method for the %
operator
impl BitAnd<usize> for Int
[src]
type Output = Int
The resulting type after applying the &
operator
fn bitand(self, other: usize) -> Int
The method for the &
operator
impl<'a> BitAnd<usize> for &'a Int
[src]
type Output = Int
The resulting type after applying the &
operator
fn bitand(self, other: usize) -> Int
The method for the &
operator
impl BitOr<usize> for Int
[src]
type Output = Int
The resulting type after applying the |
operator
fn bitor(self, other: usize) -> Int
The method for the |
operator
impl<'a> BitOr<usize> for &'a Int
[src]
type Output = Int
The resulting type after applying the |
operator
fn bitor(self, other: usize) -> Int
The method for the |
operator
impl BitXor<usize> for Int
[src]
type Output = Int
The resulting type after applying the ^
operator
fn bitxor(self, other: usize) -> Int
The method for the ^
operator
impl<'a> BitXor<usize> for &'a Int
[src]
type Output = Int
The resulting type after applying the ^
operator
fn bitxor(self, other: usize) -> Int
The method for the ^
operator
impl Add<BaseInt> for Int
[src]
type Output = Int
The resulting type after applying the +
operator
fn add(self, other: BaseInt) -> Int
The method for the +
operator
impl AddAssign<BaseInt> for Int
[src]
fn add_assign(&mut self, other: BaseInt)
The method for the +=
operator
impl Sub<BaseInt> for Int
[src]
type Output = Int
The resulting type after applying the -
operator
fn sub(self, other: BaseInt) -> Int
The method for the -
operator
impl SubAssign<BaseInt> for Int
[src]
fn sub_assign(&mut self, other: BaseInt)
The method for the -=
operator
impl Mul<BaseInt> for Int
[src]
type Output = Int
The resulting type after applying the *
operator
fn mul(self, other: BaseInt) -> Int
The method for the *
operator
impl MulAssign<BaseInt> for Int
[src]
fn mul_assign(&mut self, other: BaseInt)
The method for the *=
operator
impl Div<BaseInt> for Int
[src]
type Output = Int
The resulting type after applying the /
operator
fn div(self, other: BaseInt) -> Int
The method for the /
operator
impl DivAssign<BaseInt> for Int
[src]
fn div_assign(&mut self, other: BaseInt)
The method for the /=
operator
impl Rem<BaseInt> for Int
[src]
type Output = Int
The resulting type after applying the %
operator
fn rem(self, other: BaseInt) -> Int
The method for the %
operator
impl RemAssign<BaseInt> for Int
[src]
fn rem_assign(&mut self, other: BaseInt)
The method for the %=
operator
impl DivRem<BaseInt> for Int
[src]
impl BitAndAssign<BaseInt> for Int
[src]
fn bitand_assign(&mut self, other: BaseInt)
The method for the &
operator
impl BitOrAssign<BaseInt> for Int
[src]
fn bitor_assign(&mut self, other: BaseInt)
The method for the |=
operator
impl BitXorAssign<BaseInt> for Int
[src]
fn bitxor_assign(&mut self, other: BaseInt)
The method for the ^=
operator
impl<'a> Add<BaseInt> for &'a Int
[src]
type Output = Int
The resulting type after applying the +
operator
fn add(self, other: BaseInt) -> Int
The method for the +
operator
impl<'a> Sub<BaseInt> for &'a Int
[src]
type Output = Int
The resulting type after applying the -
operator
fn sub(self, other: BaseInt) -> Int
The method for the -
operator
impl<'a> Mul<BaseInt> for &'a Int
[src]
type Output = Int
The resulting type after applying the *
operator
fn mul(self, other: BaseInt) -> Int
The method for the *
operator
impl<'a> Div<BaseInt> for &'a Int
[src]
type Output = Int
The resulting type after applying the /
operator
fn div(self, other: BaseInt) -> Int
The method for the /
operator
impl<'a> Rem<BaseInt> for &'a Int
[src]
type Output = Int
The resulting type after applying the %
operator
fn rem(self, other: BaseInt) -> Int
The method for the %
operator
impl BitAnd<BaseInt> for Int
[src]
type Output = Int
The resulting type after applying the &
operator
fn bitand(self, other: BaseInt) -> Int
The method for the &
operator
impl<'a> BitAnd<BaseInt> for &'a Int
[src]
type Output = Int
The resulting type after applying the &
operator
fn bitand(self, other: BaseInt) -> Int
The method for the &
operator
impl BitOr<BaseInt> for Int
[src]
type Output = Int
The resulting type after applying the |
operator
fn bitor(self, other: BaseInt) -> Int
The method for the |
operator
impl<'a> BitOr<BaseInt> for &'a Int
[src]
type Output = Int
The resulting type after applying the |
operator
fn bitor(self, other: BaseInt) -> Int
The method for the |
operator
impl BitXor<BaseInt> for Int
[src]
type Output = Int
The resulting type after applying the ^
operator
fn bitxor(self, other: BaseInt) -> Int
The method for the ^
operator
impl<'a> BitXor<BaseInt> for &'a Int
[src]
type Output = Int
The resulting type after applying the ^
operator
fn bitxor(self, other: BaseInt) -> Int
The method for the ^
operator
impl PartialEq<i32> for Int
[src]
fn eq(&self, other: &i32) -> bool
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
This method tests for !=
.
impl PartialOrd<i32> for Int
[src]
fn partial_cmp(&self, other: &i32) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
fn lt(&self, other: &Rhs) -> bool
1.0.0
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
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
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
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
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
This method tests for !=
.
impl PartialOrd<usize> for Int
[src]
fn partial_cmp(&self, other: &usize) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
fn lt(&self, other: &Rhs) -> bool
1.0.0
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
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
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
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
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
This method tests for !=
.
impl PartialOrd<u64> for Int
[src]
fn partial_cmp(&self, other: &u64) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
fn lt(&self, other: &Rhs) -> bool
1.0.0
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
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
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
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
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
This method tests for !=
.
impl PartialOrd<i64> for Int
[src]
fn partial_cmp(&self, other: &i64) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
fn lt(&self, other: &Rhs) -> bool
1.0.0
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
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
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
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]
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>
Parses a string s
to return a value of this type. Read more
impl Zero for Int
[src]
fn zero() -> Int
: no longer used for Iterator::sum
zero_one
): no longer used for Iterator::sum
The "zero" (usually, additive identity) for this type.
impl One for Int
[src]
fn one() -> Int
: no longer used for Iterator::product
zero_one
): no longer used for Iterator::product
The "one" (usually, multiplicative identity) for this type.
impl Step for Int
[src]
fn step(&self, by: &Int) -> Option<Int>
step_trait
): likely to be replaced by finer-grained traits
Steps self
if possible.
fn steps_between(start: &Int, end: &Int, by: &Int) -> Option<usize>
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 steps_between_by_one(start: &Self, end: &Self) -> Option<usize>
step_trait
): likely to be replaced by finer-grained traits
Same as steps_between
, but with a by
of 1
fn is_negative(&self) -> bool
step_trait
): likely to be replaced by finer-grained traits
Tests whether this step is negative or not (going backwards)
fn replace_one(&mut self) -> Self
step_trait
): likely to be replaced by finer-grained traits
Replaces this step with 1
, returning itself
fn replace_zero(&mut self) -> Self
step_trait
): likely to be replaced by finer-grained traits
Replaces this step with 0
, returning itself
fn add_one(&self) -> Self
step_trait
): likely to be replaced by finer-grained traits
Adds one to this step, returning the result
fn sub_one(&self) -> Self
step_trait
): likely to be replaced by finer-grained traits
Subtracts one to this step, returning the result
impl PartialEq<Rational> for Int
[src]
fn eq(&self, other: &Rational) -> bool
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
This method tests for !=
.
impl PartialOrd<Rational> for Int
[src]
fn partial_cmp(&self, other: &Rational) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
fn lt(&self, other: &Rhs) -> bool
1.0.0
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
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
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
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
The method for the +
operator
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
The method for the +
operator
impl<'a> Add<Rational> for &'a Int
[src]
type Output = Rational
The resulting type after applying the +
operator
fn add(self, other: Rational) -> Rational
The method for the +
operator
impl<'a> Add<&'a Rational> for &'a Int
[src]
type Output = Rational
The resulting type after applying the +
operator
fn add(self, other: &'a Rational) -> Rational
The method for the +
operator
impl Mul<Rational> for Int
[src]
type Output = Rational
The resulting type after applying the *
operator
fn mul(self, other: Rational) -> Rational
The method for the *
operator
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
The method for the *
operator
impl<'a> Mul<Rational> for &'a Int
[src]
type Output = Rational
The resulting type after applying the *
operator
fn mul(self, other: Rational) -> Rational
The method for the *
operator
impl<'a> Mul<&'a Rational> for &'a Int
[src]
type Output = Rational
The resulting type after applying the *
operator
fn mul(self, other: &'a Rational) -> Rational
The method for the *
operator
impl Div<Rational> for Int
[src]
type Output = Rational
The resulting type after applying the /
operator
fn div(self, other: Rational) -> Rational
The method for the /
operator
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
The method for the /
operator
impl<'a> Div<Rational> for &'a Int
[src]
type Output = Rational
The resulting type after applying the /
operator
fn div(self, other: Rational) -> Rational
The method for the /
operator