Struct ValueLiteral
pub struct ValueLiteral { /* private fields */ }Description
A complete finite mathematical value, with domain-specific exact payloads.
Components follow the type’s shape in row-major, last-axis-fastest order. The type alone determines scalar domain, dimensions, shape, and frame.
Implementations§
§impl ValueLiteral
impl ValueLiteral
pub fn enum_value(
value_type: ValueType,
tag: u32,
) -> Result<ValueLiteral, InvalidValueLiteral>
pub fn enum_value( value_type: ValueType, tag: u32, ) -> Result<ValueLiteral, InvalidValueLiteral>
Construct a checked member of one exact enum type, without numeric coercion.
pub const fn enum_tag(&self) -> Option<u32>
pub const fn enum_tag(&self) -> Option<u32>
Internal declared member selector; no integer or ordinal conversion is implied.
pub fn boolean(value: bool) -> ValueLiteral
pub fn boolean(value: bool) -> ValueLiteral
Construct a logical truth value without integer or real coercion.
pub const fn as_bool(&self) -> Option<bool>
pub const fn as_bool(&self) -> Option<bool>
Extract only a logical truth value; numeric zero and one are not Booleans.
pub fn new(
value_type: ValueType,
components: impl IntoIterator<Item = (f64, f64)>,
) -> Result<ValueLiteral, InvalidValueLiteral>
pub fn new( value_type: ValueType, components: impl IntoIterator<Item = (f64, f64)>, ) -> Result<ValueLiteral, InvalidValueLiteral>
Construct all components of the declared mathematical type. Signed zeros normalize to positive zero; all-zero values store no buffer. Inputs with unknown length are read at most one past the required count.
§Errors
Rejects incorrect cardinality, non-finite components, imaginary parts in real types, or component storage that cannot be allocated.
pub fn from_real(
value_type: ValueType,
value: f64,
) -> Result<ValueLiteral, InvalidValueLiteral>
pub fn from_real( value_type: ValueType, value: f64, ) -> Result<ValueLiteral, InvalidValueLiteral>
Embed a real scalar or contextual zero into the declared type. A shaped contextual zero requires no shape-sized allocation or traversal.
§Errors
Rejects non-finite values and nonzero scalar broadcasting to shaped types.
pub const fn value_type(&self) -> &ValueType
pub const fn value_type(&self) -> &ValueType
Complete mathematical type, including scalar domain and component roles.
pub fn component_count(&self) -> usize
pub fn component_count(&self) -> usize
Exact number of mathematical components, independent of storage.
pub fn component(&self, index: usize) -> Option<(f64, f64)>
pub fn component(&self, index: usize) -> Option<(f64, f64)>
One ordered real/imaginary pair, or None outside the exact shape.
pub fn components(&self) -> Option<impl ExactSizeIterator + DoubleEndedIterator>
pub fn components(&self) -> Option<impl ExactSizeIterator + DoubleEndedIterator>
Components in row-major, last-axis-fastest order, without materializing zero storage.
pub const fn is_zero(&self) -> bool
pub const fn is_zero(&self) -> bool
Whether every numeric component is zero. Boolean false is not numeric zero.
pub fn real_scalar_value(&self) -> Option<DynQuantity>
pub fn real_scalar_value(&self) -> Option<DynQuantity>
Extract a numerical quantity only for an invariant real scalar.
§impl ValueLiteral
impl ValueLiteral
pub fn array(
elements: &[&ValueLiteral],
) -> Result<ValueLiteral, InvalidValueLiteral>
pub fn array( elements: &[&ValueLiteral], ) -> Result<ValueLiteral, InvalidValueLiteral>
Pack complete compatible elements into one outer channel axis. Real elements may embed into complex elements; no scalar-to-array broadcast occurs.
§Errors
Rejects empty inputs, incompatible types, invalid extents or allocation failure.
pub fn index(&self, index: u32) -> Result<ValueLiteral, InvalidValueLiteral>
pub fn index(&self, index: u32) -> Result<ValueLiteral, InvalidValueLiteral>
Select a complete element along the outermost channel axis. Spatial tensor axes are never interpreted as channel axes.
§Errors
Rejects non-arrays, out-of-range indices or allocation failure.
§impl ValueLiteral
impl ValueLiteral
pub fn checked_equal(
&self,
other: &ValueLiteral,
) -> Result<bool, InvalidValueLiteral>
pub fn checked_equal( &self, other: &ValueLiteral, ) -> Result<bool, InvalidValueLiteral>
Exact scalar equality without numeric Boolean or integer/real coercion. Real and complex quantities share equality only at equal dimensions and frames; nominal indexes require the same complete type. Arrays and counts are rejected.
pub fn checked_order(
&self,
other: &ValueLiteral,
) -> Result<Ordering, InvalidValueLiteral>
pub fn checked_order( &self, other: &ValueLiteral, ) -> Result<Ordering, InvalidValueLiteral>
Exact ordering of ordinary real or integer scalars, without cross-domain coercion. Complex values, Booleans, nominal indexes, counts, and arrays are rejected.
§impl ValueLiteral
impl ValueLiteral
pub fn integer(
value_type: ValueType,
components: impl IntoIterator<Item = i64>,
) -> Result<ValueLiteral, InvalidValueLiteral>
pub fn integer( value_type: ValueType, components: impl IntoIterator<Item = i64>, ) -> Result<ValueLiteral, InvalidValueLiteral>
Construct exact integer components in row-major order, without real conversion. All-zero input uses compact storage; at most one excess input is consumed.
pub fn from_integer(
value_type: ValueType,
value: i64,
) -> Result<ValueLiteral, InvalidValueLiteral>
pub fn from_integer( value_type: ValueType, value: i64, ) -> Result<ValueLiteral, InvalidValueLiteral>
Construct an integer scalar or compact contextual integer zero.
pub fn integer_component(&self, index: usize) -> Option<i64>
pub fn integer_component(&self, index: usize) -> Option<i64>
Exact integer component, absent for other domains or out-of-range positions.
pub fn integer_components(
&self,
) -> Option<impl ExactSizeIterator + DoubleEndedIterator>
pub fn integer_components( &self, ) -> Option<impl ExactSizeIterator + DoubleEndedIterator>
Exact ordered integer components, absent for other domains.
pub fn integer_scalar_value(&self) -> Option<i64>
pub fn integer_scalar_value(&self) -> Option<i64>
Extract only an exact invariant dimensionless integer scalar.
pub fn ordinal(&self) -> Result<ValueLiteral, InvalidValueLiteral>
pub fn ordinal(&self) -> Result<ValueLiteral, InvalidValueLiteral>
Explicitly forget a checked index’s nominal set, retaining its exact ordinal.
pub fn checked_add(
&self,
other: &ValueLiteral,
) -> Result<ValueLiteral, InvalidValueLiteral>
pub fn checked_add( &self, other: &ValueLiteral, ) -> Result<ValueLiteral, InvalidValueLiteral>
Checked exact integer addition, with equal complete types and no broadcasting.
pub fn checked_sub(
&self,
other: &ValueLiteral,
) -> Result<ValueLiteral, InvalidValueLiteral>
pub fn checked_sub( &self, other: &ValueLiteral, ) -> Result<ValueLiteral, InvalidValueLiteral>
Checked exact integer subtraction.
pub fn checked_mul(
&self,
other: &ValueLiteral,
) -> Result<ValueLiteral, InvalidValueLiteral>
pub fn checked_mul( &self, other: &ValueLiteral, ) -> Result<ValueLiteral, InvalidValueLiteral>
Checked exact integer multiplication.
pub fn checked_neg(&self) -> Result<ValueLiteral, InvalidValueLiteral>
pub fn checked_neg(&self) -> Result<ValueLiteral, InvalidValueLiteral>
Checked exact integer negation.
pub fn checked_quotient(
&self,
other: &ValueLiteral,
) -> Result<ValueLiteral, InvalidValueLiteral>
pub fn checked_quotient( &self, other: &ValueLiteral, ) -> Result<ValueLiteral, InvalidValueLiteral>
Integer quotient, truncating toward zero. A zero divisor and MIN / -1 are rejected.
pub fn checked_remainder(
&self,
other: &ValueLiteral,
) -> Result<ValueLiteral, InvalidValueLiteral>
pub fn checked_remainder( &self, other: &ValueLiteral, ) -> Result<ValueLiteral, InvalidValueLiteral>
Integer remainder with the dividend’s sign. A zero divisor and MIN % -1 are rejected.
pub fn to_real(&self) -> Result<ValueLiteral, InvalidValueLiteral>
pub fn to_real(&self) -> Result<ValueLiteral, InvalidValueLiteral>
Explicit integer scalar to binary64, rounded once to nearest, ties to even.
pub fn to_integer(&self) -> Result<ValueLiteral, InvalidValueLiteral>
pub fn to_integer(&self) -> Result<ValueLiteral, InvalidValueLiteral>
Convert only a finite dimensionless integral real scalar in the signed range.
§impl ValueLiteral
impl ValueLiteral
pub fn component_real(
&self,
index: usize,
) -> Result<DynQuantity, InvalidValueLiteral>
pub fn component_real( &self, index: usize, ) -> Result<DynQuantity, InvalidValueLiteral>
Real part of one declared row-major component, with the source dimension.
§Errors
Rejects nonnumeric domains and indexes outside the exact shape.
pub fn component_imaginary(
&self,
index: usize,
) -> Result<DynQuantity, InvalidValueLiteral>
pub fn component_imaginary( &self, index: usize, ) -> Result<DynQuantity, InvalidValueLiteral>
Imaginary part of one declared row-major component, with the source dimension.
§Errors
Rejects nonnumeric domains and indexes outside the exact shape.
pub fn component_magnitude(
&self,
index: usize,
) -> Result<DynQuantity, InvalidValueLiteral>
pub fn component_magnitude( &self, index: usize, ) -> Result<DynQuantity, InvalidValueLiteral>
Euclidean magnitude of one declared component, with the source dimension. No peak/RMS, power or probability interpretation is inferred.
§Errors
Rejects nonnumeric domains, out-of-shape indexes and numerical overflow.
pub fn component_squared_magnitude(
&self,
index: usize,
) -> Result<DynQuantity, InvalidValueLiteral>
pub fn component_squared_magnitude( &self, index: usize, ) -> Result<DynQuantity, InvalidValueLiteral>
Squared magnitude of one declared component, with the squared source dimension. This does not sum components or infer a physical normalization.
§Errors
Rejects nonnumeric domains, out-of-shape indexes, derived-dimension overflow and numerical overflow.
pub fn component_phase(
&self,
index: usize,
) -> Result<Option<DynQuantity>, InvalidValueLiteral>
pub fn component_phase( &self, index: usize, ) -> Result<Option<DynQuantity>, InvalidValueLiteral>
Principal argument in radians (dimensionless), undefined exactly at zero. No threshold, phase unwrapping, or phasor convention is applied.
§Errors
Rejects nonnumeric domains and indexes outside the exact shape.
Trait Implementations§
§impl Clone for ValueLiteral
impl Clone for ValueLiteral
§impl Debug for ValueLiteral
impl Debug for ValueLiteral
§impl PartialEq for ValueLiteral
impl PartialEq for ValueLiteral
§fn eq(&self, other: &ValueLiteral) -> bool
fn eq(&self, other: &ValueLiteral) -> bool
self and other values to be equal, and is used by ==.§impl TryFrom<DynQuantity> for ValueLiteral
impl TryFrom<DynQuantity> for ValueLiteral
§type Error = InvalidValueLiteral
type Error = InvalidValueLiteral
§fn try_from(
value: DynQuantity,
) -> Result<ValueLiteral, <ValueLiteral as TryFrom<DynQuantity>>::Error>
fn try_from( value: DynQuantity, ) -> Result<ValueLiteral, <ValueLiteral as TryFrom<DynQuantity>>::Error>
impl StructuralPartialEq for ValueLiteral
Auto Trait Implementations§
impl Freeze for ValueLiteral
impl RefUnwindSafe for ValueLiteral
impl Send for ValueLiteral
impl Sync for ValueLiteral
impl Unpin for ValueLiteral
impl UnsafeUnpin for ValueLiteral
impl UnwindSafe for ValueLiteral
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,
§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>
§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,
§type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
§fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
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
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
§fn approx(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
fn approx(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
§impl<T> ConvUtil for T
impl<T> ConvUtil for T
§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>,
§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,
§fn into_as<Dst>(self) -> Dstwhere
Self: Sized + Into<Dst>,
fn into_as<Dst>(self) -> Dstwhere
Self: Sized + Into<Dst>,
§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>,
§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>,
Source§impl<T> From<T> for T
impl<T> From<T> for T
§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, 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>
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,
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
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>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
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
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.