#[non_exhaustive]pub struct Operations<K: ArrayKind, O, A> {
pub x: SemifiniteFunction<K, A>,
pub a: IndexedCoproduct<K, SemifiniteFunction<K, O>>,
pub b: IndexedCoproduct<K, SemifiniteFunction<K, O>>,
}
Expand description
Column-oriented storage of operations and their types.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.x: SemifiniteFunction<K, A>
§a: IndexedCoproduct<K, SemifiniteFunction<K, O>>
§b: IndexedCoproduct<K, SemifiniteFunction<K, O>>
Implementations§
Source§impl<K: ArrayKind, O, A> Operations<K, O, A>
impl<K: ArrayKind, O, A> Operations<K, O, A>
Sourcepub fn new(
x: SemifiniteFunction<K, A>,
a: IndexedCoproduct<K, SemifiniteFunction<K, O>>,
b: IndexedCoproduct<K, SemifiniteFunction<K, O>>,
) -> Option<Self>
pub fn new( x: SemifiniteFunction<K, A>, a: IndexedCoproduct<K, SemifiniteFunction<K, O>>, b: IndexedCoproduct<K, SemifiniteFunction<K, O>>, ) -> Option<Self>
Safely create a list of operations which is guaranteed to have the right number of source and target types for each operation.
Sourcepub fn validate(self) -> Option<Self>
pub fn validate(self) -> Option<Self>
Ensure this list of operations has a source and target type for each operation label.
Sourcepub fn singleton(
x: A,
a: SemifiniteFunction<K, O>,
b: SemifiniteFunction<K, O>,
) -> Self
pub fn singleton( x: A, a: SemifiniteFunction<K, O>, b: SemifiniteFunction<K, O>, ) -> Self
A single operation (or a tensoring of length 1)
pub fn len(&self) -> K::I
Trait Implementations§
Source§impl<K: ArrayKind, O, A> Clone for Operations<K, O, A>
impl<K: ArrayKind, O, A> Clone for Operations<K, O, A>
Auto Trait Implementations§
impl<K, O, A> Freeze for Operations<K, O, A>
impl<K, O, A> RefUnwindSafe for Operations<K, O, A>where
<K as ArrayKind>::Type<A>: RefUnwindSafe,
<K as ArrayKind>::Index: RefUnwindSafe,
<K as ArrayKind>::I: RefUnwindSafe,
<K as ArrayKind>::Type<O>: RefUnwindSafe,
impl<K, O, A> Send for Operations<K, O, A>
impl<K, O, A> Sync for Operations<K, O, A>
impl<K, O, A> Unpin for Operations<K, O, A>
impl<K, O, A> UnwindSafe for Operations<K, O, A>where
<K as ArrayKind>::Type<A>: UnwindSafe,
<K as ArrayKind>::Index: UnwindSafe,
<K as ArrayKind>::I: UnwindSafe,
<K as ArrayKind>::Type<O>: 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