pub trait _:
    Sized
    + 'static
    + ToBits
    + ToBytes
    + FromBytes
    + Copy
    + Clone
    + Debug
    + Display
    + Default
    + Send
    + Sync
    + Eq
    + One<Output = Self, Output = Self>
    + Ord
    + Neg<Output = Self>
    + Uniform
    + Zero
    + Hash
    + From<u128>
    + From<u64>
    + From<u32>
    + From<u16>
    + From<u8>
    + Add<Output = Self, Output = Self>
    + Sub<Output = Self, Output = Self>
    + Mul
    + Div<Output = Self, Output = Self>
    + AddAssign
    + SubAssign
    + MulAssign
    + DivAssign
    + for<'a> Add<&'a Self>
    + for<'a> Sub<&'a Self>
    + for<'a> Mul<&'a Self>
    + for<'a> Div<&'a Self>
    + for<'a> AddAssign<&'a Self>
    + for<'a> SubAssign<&'a Self>
    + for<'a> MulAssign<&'a Self>
    + for<'a> DivAssign<&'a Self>
    + Sum
    + for<'a> Sum<&'a Self>
    + Product
    + for<'a> Product<&'a Self>
    + CanonicalSerialize
    + CanonicalSerializeWithFlags
    + CanonicalDeserialize
    + CanonicalDeserializeWithFlags
    + Serialize
    + for<'a> Deserialize<'a> {
    type BasePrimeField: PrimeField;

Show 14 methods // Required methods fn from_base_prime_field(other: Self::BasePrimeField) -> Self; fn characteristic<'a>() -> &'a [u64]; fn double(&self) -> Self; fn double_in_place(&mut self); fn square(&self) -> Self; fn square_in_place(&mut self) -> &mut Self; fn inverse(&self) -> Option<Self>; fn inverse_in_place(&mut self) -> Option<&mut Self>; fn frobenius_map(&mut self, power: usize); fn from_random_bytes_with_flags<F>(bytes: &[u8]) -> Option<(Self, F)> where F: Flags; // Provided methods fn half() -> Self { ... } fn sum_of_products<'a>( a: impl Iterator<Item = &'a Self> + Clone, b: impl Iterator<Item = &'a Self> + Clone, ) -> Self { ... } fn pow<S>(&self, exp: S) -> Self where S: AsRef<[u64]> { ... } fn from_random_bytes(bytes: &[u8]) -> Option<Self> { ... }
}
Expand description

The interface for a generic field.

Required Associated Types§

Required Methods§

Source

fn from_base_prime_field(other: Self::BasePrimeField) -> Self

Constructs an element of Self from an element of the base prime field.

Source

fn characteristic<'a>() -> &'a [u64]

Returns the characteristic of the field.

Source

fn double(&self) -> Self

Returns self + self.

Source

fn double_in_place(&mut self)

Doubles self in place.

Source

fn square(&self) -> Self

Returns self * self.

Source

fn square_in_place(&mut self) -> &mut Self

Squares self in place.

Source

fn inverse(&self) -> Option<Self>

Computes the multiplicative inverse of self if self is nonzero.

Source

fn inverse_in_place(&mut self) -> Option<&mut Self>

Sets self to self’s inverse if it exists. Otherwise it is a no-op.

Source

fn frobenius_map(&mut self, power: usize)

Exponentiates this element by a power of the base prime modulus via the Frobenius automorphism.

Source

fn from_random_bytes_with_flags<F>(bytes: &[u8]) -> Option<(Self, F)>
where F: Flags,

Returns a field element with an extra sign bit used for group parsing if the set of bytes forms a valid field element, otherwise returns None. This function is primarily intended for sampling random field elements from a hash-function or RNG output.

Provided Methods§

Source

fn half() -> Self

Returns the constant 2^{-1}.

Source

fn sum_of_products<'a>( a: impl Iterator<Item = &'a Self> + Clone, b: impl Iterator<Item = &'a Self> + Clone, ) -> Self

Source

fn pow<S>(&self, exp: S) -> Self
where S: AsRef<[u64]>,

Exponentiates this element by a number represented with u64 limbs, least significant limb first.

Source

fn from_random_bytes(bytes: &[u8]) -> Option<Self>

Returns a field element if the set of bytes forms a valid field element, otherwise returns None. This function is primarily intended for sampling random field elements from a hash-function or RNG output.

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§