Trait fss_rs::group::Group

source ·
pub trait Group<const OUT_BLEN: usize>
where Self: Add<Output = Self> + AddAssign + PartialEq + Eq + Debug + Sized + Clone + Sync + Send + From<[u8; OUT_BLEN]>,
{ // Required methods fn zero() -> Self; fn add_inverse(self) -> Self; // Provided method fn add_inverse_if(self, t: bool) -> Self { ... } }
Expand description

Group (mathematics) that can be converted from a byte array.

Required Methods§

source

fn zero() -> Self

Zero in the group.

source

fn add_inverse(self) -> Self

Additive inverse in the group, e.g., -x for x in the integer group.

Provided Methods§

source

fn add_inverse_if(self, t: bool) -> Self

Helper to get the additive inverse if true. Used for expressions like $(-1)^n x$, in which t can be computed from n.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<const OUT_BLEN: usize> Group<OUT_BLEN> for ByteGroup<OUT_BLEN>

source§

impl<const OUT_BLEN: usize> Group<OUT_BLEN> for I8Group

source§

impl<const OUT_BLEN: usize> Group<OUT_BLEN> for I16Group

source§

impl<const OUT_BLEN: usize> Group<OUT_BLEN> for I32Group

source§

impl<const OUT_BLEN: usize> Group<OUT_BLEN> for I64Group

source§

impl<const OUT_BLEN: usize> Group<OUT_BLEN> for I128Group

source§

impl<const OUT_BLEN: usize> Group<OUT_BLEN> for fss_rs::group::int::U8Group

source§

impl<const OUT_BLEN: usize> Group<OUT_BLEN> for fss_rs::group::int::U16Group

source§

impl<const OUT_BLEN: usize> Group<OUT_BLEN> for fss_rs::group::int::U32Group

source§

impl<const OUT_BLEN: usize> Group<OUT_BLEN> for fss_rs::group::int::U64Group

source§

impl<const OUT_BLEN: usize> Group<OUT_BLEN> for fss_rs::group::int::U128Group

source§

impl<const OUT_BLEN: usize, const MOD: u8> Group<OUT_BLEN> for fss_rs::group::int_prime::U8Group<MOD>

source§

impl<const OUT_BLEN: usize, const MOD: u16> Group<OUT_BLEN> for fss_rs::group::int_prime::U16Group<MOD>

source§

impl<const OUT_BLEN: usize, const MOD: u32> Group<OUT_BLEN> for fss_rs::group::int_prime::U32Group<MOD>

source§

impl<const OUT_BLEN: usize, const MOD: u64> Group<OUT_BLEN> for fss_rs::group::int_prime::U64Group<MOD>

source§

impl<const OUT_BLEN: usize, const MOD: u128> Group<OUT_BLEN> for fss_rs::group::int_prime::U128Group<MOD>