pub trait FreeModuleSignature<Ring: RingSignature>: ModuleSignature<Ring> {
type Basis: SetSignature;
// Required methods
fn basis_set(&self) -> impl Borrow<Self::Basis>;
fn to_component<'a>(
&self,
b: &<Self::Basis as SetSignature>::Set,
v: &'a Self::Set,
) -> Cow<'a, Ring::Set>;
fn from_component(
&self,
b: &<Self::Basis as SetSignature>::Set,
r: &Ring::Set,
) -> Self::Set;
}Required Associated Types§
type Basis: SetSignature
Required Methods§
fn basis_set(&self) -> impl Borrow<Self::Basis>
fn to_component<'a>( &self, b: &<Self::Basis as SetSignature>::Set, v: &'a Self::Set, ) -> Cow<'a, Ring::Set>
fn from_component( &self, b: &<Self::Basis as SetSignature>::Set, r: &Ring::Set, ) -> Self::Set
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.