pub trait CurveAffine:
Copy
+ Clone
+ Sized
+ Send
+ Sync
+ Debug
+ Display
+ PartialEq
+ Eq
+ 'static
+ Serialize
+ Deserialize<'static> {
type Engine: ScalarEngine<Fr = Self::Scalar>;
type Scalar: PrimeField + SqrtField;
type Base: SqrtField;
type Projective: CurveProjective<Affine = Self, Scalar = Self::Scalar>;
type Uncompressed: EncodedPoint<Affine = Self>;
type Compressed: EncodedPoint<Affine = Self>;
// Required methods
fn zero() -> Self;
fn one() -> Self;
fn is_zero(&self) -> bool;
fn negate(&mut self);
fn mul<S: Into<<Self::Scalar as PrimeField>::Repr>>(
&self,
other: S,
) -> Self::Projective;
fn into_projective(&self) -> Self::Projective;
// Provided methods
fn into_compressed(&self) -> Self::Compressed { ... }
fn into_uncompressed(&self) -> Self::Uncompressed { ... }
}Expand description
Affine representation of an elliptic curve point guaranteed to be in the correct prime order subgroup.
Required Associated Types§
type Engine: ScalarEngine<Fr = Self::Scalar>
type Scalar: PrimeField + SqrtField
type Base: SqrtField
type Projective: CurveProjective<Affine = Self, Scalar = Self::Scalar>
type Uncompressed: EncodedPoint<Affine = Self>
type Compressed: EncodedPoint<Affine = Self>
Required Methods§
Sourcefn is_zero(&self) -> bool
fn is_zero(&self) -> bool
Determines if this point represents the point at infinity; the additive identity.
Sourcefn mul<S: Into<<Self::Scalar as PrimeField>::Repr>>(
&self,
other: S,
) -> Self::Projective
fn mul<S: Into<<Self::Scalar as PrimeField>::Repr>>( &self, other: S, ) -> Self::Projective
Performs scalar multiplication of this element with mixed addition.
Sourcefn into_projective(&self) -> Self::Projective
fn into_projective(&self) -> Self::Projective
Converts this element into its affine representation.
Provided Methods§
Sourcefn into_compressed(&self) -> Self::Compressed
fn into_compressed(&self) -> Self::Compressed
Converts this element into its compressed encoding, so long as it’s not the point at infinity.
Sourcefn into_uncompressed(&self) -> Self::Uncompressed
fn into_uncompressed(&self) -> Self::Uncompressed
Converts this element into its uncompressed encoding, so long as it’s not the point at infinity.
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.