openvm_ecc_guest

Trait Group

Source
pub trait Group:
    Clone
    + Debug
    + Eq
    + Sized
    + Add<Output = Self>
    + Sub<Output = Self>
    + Neg<Output = Self>
    + for<'a> Add<&'a Self, Output = Self>
    + for<'a> Sub<&'a Self, Output = Self>
    + AddAssign
    + SubAssign
    + for<'a> AddAssign<&'a Self>
    + for<'a> SubAssign<&'a Self> {
    type SelfRef<'a>: Add<&'a Self, Output = Self> + Sub<&'a Self, Output = Self>
       where Self: 'a;

    const IDENTITY: Self;

    // Required methods
    fn double(&self) -> Self;
    fn double_assign(&mut self);

    // Provided method
    fn is_identity(&self) -> bool { ... }
}

Required Associated Constants§

Source

const IDENTITY: Self

Required Associated Types§

Source

type SelfRef<'a>: Add<&'a Self, Output = Self> + Sub<&'a Self, Output = Self> where Self: 'a

Required Methods§

Source

fn double(&self) -> Self

Source

fn double_assign(&mut self)

Provided Methods§

Source

fn is_identity(&self) -> bool

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 Group for Secp256k1Point

Source§

const IDENTITY: Self = <Self as WeierstrassPoint>::IDENTITY

Source§

type SelfRef<'a> = &'a Secp256k1Point