Trait Semigroupoid
Source pub trait Semigroupoid: Kind1L2T {
// Required method
fn compose<'a, ClonableFnBrand: 'a + ClonableFn, B, C, D>(
f: Apply1L2T<'a, Self, C, D>,
) -> ApplyFn<'a, ClonableFnBrand, Apply1L2T<'a, Self, B, C>, Apply1L2T<'a, Self, B, D>>;
}
Expand description
A type class for semigroupoids.
A Semigroupoid is a set of objects and composable relationships
(morphisms) between them.
§Laws
Semigroupoid instances must satisfy the associative law:
- Associativity:
compose(p)(compose(q)(r)) = compose(compose(p)(q))(r).
§Examples
Takes morphisms f and g and returns the morphism f . g (f composed with g).
§Type Signature
forall b c d. Semigroupoid a => a c d -> a b c -> a b d
§Parameters
f: A morphism of type a c d.
g: A morphism of type a b c.
§Returns
The morphism f composed with g of type a b d.
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.