pub struct HypergraphArrow<K: ArrayKind, O, A> {
pub source: Hypergraph<K, O, A>,
pub target: Hypergraph<K, O, A>,
pub w: FiniteFunction<K>,
pub x: FiniteFunction<K>,
}
Fields§
§source: Hypergraph<K, O, A>
Source hypergraph
target: Hypergraph<K, O, A>
target hypergraph
w: FiniteFunction<K>
Natural transformation on wires
x: FiniteFunction<K>
Natural transformation on operations
Implementations§
Source§impl<K: ArrayKind, O, A> HypergraphArrow<K, O, A>
impl<K: ArrayKind, O, A> HypergraphArrow<K, O, A>
Sourcepub fn new(
source: Hypergraph<K, O, A>,
target: Hypergraph<K, O, A>,
w: FiniteFunction<K>,
x: FiniteFunction<K>,
) -> Result<Self, InvalidHypergraphArrow>
pub fn new( source: Hypergraph<K, O, A>, target: Hypergraph<K, O, A>, w: FiniteFunction<K>, x: FiniteFunction<K>, ) -> Result<Self, InvalidHypergraphArrow>
Safely create a new HypergraphArrow by checking naturality of w
and x
.
Sourcepub fn validate(self) -> Result<Self, InvalidHypergraphArrow>
pub fn validate(self) -> Result<Self, InvalidHypergraphArrow>
Check validity of a HypergraphArrow.
Trait Implementations§
Auto Trait Implementations§
impl<K, O, A> Freeze for HypergraphArrow<K, O, A>
impl<K, O, A> RefUnwindSafe for HypergraphArrow<K, O, A>where
<K as ArrayKind>::Index: RefUnwindSafe,
<K as ArrayKind>::I: RefUnwindSafe,
<K as ArrayKind>::Type<O>: RefUnwindSafe,
<K as ArrayKind>::Type<A>: RefUnwindSafe,
impl<K, O, A> Send for HypergraphArrow<K, O, A>
impl<K, O, A> Sync for HypergraphArrow<K, O, A>
impl<K, O, A> Unpin for HypergraphArrow<K, O, A>
impl<K, O, A> UnwindSafe for HypergraphArrow<K, O, A>where
<K as ArrayKind>::Index: UnwindSafe,
<K as ArrayKind>::I: UnwindSafe,
<K as ArrayKind>::Type<O>: UnwindSafe,
<K as ArrayKind>::Type<A>: UnwindSafe,
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