pub enum Connective {
Atom,
AtomDual,
Tensor,
Par,
Plus,
With,
One,
Bottom,
Zero,
Top,
OfCourse,
WhyNot,
}Variants§
Atom
A positive literal.
AtomDual
A literal’s linear negation a⊥.
Tensor
A ⊗ B — multiplicative conjunction (“both, together”).
Par
A ⅋ B — multiplicative disjunction.
Plus
A ⊕ B — additive disjunction (internal choice).
With
A & B — additive conjunction (external choice).
One
1 — unit of ⊗.
Bottom
⊥ — unit of ⅋.
Zero
0 — unit of ⊕.
Top
⊤ — unit of &.
OfCourse
!A — exponential “of course” (reusable: weakening + contraction apply).
WhyNot
?A — exponential “why not” (dual of !).
Implementations§
Source§impl Connective
impl Connective
Sourcepub fn dual(self) -> Connective
pub fn dual(self) -> Connective
Linear negation (·)⊥ — the involutive De Morgan dual (A⊥⊥ = A).
Sourcepub fn is_multiplicative(self) -> bool
pub fn is_multiplicative(self) -> bool
Multiplicative connectives/units (⊗ ⅋ 1 ⊥).
Sourcepub fn is_additive(self) -> bool
pub fn is_additive(self) -> bool
Additive connectives/units (⊕ & 0 ⊤).
Sourcepub fn is_exponential(self) -> bool
pub fn is_exponential(self) -> bool
Exponential connectives (! ?).
Sourcepub fn is_reusable(self) -> bool
pub fn is_reusable(self) -> bool
A resource under ! (“of course”) is reusable — structural weakening and contraction
are licensed. Everything else is linear (consume-once).
Trait Implementations§
Source§impl Clone for Connective
impl Clone for Connective
Source§fn clone(&self) -> Connective
fn clone(&self) -> Connective
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for Connective
impl Debug for Connective
Source§impl PartialEq for Connective
impl PartialEq for Connective
Source§fn eq(&self, other: &Connective) -> bool
fn eq(&self, other: &Connective) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Copy for Connective
impl Eq for Connective
impl StructuralPartialEq for Connective
Auto Trait Implementations§
impl Freeze for Connective
impl RefUnwindSafe for Connective
impl Send for Connective
impl Sync for Connective
impl Unpin for Connective
impl UnsafeUnpin for Connective
impl UnwindSafe for Connective
Blanket Implementations§
§impl<S, A> Aggregate<Result<S, Error>> for Awhere
A: Aggregate<S>,
impl<S, A> Aggregate<Result<S, Error>> for Awhere
A: Aggregate<S>,
Aggregate shares in an MPC protocol.
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more