differential_dogs3

Trait ProposeExtensionMethod

Source
pub trait ProposeExtensionMethod<G: Scope, P: ExchangeData + Ord, R: Monoid + Multiply<Output = R>> {
    // Required methods
    fn propose_using<PE: PrefixExtender<G, R, Prefix = P>>(
        &self,
        extender: &mut PE,
    ) -> Collection<G, (P, PE::Extension), R>;
    fn extend<E: ExchangeData + Ord>(
        &self,
        extenders: &mut [&mut dyn PrefixExtender<G, R, Prefix = P, Extension = E>],
    ) -> Collection<G, (P, E), R>;
}

Required Methods§

Source

fn propose_using<PE: PrefixExtender<G, R, Prefix = P>>( &self, extender: &mut PE, ) -> Collection<G, (P, PE::Extension), R>

Source

fn extend<E: ExchangeData + Ord>( &self, extenders: &mut [&mut dyn PrefixExtender<G, R, Prefix = P, Extension = E>], ) -> Collection<G, (P, E), R>

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.

Implementations on Foreign Types§

Source§

impl<G, P, R> ProposeExtensionMethod<G, P, R> for Collection<G, P, R>
where G: Scope, P: ExchangeData + Ord, R: Monoid + Multiply<Output = R> + 'static,

Source§

fn propose_using<PE>( &self, extender: &mut PE, ) -> Collection<G, (P, PE::Extension), R>
where PE: PrefixExtender<G, R, Prefix = P>,

Source§

fn extend<E>( &self, extenders: &mut [&mut dyn PrefixExtender<G, R, Prefix = P, Extension = E>], ) -> Collection<G, (P, E), R>
where E: ExchangeData + Ord,

Implementors§