pub trait Group:
Sized
+ Clone
+ Copy
+ Debug
+ Eq
+ Send
+ Sync
+ 'static
+ Sum
+ for<'a> Sum<&'a Self>
+ Neg<Output = Self>
+ GroupOps
+ GroupOpsOwned
+ ScalarMul<Self::Scalar>
+ ScalarMulOwned<Self::Scalar> {
type Scalar: PrimeField;
// Required methods
fn random(rng: impl RngCore) -> Self;
fn identity() -> Self;
fn generator() -> Self;
fn is_identity(&self) -> Choice;
fn double(&self) -> Self;
}
Expand description
This trait represents an element of a cryptographic group.
Required Associated Types§
Sourcetype Scalar: PrimeField
type Scalar: PrimeField
Scalars modulo the order of this group’s scalar field.
Required Methods§
Sourcefn random(rng: impl RngCore) -> Self
fn random(rng: impl RngCore) -> Self
Returns an element chosen uniformly at random from the non-identity elements of this group.
This function is non-deterministic, and samples from the user-provided RNG.
Sourcefn is_identity(&self) -> Choice
fn is_identity(&self) -> Choice
Determines if this point is the identity.
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.