pub struct DynFunctor<F: Functor<O1, A1, O2, A2>, O1, A1, O2, A2> { /* private fields */ }
Trait Implementations§
Source§impl<F: Functor<O1, A1, O2, A2>, O1: Clone + PartialEq, A1: Clone, O2: Clone + PartialEq, A2: Clone> Functor<VecKind, O1, A1, O2, A2> for DynFunctor<F, O1, A1, O2, A2>
impl<F: Functor<O1, A1, O2, A2>, O1: Clone + PartialEq, A1: Clone, O2: Clone + PartialEq, A2: Clone> Functor<VecKind, O1, A1, O2, A2> for DynFunctor<F, O1, A1, O2, A2>
Source§fn map_object(
&self,
a: &SemifiniteFunction<VecKind, O1>,
) -> IndexedCoproduct<VecKind, SemifiniteFunction<VecKind, O2>>
fn map_object( &self, a: &SemifiniteFunction<VecKind, O1>, ) -> IndexedCoproduct<VecKind, SemifiniteFunction<VecKind, O2>>
Action on objects
Source§fn map_operations(
&self,
ops: Operations<VecKind, O1, A1>,
) -> OpenHypergraph<VecKind, O2, A2>
fn map_operations( &self, ops: Operations<VecKind, O1, A1>, ) -> OpenHypergraph<VecKind, O2, A2>
Action on tensoring of operations, i.e., compute
F(f₀) ● F(f₁) ● .. ● F(fn)
for
generators f_i
.Source§fn map_arrow(
&self,
f: &OpenHypergraph<VecKind, O1, A1>,
) -> OpenHypergraph<VecKind, O2, A2>
fn map_arrow( &self, f: &OpenHypergraph<VecKind, O1, A1>, ) -> OpenHypergraph<VecKind, O2, A2>
Action on arrows.
If you have implemented
map_operations
, you can implement this simply as
define_map_arrow(self, f)
.Auto Trait Implementations§
impl<F, O1, A1, O2, A2> Freeze for DynFunctor<F, O1, A1, O2, A2>where
F: Freeze,
impl<F, O1, A1, O2, A2> RefUnwindSafe for DynFunctor<F, O1, A1, O2, A2>
impl<F, O1, A1, O2, A2> Send for DynFunctor<F, O1, A1, O2, A2>
impl<F, O1, A1, O2, A2> Sync for DynFunctor<F, O1, A1, O2, A2>
impl<F, O1, A1, O2, A2> Unpin for DynFunctor<F, O1, A1, O2, A2>
impl<F, O1, A1, O2, A2> UnwindSafe for DynFunctor<F, O1, A1, O2, A2>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more