/// For an algebraic structure, this defines the additive identity.
pubtraitZero
where
Self: Sized,
{/// The additive identity.
fnzero()->Self;/// Whether or not this item is zero.
fnvartime_is_zero(&self)->bool;}/// For an algebraic structure, this defines the multiplicative identity.
pubtraitOne
where
Self: Sized,
{/// The multiplicative identity.
fnone()->Self;}/// Methods for switching elements between finite rings.
pubtraitModSwitch<R> {/// Treat the input value as unsigned in the current Ring and produce
/// the same unsigned value in the ring `R`.
fnmod_switch_unsigned(&self)-> R;/// Treat the input value as signed in the current field
/// (i.e. [-q/2, q/2]) and produce the same signed value in `R`
/// (i.e. [-p/2, p/2]).
fnmod_switch_signed(&self)-> R;}pubusenum::traits::ToBytes;