Trait Profunctor

Source
pub trait Profunctor<A, B, C, D>: Bilift<A, B, C, D> + Bifunctor<C, B, A, D> {
    // Required method
    fn dimap<L, R>(
        self,
        left: L,
        right: R,
    ) -> <Self as Bilift<A, B, C, D>>::Target
       where L: Fn(C) -> A,
             R: Fn(B) -> D;
}
Expand description

A Profunctor is just a Bifunctor that is contravariant over its first argument and covariant over its second argument.

What’s the problem?

Required Methods§

Source

fn dimap<L, R>(self, left: L, right: R) -> <Self as Bilift<A, B, C, D>>::Target
where L: Fn(C) -> A, R: Fn(B) -> D,

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.

Implementors§