pub trait SharedFunctor<'a>: WeakFunctor<'a> {
    type Shared<A: 'a + Send + Sync + Clone>: 'a + Send + Sync + Clone;

    // Required methods
    fn share<A: 'a + Send + Sync + Clone>(fa: Self::F<A>) -> Self::Shared<A>;
    fn unshare<A: 'a + Send + Sync + Clone>(sa: Self::Shared<A>) -> Self::F<A>;
}

Required Associated Types§

source

type Shared<A: 'a + Send + Sync + Clone>: 'a + Send + Sync + Clone

Required Methods§

source

fn share<A: 'a + Send + Sync + Clone>(fa: Self::F<A>) -> Self::Shared<A>

source

fn unshare<A: 'a + Send + Sync + Clone>(sa: Self::Shared<A>) -> Self::F<A>

Implementors§

source§

impl<'a> SharedFunctor<'a> for FutureInstance

§

type Shared<A: 'a + Send + Sync + Clone> = Shared<Pin<Box<dyn Future<Output = A> + Send + 'a, Global>>>

source§

impl<'a, E: 'a + Send + Sync + Clone> SharedFunctor<'a> for TryFutureInstance<E>

§

type Shared<A: 'a + Send + Sync + Clone> = Shared<Pin<Box<dyn Future<Output = Result<A, E>> + Send + 'a, Global>>>

source§

impl<'a, T: 'a + SharedFunctorAny> SharedFunctor<'a> for T

§

type Shared<A: 'a + Send + Sync + Clone> = <T as SharedFunctorAny>::SharedAny<'a, A>

source§

impl<'a, T: SharedFunctor<'a>, O: 'a + DeriveWeakFunctor> SharedFunctor<'a> for OverloadInstance<T, O>

§

type Shared<A: 'a + Send + Sync + Clone> = <T as SharedFunctor<'a>>::Shared<A>

source§

impl<'a, U: SharedFunctor<'a> + Functor<'a>, V: SharedFunctor<'a>> SharedFunctor<'a> for CompositionInstance<U, V>

§

type Shared<A: 'a + Send + Sync + Clone> = <U as SharedFunctor<'a>>::Shared<<V as SharedFunctor<'a>>::Shared<A>>