Struct CanonicalGeometryV1
pub struct CanonicalGeometryV1 { /* private fields */ }Description
Opaque canonical content and identity of one planar geometry revision.
This value can only be derived from one admitted exact kind or from its kind-specific bounded canonical replay. It has no public kind catalogue and no constructor accepting a caller-provided digest or entity-set facts.
Implementations§
§impl CanonicalGeometryV1
impl CanonicalGeometryV1
pub fn from_region(
region: &PlanarRegion,
) -> Result<CanonicalGeometryV1, Diagnostic>
pub fn from_region( region: &PlanarRegion, ) -> Result<CanonicalGeometryV1, Diagnostic>
Derive canonical bytes and identity from one validated region.
§Errors
Returns EQ0901 if canonical JSON serialization unexpectedly fails.
pub fn decode_canonical(
bytes: &[u8],
limits: CanonicalGeometryLimits,
) -> Result<CanonicalGeometryV1, Diagnostic>
pub fn decode_canonical( bytes: &[u8], limits: CanonicalGeometryLimits, ) -> Result<CanonicalGeometryV1, Diagnostic>
Decode one bounded, byte-for-byte canonical geometry definition.
The input is not retained. It is parsed, resource-checked, revalidated
through PlanarRegion::new, reconstructed from that region, and
accepted only when the reconstructed bytes equal the input exactly.
§Errors
Returns EQ0901 for malformed or unknown wire data, resource excess,
invalid geometry, or any noncanonical encoding.
pub fn from_circular_hole(
bounds: [[f64; 2]; 2],
circle_center: [f64; 2],
circle_radius_m: f64,
entity_sets: Vec<NamedEntitySet>,
tolerance_m: f64,
) -> Result<CanonicalGeometryV1, Diagnostic>
pub fn from_circular_hole( bounds: [[f64; 2]; 2], circle_center: [f64; 2], circle_radius_m: f64, entity_sets: Vec<NamedEntitySet>, tolerance_m: f64, ) -> Result<CanonicalGeometryV1, Diagnostic>
Construct one exact axis-aligned rectangle-minus-circle geometry.
This preserves the accepted circular-hole wire and digest while the public owner remains independent of that one shape family.
§Errors
Returns EQ0901 for invalid exact geometry or entity-set meaning.
pub fn from_circular_hole_named_roles(
bounds: [[f64; 2]; 2],
circle_center: [f64; 2],
circle_radius_m: f64,
tolerance_m: f64,
region: &str,
x_lower: &str,
x_upper: &str,
y_lower: &str,
y_upper: &str,
hole: &str,
) -> Result<CanonicalGeometryV1, Diagnostic>
pub fn from_circular_hole_named_roles( bounds: [[f64; 2]; 2], circle_center: [f64; 2], circle_radius_m: f64, tolerance_m: f64, region: &str, x_lower: &str, x_upper: &str, y_lower: &str, y_upper: &str, hole: &str, ) -> Result<CanonicalGeometryV1, Diagnostic>
Construct one exact rectangle-minus-circle geometry from semantic roles.
Equal boundary names group their fixed roles into one entity set.
§Errors
Returns EQ0901 for invalid exact geometry, tolerance, or role meaning.
pub fn decode_circular_hole_canonical(
bytes: &[u8],
limits: CanonicalGeometryLimits,
) -> Result<CanonicalGeometryV1, Diagnostic>
pub fn decode_circular_hole_canonical( bytes: &[u8], limits: CanonicalGeometryLimits, ) -> Result<CanonicalGeometryV1, Diagnostic>
Decode the accepted circular-hole wire without widening the straight decoder.
§Errors
Returns EQ0901 for malformed, unknown, excessive, invalid, or
noncanonical circular-hole bytes.
pub const fn region(&self) -> Option<&PlanarRegion>
pub const fn region(&self) -> Option<&PlanarRegion>
Validated straight-edged region content, if this kind has one.
An exact curved geometry never fabricates its numerical chordal realization as exact region meaning.
pub const fn circular_hole_bounds(&self) -> Option<&[[f64; 2]; 2]>
pub const fn circular_hole_bounds(&self) -> Option<&[[f64; 2]; 2]>
Exact axis-aligned bounds for the admitted circular-hole kind.
pub const fn circular_hole_center(&self) -> Option<[f64; 2]>
pub const fn circular_hole_center(&self) -> Option<[f64; 2]>
Exact circle centre for the admitted circular-hole kind.
pub const fn circular_hole_radius_m(&self) -> Option<f64>
pub const fn circular_hole_radius_m(&self) -> Option<f64>
Exact circle radius for the admitted circular-hole kind.
pub const fn tolerance_m(&self) -> f64
pub const fn tolerance_m(&self) -> f64
Producer classification precision in metres.
pub fn entity_sets(&self) -> &[NamedEntitySet]
pub fn entity_sets(&self) -> &[NamedEntitySet]
Canonically ordered named exact entity sets.
pub fn entity_set(&self, name: &str) -> Option<&NamedEntitySet>
pub fn entity_set(&self, name: &str) -> Option<&NamedEntitySet>
One exact named entity set.
pub fn canonical_bytes(&self) -> &[u8] ⓘ
pub fn canonical_bytes(&self) -> &[u8] ⓘ
Exact compact canonical JSON bytes.
pub const fn digest_bytes(&self) -> [u8; 32]
pub const fn digest_bytes(&self) -> [u8; 32]
Complete domain-separated SHA-256 identity bytes.
Trait Implementations§
§impl Clone for CanonicalGeometryV1
impl Clone for CanonicalGeometryV1
§impl Debug for CanonicalGeometryV1
impl Debug for CanonicalGeometryV1
§impl<'a> From<&'a CanonicalGeometryV1> for CanonicalGeometryRef<'a>
impl<'a> From<&'a CanonicalGeometryV1> for CanonicalGeometryRef<'a>
§fn from(geometry: &'a CanonicalGeometryV1) -> CanonicalGeometryRef<'a>
fn from(geometry: &'a CanonicalGeometryV1) -> CanonicalGeometryRef<'a>
§impl PartialEq for CanonicalGeometryV1
impl PartialEq for CanonicalGeometryV1
§fn eq(&self, other: &CanonicalGeometryV1) -> bool
fn eq(&self, other: &CanonicalGeometryV1) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for CanonicalGeometryV1
Auto Trait Implementations§
impl Freeze for CanonicalGeometryV1
impl RefUnwindSafe for CanonicalGeometryV1
impl Send for CanonicalGeometryV1
impl Sync for CanonicalGeometryV1
impl Unpin for CanonicalGeometryV1
impl UnsafeUnpin for CanonicalGeometryV1
impl UnwindSafe for CanonicalGeometryV1
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.