Struct DiscreteFieldEnvelopeV1
pub struct DiscreteFieldEnvelopeV1 { /* private fields */ }Description
Versioned, affine-simplex-mesh-bound discrete field content.
The envelope contains only numerical content identity: exact mesh digest, association, component shape, entity count, and entity-major values. Source names, file locations, storage layout, units, and Semantic Model bindings belong to separate typed contracts.
Decoding validates the closed wire grammar and resource limits, but does
not make an independently loaded mesh appear by implication. Call
Self::validate_mesh_artifact to obtain the accepted in-memory payload.
Implementations§
§impl DiscreteFieldEnvelopeV1
impl DiscreteFieldEnvelopeV1
pub fn from_payload(
mesh: &SimplicialMeshEnvelopeV1,
payload: &DiscreteFieldPayload,
) -> Result<DiscreteFieldEnvelopeV1, Diagnostic>
pub fn from_payload( mesh: &SimplicialMeshEnvelopeV1, payload: &DiscreteFieldPayload, ) -> Result<DiscreteFieldEnvelopeV1, Diagnostic>
Bind an already checked payload to one exact affine-simplex mesh.
The association count is independently rechecked against mesh before
bytes are produced.
§Errors
Returns EQ0901 for a mesh-linkage mismatch or a value/count that is
not representable by the portable v1 wire contract.
pub fn from_json(
bytes: &[u8],
limits: FieldDecoderLimits,
) -> Result<DiscreteFieldEnvelopeV1, Diagnostic>
pub fn from_json( bytes: &[u8], limits: FieldDecoderLimits, ) -> Result<DiscreteFieldEnvelopeV1, Diagnostic>
Decode with byte, nesting, entity, component, and scalar-value limits.
This operation performs no filesystem, network, or mesh lookup.
§Errors
Returns EQ0901 for malformed/unknown wire data, resource excess,
invalid digest/count/shape/value data, or a non-canonical negative zero.
pub fn canonical_json(&self) -> Result<Vec<u8>, Diagnostic>
pub fn canonical_json(&self) -> Result<Vec<u8>, Diagnostic>
pub fn digest(&self) -> Result<ArtifactDigest, Diagnostic>
pub fn digest(&self) -> Result<ArtifactDigest, Diagnostic>
Domain-separated SHA-256 identity of the complete mesh-bound field.
§Errors
Returns EQ0901 if canonical serialization fails.
pub fn mesh_artifact(&self) -> ArtifactDigest
pub fn mesh_artifact(&self) -> ArtifactDigest
Exact affine-simplex mesh content identity named by this envelope.
pub const fn association(&self) -> DiscreteFieldAssociation
pub const fn association(&self) -> DiscreteFieldAssociation
Mesh entity stratum carrying the values.
pub const fn component_shape(&self) -> DiscreteFieldShape
pub const fn component_shape(&self) -> DiscreteFieldShape
Component shape retained in field identity.
pub fn entity_count(&self) -> Result<usize, Diagnostic>
pub fn entity_count(&self) -> Result<usize, Diagnostic>
Portable entity count after checked conversion to local usize.
§Errors
Returns EQ0901 when the stored u64 is not representable locally.
pub fn values(&self) -> &[f64]
pub fn values(&self) -> &[f64]
Canonical entity-major scalar values.
These values remain bound to Self::mesh_artifact,
Self::association, and Self::component_shape. The projection is
provided so higher-level typed artifacts can validate spatial support
without inventing a second array representation.
pub fn validate_mesh_artifact(
&self,
mesh: &SimplicialMeshEnvelopeV1,
) -> Result<DiscreteFieldPayload, Diagnostic>
pub fn validate_mesh_artifact( &self, mesh: &SimplicialMeshEnvelopeV1, ) -> Result<DiscreteFieldPayload, Diagnostic>
Validate exact mesh linkage and reconstruct the accepted L2 payload.
Equal entity counts are insufficient: the supplied mesh envelope must have the exact content digest named by this field.
§Errors
Returns EQ0901 for a different mesh identity, association/count
mismatch, or any payload invariant failure.
Trait Implementations§
§impl Clone for DiscreteFieldEnvelopeV1
impl Clone for DiscreteFieldEnvelopeV1
§impl Debug for DiscreteFieldEnvelopeV1
impl Debug for DiscreteFieldEnvelopeV1
§impl PartialEq for DiscreteFieldEnvelopeV1
impl PartialEq for DiscreteFieldEnvelopeV1
§fn eq(&self, other: &DiscreteFieldEnvelopeV1) -> bool
fn eq(&self, other: &DiscreteFieldEnvelopeV1) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for DiscreteFieldEnvelopeV1
Auto Trait Implementations§
impl Freeze for DiscreteFieldEnvelopeV1
impl RefUnwindSafe for DiscreteFieldEnvelopeV1
impl Send for DiscreteFieldEnvelopeV1
impl Sync for DiscreteFieldEnvelopeV1
impl Unpin for DiscreteFieldEnvelopeV1
impl UnsafeUnpin for DiscreteFieldEnvelopeV1
impl UnwindSafe for DiscreteFieldEnvelopeV1
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
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.