pub trait Group<const LAMBDA: usize>where
Self: Add<Output = Self> + AddAssign + PartialEq + Eq + Debug + Sized + Clone + Sync + Send + From<[u8; LAMBDA]>,{
// 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
Into<[u8; LAMBDA]> is not used in any fss crate so not included.
But it is implemented by all groups in the submodules.
Required Methods§
Sourcefn add_inverse(self) -> Self
fn add_inverse(self) -> Self
Additive inverse in the group, e.g., -x for x in the integer group
Provided Methods§
Sourcefn add_inverse_if(self, t: bool) -> Self
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.
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.