Trait dogsdogsdogs::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>

Object Safety§

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§