Trait radn::func::Functor

source ·
pub trait Functor<'a>: WeakFunctor<'a> {
    // Required method
    fn fmap<A: 'a + Send, B: 'a + Send>(
        fa: Self::F<A>,
        f: impl 'a + Send + FnOnce(A) -> B
    ) -> Self::F<B>;

    // Provided methods
    fn replace<A: 'a + Send, B: 'a + Send>(fa: Self::F<A>, b: B) -> Self::F<B> { ... }
    fn void<A: 'a + Send>(fa: Self::F<A>) -> Self::F<()> { ... }
}
Expand description

Rust-specific implementation of Functor, respecting move semantics.

https://hackage.haskell.org/package/base-4.18.0.0/docs/Data-Functor.html

Required Methods§

source

fn fmap<A: 'a + Send, B: 'a + Send>( fa: Self::F<A>, f: impl 'a + Send + FnOnce(A) -> B ) -> Self::F<B>

Equivalent or Haskell’s fmap. Due to Rust limitations, it’s not a function->function conversion. For that see derivations::fmap.

Provided Methods§

source

fn replace<A: 'a + Send, B: 'a + Send>(fa: Self::F<A>, b: B) -> Self::F<B>

Equivalent of Haskell’s $>/<$.

source

fn void<A: 'a + Send>(fa: Self::F<A>) -> Self::F<()>

Equivalent of Haskell’s void.

Implementors§

source§

impl<'a> Functor<'a> for FutureInstance

source§

impl<'a> Functor<'a> for LazyInstance

source§

impl<'a> Functor<'a> for OptionInstance

source§

impl<'a> Functor<'a> for SoloInstance

source§

impl<'a> Functor<'a> for StacklessInstance

source§

impl<'a, E: 'a + Send> Functor<'a> for EffectInstance<E>

source§

impl<'a, E: 'a + Send> Functor<'a> for ResultInstance<E>

source§

impl<'a, E: 'a + Send> Functor<'a> for TryFutureInstance<E>

source§

impl<'a, T: Functor<'a>, O: 'a + DeriveFunctor> Functor<'a> for OverloadInstance<T, O>

source§

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