Struct PureOperatorDefinition
pub struct PureOperatorDefinition { /* private fields */ }Description
One bounded, capture-free, content-addressed operator definition.
Implementations§
§impl PureOperatorDefinition
impl PureOperatorDefinition
pub fn canonical_bytes(&self) -> Vec<u8> ⓘ
pub fn canonical_bytes(&self) -> Vec<u8> ⓘ
Canonical bytes. Names and package paths are absent.
pub fn digest(&self) -> OperatorDefinitionDigest
pub fn digest(&self) -> OperatorDefinitionDigest
Canonical definition digest. Names and package paths are absent.
pub fn formals(&self) -> &[PureValueClass]
pub fn formals(&self) -> &[PureValueClass]
Exact formal rules in slot order.
pub const fn result_rule(&self) -> PureValueClass
pub const fn result_rule(&self) -> PureValueClass
Exact result-type rule.
pub const fn dimension_monomial(&self) -> &FormalDimensionMonomial
pub const fn dimension_monomial(&self) -> &FormalDimensionMonomial
Symbolic body dimension over formal dimensions.
pub fn nodes(&self) -> &[CalculusNode]
pub fn nodes(&self) -> &[CalculusNode]
Topologically ordered exact calculus nodes.
pub const fn root(&self) -> CalculusNodeId
pub const fn root(&self) -> CalculusNodeId
Root of the exact calculus body.
pub fn instantiate<'a, I>(
&'a self,
arguments: &[ExpressionType<I>],
) -> Result<PureOperatorInstantiation<'a, I>, PureOperatorError>where
I: Clone + Eq,
pub fn instantiate<'a, I>(
&'a self,
arguments: &[ExpressionType<I>],
) -> Result<PureOperatorInstantiation<'a, I>, PureOperatorError>where
I: Clone + Eq,
Derive and validate one typed application.
§Errors
Rejects arity, shape, frame, support, and result-rule mismatches before any lowered component expansion.
pub fn symmetric_part() -> Result<PureOperatorDefinition, PureOperatorError>
pub fn symmetric_part() -> Result<PureOperatorDefinition, PureOperatorError>
Standard symmetric-part definition (A[i,j] + A[j,i]) / 2.
pub fn isotropic_lift() -> Result<PureOperatorDefinition, PureOperatorError>
pub fn isotropic_lift() -> Result<PureOperatorDefinition, PureOperatorError>
Standard isotropic lift delta[i,j] * s.
pub fn dyadic_product() -> Result<PureOperatorDefinition, PureOperatorError>
pub fn dyadic_product() -> Result<PureOperatorDefinition, PureOperatorError>
Standard dyadic product a[i] * b[j].
Trait Implementations§
§impl Clone for PureOperatorDefinition
impl Clone for PureOperatorDefinition
§impl Debug for PureOperatorDefinition
impl Debug for PureOperatorDefinition
§impl PartialEq for PureOperatorDefinition
impl PartialEq for PureOperatorDefinition
§fn eq(&self, other: &PureOperatorDefinition) -> bool
fn eq(&self, other: &PureOperatorDefinition) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Eq for PureOperatorDefinition
impl StructuralPartialEq for PureOperatorDefinition
Auto Trait Implementations§
impl Freeze for PureOperatorDefinition
impl RefUnwindSafe for PureOperatorDefinition
impl Send for PureOperatorDefinition
impl Sync for PureOperatorDefinition
impl Unpin for PureOperatorDefinition
impl UnsafeUnpin for PureOperatorDefinition
impl UnwindSafe for PureOperatorDefinition
Blanket Implementations§
Source§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere
Scheme: ApproxScheme,
impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere
Scheme: ApproxScheme,
Signature links:§
§fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>
fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>
Convert the given value into an approximately equivalent representation.
§impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Srcwhere
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Srcwhere
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
Signature links:§
§type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
Signature links:§
The error type produced by a failed conversion.
§fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
Convert the subject into an approximately equivalent representation.
Source§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
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<T, Dst> ConvAsUtil<Dst> for T
impl<T, Dst> ConvAsUtil<Dst> for T
Signature links:§
§fn approx(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
fn approx(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
Approximate the subject with the default scheme.
§impl<T> ConvUtil for T
impl<T> ConvUtil for T
Signature links:§
§fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
Approximate the subject to a given type with the default scheme.
§fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst, Scheme>,
Scheme: ApproxScheme,
fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst, Scheme>,
Scheme: ApproxScheme,
Approximate the subject to a given type with a specific scheme.
§fn into_as<Dst>(self) -> Dstwhere
Self: Sized + Into<Dst>,
fn into_as<Dst>(self) -> Dstwhere
Self: Sized + Into<Dst>,
Convert the subject to a given type.
§fn try_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + TryInto<Dst>,
fn try_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + TryInto<Dst>,
Attempt to convert the subject to a given type.
§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
fn rand<T>(&self, rng: &mut (impl Rng + ?Sized)) -> Twhere
Self: Distribution<T>,
§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
§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 Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
§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 Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
Source§impl<T> From<T> for T
impl<T> From<T> for T
Source§impl<T, U> Into<U> for Twhere
U: From<T>,
impl<T, U> Into<U> for Twhere
U: From<T>,
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>where
F: FnOnce(&Self) -> bool,
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>where
F: FnOnce(&Self) -> bool,
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§impl<T> Pointable for T
impl<T> Pointable for T
Signature links:§
Source§impl<T> Same for T
impl<T> Same for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Signature links:§
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Signature links:§
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.Source§impl<T> ToOwned for Twhere
T: Clone,
impl<T> ToOwned for Twhere
T: Clone,
§impl<Src> TryFrom<Src> for Src
impl<Src> TryFrom<Src> for Src
Signature links:§
Source§impl<T, U> TryFrom<U> for Twhere
U: Into<T>,
impl<T, U> TryFrom<U> for Twhere
U: Into<T>,
§impl<Src, Dst> TryInto<Dst> for Srcwhere
Dst: TryFrom<Src>,
impl<Src, Dst> TryInto<Dst> for Srcwhere
Dst: TryFrom<Src>,
Signature links:§
Source§impl<T, U> TryInto<U> for Twhere
U: TryFrom<T>,
impl<T, U> TryInto<U> for Twhere
U: TryFrom<T>,
§impl<Src> ValueFrom<Src> for Src
impl<Src> ValueFrom<Src> for Src
Signature links:§
§fn value_from(src: Src) -> Result<Src, <Src as ValueFrom<Src>>::Err>
fn value_from(src: Src) -> Result<Src, <Src as ValueFrom<Src>>::Err>
Convert the given value into an exactly equivalent representation.
§impl<Src, Dst> ValueInto<Dst> for Srcwhere
Dst: ValueFrom<Src>,
impl<Src, Dst> ValueInto<Dst> for Srcwhere
Dst: ValueFrom<Src>,
Signature links:§
§type Err = <Dst as ValueFrom<Src>>::Err
type Err = <Dst as ValueFrom<Src>>::Err
Signature links:§
The error type produced by a failed conversion.
§fn value_into(self) -> Result<Dst, <Src as ValueInto<Dst>>::Err>
fn value_into(self) -> Result<Dst, <Src as ValueInto<Dst>>::Err>
Convert the subject into an exactly equivalent representation.