DuoComposition

Trait DuoComposition 

Source
pub trait DuoComposition<'a, A, B, C, D>
where Self: Sized,
{ // Provided methods fn HK<Mono>(self, m: Mono) -> Box<dyn Fn(B, A) -> D + 'a> where Self: Fn(B, C) -> D + 'a, Mono: Fn(A) -> C + 'a { ... } fn RH<Mono>(self, m: Mono) -> Box<dyn Fn(A, B) -> D + 'a> where Self: Fn(B, C) -> D + 'a, Mono: Fn(A) -> C + 'a { ... } }

Provided Methods§

Source

fn HK<Mono>(self, m: Mono) -> Box<dyn Fn(B, A) -> D + 'a>
where Self: Fn(B, C) -> D + 'a, Mono: Fn(A) -> C + 'a,

§Hook
D1.HK(M2)(x,y)
 
   /x
D1<
   \M2-y
Source

fn RH<Mono>(self, m: Mono) -> Box<dyn Fn(A, B) -> D + 'a>
where Self: Fn(B, C) -> D + 'a, Mono: Fn(A) -> C + 'a,

§RevHook
D1.HK(M2)(x,y)
 
   (y)
   /  \ /M2-x
D1<    X
   \  / \y
 (M2(x)) 

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§

Source§

impl<'a, A, B, C, D, Fun> DuoComposition<'a, A, B, C, D> for Fun
where Fun: Fn(B, C) -> D,