pub trait EncodedPoint:
Sized
+ Send
+ Sync
+ AsRef<[u8]>
+ AsMut<[u8]>
+ Clone
+ Copy
+ 'static {
type Affine: CurveAffine;
// Required methods
fn empty() -> Self;
fn size() -> usize;
fn into_affine(&self) -> Result<Self::Affine, GroupDecodingError>;
fn into_affine_unchecked(&self) -> Result<Self::Affine, GroupDecodingError>;
fn from_affine(affine: Self::Affine) -> Self;
}
Expand description
An encoded elliptic curve point, which should essentially wrap a [u8; N]
.
Required Associated Types§
type Affine: CurveAffine
Required Methods§
Sourcefn into_affine(&self) -> Result<Self::Affine, GroupDecodingError>
fn into_affine(&self) -> Result<Self::Affine, GroupDecodingError>
Converts an EncodedPoint
into a CurveAffine
element,
if the encoding represents a valid element.
Sourcefn into_affine_unchecked(&self) -> Result<Self::Affine, GroupDecodingError>
fn into_affine_unchecked(&self) -> Result<Self::Affine, GroupDecodingError>
Converts an EncodedPoint
into a CurveAffine
element,
without guaranteeing that the encoding represents a valid
element. This is useful when the caller knows the encoding is
valid already.
If the encoding is invalid, this can break API invariants, so caution is strongly encouraged.
Sourcefn from_affine(affine: Self::Affine) -> Self
fn from_affine(affine: Self::Affine) -> Self
Creates an EncodedPoint
from an affine point, as long as the
point is 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.