crypto_bigint

Trait Integer

Source
pub trait Integer:
    'static
    + AsRef<[Limb]>
    + BitAnd<Output = Self>
    + BitOr<Output = Self>
    + BitXor<Output = Self>
    + for<'a> CheckedAdd<&'a Self, Output = Self>
    + for<'a> CheckedSub<&'a Self, Output = Self>
    + for<'a> CheckedMul<&'a Self, Output = Self>
    + Copy
    + ConditionallySelectable
    + ConstantTimeEq
    + ConstantTimeGreater
    + ConstantTimeLess
    + Debug
    + Default
    + Div<NonZero<Self>, Output = Self>
    + Eq
    + From<u64>
    + Not
    + Ord
    + Rem<NonZero<Self>, Output = Self>
    + Send
    + Sized
    + Shl<usize, Output = Self>
    + Shr<usize, Output = Self>
    + Sync
    + Zero {
    const ONE: Self;
    const MAX: Self;
    const BITS: usize;
    const BYTES: usize;
    const LIMBS: usize;

    // Required method
    fn is_odd(&self) -> Choice;

    // Provided method
    fn is_even(&self) -> Choice { ... }
}
Expand description

Integer type.

Required Associated Constants§

Source

const ONE: Self

The value 1.

Source

const MAX: Self

Maximum value this integer can express.

Source

const BITS: usize

Total size of the represented integer in bits.

Source

const BYTES: usize

Total size of the represented integer in bytes.

Source

const LIMBS: usize

The number of limbs used on this platform.

Required Methods§

Source

fn is_odd(&self) -> Choice

Is this integer value an odd number?

§Returns

If odd, returns Choice(1). Otherwise, returns Choice(0).

Provided Methods§

Source

fn is_even(&self) -> Choice

Is this integer value an even number?

§Returns

If even, returns Choice(1). Otherwise, returns Choice(0).

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<const LIMBS: usize> Integer for Uint<LIMBS>

Source§

const ONE: Self = Self::ONE

Source§

const MAX: Self = Self::MAX

Source§

const BITS: usize = Self::BITS

Source§

const BYTES: usize = Self::BYTES

Source§

const LIMBS: usize = Self::LIMBS