pub enum AbstractGeometryKindRef<'a> {
AbstractGeometricAggregateKind(AbstractGeometricAggregateKindRef<'a>),
AbstractGeometricPrimitiveKind(AbstractGeometricPrimitiveKindRef<'a>),
}Expand description
Borrowed view over AbstractGeometryKind, mirroring its shape one level
at a time down to the concrete leaf geometry types (Point, Polygon,
MultiSurface, …).
Exists so code that needs to treat geometries nested at different depths
of the property graph uniformly (a gml:id resolver, a recursive
visitor) can do so without cloning — property structs like
MultiSurfaceProperty or ShellProperty store their concrete leaf type
directly rather than the AbstractGeometryKind union, so a plain
&'a AbstractGeometryKind can’t represent every node in the tree.
From<&Leaf> and TryFrom conversions are generated across the whole
inheritance chain by the [impl_from_for_abstract_geometry_kind_ref!],
[impl_try_from_for_abstract_geometry_kind_ref!] and
[impl_try_from_abstract_geometry_kind_ref_for_enum!] macro families,
invoked once per concrete type at its deepest level.
Variants§
AbstractGeometricAggregateKind(AbstractGeometricAggregateKindRef<'a>)
AbstractGeometricPrimitiveKind(AbstractGeometricPrimitiveKindRef<'a>)
Implementations§
Source§impl<'a> AbstractGeometryKindRef<'a>
impl<'a> AbstractGeometryKindRef<'a>
Sourcepub fn to_owned(&self) -> AbstractGeometryKind
pub fn to_owned(&self) -> AbstractGeometryKind
Clones the referenced geometry — recursively, all the way down to its
leaves — into an owned AbstractGeometryKind.
This is an O(n) deep clone of the whole subtree, unlike cloning the
Ref itself (which is Copy and just duplicates a pointer). Reach
for this only when the result genuinely needs to outlive the borrowed
tree self points into.
Trait Implementations§
Source§impl<'a> AsAbstractGeometry for AbstractGeometryKindRef<'a>
impl<'a> AsAbstractGeometry for AbstractGeometryKindRef<'a>
Source§fn abstract_geometry(&self) -> &AbstractGeometry
fn abstract_geometry(&self) -> &AbstractGeometry
AbstractGeometry base data.fn srs_name(&self) -> Option<&String>
fn srs_dimension(&self) -> Option<u32>
Source§impl AsAbstractGml for AbstractGeometryKindRef<'_>
impl AsAbstractGml for AbstractGeometryKindRef<'_>
Source§fn abstract_gml(&self) -> &AbstractGml
fn abstract_gml(&self) -> &AbstractGml
AbstractGml base data.Source§impl AsAbstractObject for AbstractGeometryKindRef<'_>
impl AsAbstractObject for AbstractGeometryKindRef<'_>
fn abstract_object(&self) -> &AbstractObject
Source§impl<'a> Clone for AbstractGeometryKindRef<'a>
impl<'a> Clone for AbstractGeometryKindRef<'a>
Source§fn clone(&self) -> AbstractGeometryKindRef<'a>
fn clone(&self) -> AbstractGeometryKindRef<'a>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl<'a> Copy for AbstractGeometryKindRef<'a>
Source§impl<'a> Debug for AbstractGeometryKindRef<'a>
impl<'a> Debug for AbstractGeometryKindRef<'a>
Source§impl<'a> From<&'a AbstractCurveKind> for AbstractGeometryKindRef<'a>
impl<'a> From<&'a AbstractCurveKind> for AbstractGeometryKindRef<'a>
Source§fn from(x: &'a AbstractCurveKind) -> Self
fn from(x: &'a AbstractCurveKind) -> Self
Source§impl<'a> From<&'a AbstractGeometricAggregateKind> for AbstractGeometryKindRef<'a>
impl<'a> From<&'a AbstractGeometricAggregateKind> for AbstractGeometryKindRef<'a>
Source§fn from(x: &'a AbstractGeometricAggregateKind) -> Self
fn from(x: &'a AbstractGeometricAggregateKind) -> Self
Source§impl<'a> From<&'a AbstractGeometricPrimitiveKind> for AbstractGeometryKindRef<'a>
impl<'a> From<&'a AbstractGeometricPrimitiveKind> for AbstractGeometryKindRef<'a>
Source§fn from(x: &'a AbstractGeometricPrimitiveKind) -> Self
fn from(x: &'a AbstractGeometricPrimitiveKind) -> Self
Source§impl<'a> From<&'a AbstractGeometryKind> for AbstractGeometryKindRef<'a>
impl<'a> From<&'a AbstractGeometryKind> for AbstractGeometryKindRef<'a>
Source§fn from(x: &'a AbstractGeometryKind) -> Self
fn from(x: &'a AbstractGeometryKind) -> Self
Source§impl<'a> From<&'a AbstractRingKind> for AbstractGeometryKindRef<'a>
impl<'a> From<&'a AbstractRingKind> for AbstractGeometryKindRef<'a>
Source§fn from(x: &'a AbstractRingKind) -> Self
fn from(x: &'a AbstractRingKind) -> Self
Source§impl<'a> From<&'a AbstractSolidKind> for AbstractGeometryKindRef<'a>
impl<'a> From<&'a AbstractSolidKind> for AbstractGeometryKindRef<'a>
Source§fn from(x: &'a AbstractSolidKind) -> Self
fn from(x: &'a AbstractSolidKind) -> Self
Source§impl<'a> From<&'a AbstractSurfaceKind> for AbstractGeometryKindRef<'a>
impl<'a> From<&'a AbstractSurfaceKind> for AbstractGeometryKindRef<'a>
Source§fn from(x: &'a AbstractSurfaceKind) -> Self
fn from(x: &'a AbstractSurfaceKind) -> Self
Source§impl<'a> From<&'a CompositeSurface> for AbstractGeometryKindRef<'a>
impl<'a> From<&'a CompositeSurface> for AbstractGeometryKindRef<'a>
Source§fn from(x: &'a CompositeSurface) -> Self
fn from(x: &'a CompositeSurface) -> Self
Source§impl<'a> From<&'a LineString> for AbstractGeometryKindRef<'a>
impl<'a> From<&'a LineString> for AbstractGeometryKindRef<'a>
Source§fn from(x: &'a LineString) -> Self
fn from(x: &'a LineString) -> Self
Source§impl<'a> From<&'a LinearRing> for AbstractGeometryKindRef<'a>
impl<'a> From<&'a LinearRing> for AbstractGeometryKindRef<'a>
Source§fn from(x: &'a LinearRing) -> Self
fn from(x: &'a LinearRing) -> Self
Source§impl<'a> From<&'a MultiCurve> for AbstractGeometryKindRef<'a>
impl<'a> From<&'a MultiCurve> for AbstractGeometryKindRef<'a>
Source§fn from(x: &'a MultiCurve) -> Self
fn from(x: &'a MultiCurve) -> Self
Source§impl<'a> From<&'a MultiGeometry> for AbstractGeometryKindRef<'a>
impl<'a> From<&'a MultiGeometry> for AbstractGeometryKindRef<'a>
Source§fn from(x: &'a MultiGeometry) -> Self
fn from(x: &'a MultiGeometry) -> Self
Source§impl<'a> From<&'a MultiPoint> for AbstractGeometryKindRef<'a>
impl<'a> From<&'a MultiPoint> for AbstractGeometryKindRef<'a>
Source§fn from(x: &'a MultiPoint) -> Self
fn from(x: &'a MultiPoint) -> Self
Source§impl<'a> From<&'a MultiSurface> for AbstractGeometryKindRef<'a>
impl<'a> From<&'a MultiSurface> for AbstractGeometryKindRef<'a>
Source§fn from(x: &'a MultiSurface) -> Self
fn from(x: &'a MultiSurface) -> Self
Source§impl<'a> From<&'a Point> for AbstractGeometryKindRef<'a>
impl<'a> From<&'a Point> for AbstractGeometryKindRef<'a>
Source§impl<'a> From<&'a Polygon> for AbstractGeometryKindRef<'a>
impl<'a> From<&'a Polygon> for AbstractGeometryKindRef<'a>
Source§impl<'a> From<&'a Shell> for AbstractGeometryKindRef<'a>
impl<'a> From<&'a Shell> for AbstractGeometryKindRef<'a>
Source§impl<'a> From<&'a Solid> for AbstractGeometryKindRef<'a>
impl<'a> From<&'a Solid> for AbstractGeometryKindRef<'a>
Source§impl<'a> From<&'a Surface> for AbstractGeometryKindRef<'a>
impl<'a> From<&'a Surface> for AbstractGeometryKindRef<'a>
Source§impl<'a> From<&'a SurfaceKind> for AbstractGeometryKindRef<'a>
impl<'a> From<&'a SurfaceKind> for AbstractGeometryKindRef<'a>
Source§fn from(x: &'a SurfaceKind) -> Self
fn from(x: &'a SurfaceKind) -> Self
Source§impl<'a> From<&'a TriangulatedSurface> for AbstractGeometryKindRef<'a>
impl<'a> From<&'a TriangulatedSurface> for AbstractGeometryKindRef<'a>
Source§fn from(x: &'a TriangulatedSurface) -> Self
fn from(x: &'a TriangulatedSurface) -> Self
Source§impl<'a> HasGeometryType for AbstractGeometryKindRef<'a>
impl<'a> HasGeometryType for AbstractGeometryKindRef<'a>
fn geometry_type(&self) -> GeometryType
Source§impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for &'a MultiCurve
impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for &'a MultiCurve
Source§impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for &'a MultiGeometry
impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for &'a MultiGeometry
Source§impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for &'a MultiPoint
impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for &'a MultiPoint
Source§impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for &'a MultiSurface
impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for &'a MultiSurface
Source§impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for &'a LineString
impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for &'a LineString
Source§impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for AbstractRingKindRef<'a>
impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for AbstractRingKindRef<'a>
Source§impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for &'a Point
impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for &'a Point
Source§impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for AbstractCurveKindRef<'a>
impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for AbstractCurveKindRef<'a>
Source§impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for AbstractSurfaceKindRef<'a>
impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for AbstractSurfaceKindRef<'a>
Source§impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for AbstractSolidKindRef<'a>
impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for AbstractSolidKindRef<'a>
Source§impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for &'a LinearRing
impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for &'a LinearRing
Source§impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for &'a Solid
impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for &'a Solid
Source§impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for &'a CompositeSurface
impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for &'a CompositeSurface
Source§impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for &'a Polygon
impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for &'a Polygon
Source§impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for &'a Shell
impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for &'a Shell
Source§impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for &'a Surface
impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for &'a Surface
Source§impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for SurfaceKindRef<'a>
impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for SurfaceKindRef<'a>
Source§impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for &'a TriangulatedSurface
impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for &'a TriangulatedSurface
Source§impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for AbstractGeometricAggregateKindRef<'a>
impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for AbstractGeometricAggregateKindRef<'a>
Source§impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for AbstractGeometricPrimitiveKindRef<'a>
impl<'a> TryFrom<AbstractGeometryKindRef<'a>> for AbstractGeometricPrimitiveKindRef<'a>
Auto Trait Implementations§
impl<'a> Freeze for AbstractGeometryKindRef<'a>
impl<'a> RefUnwindSafe for AbstractGeometryKindRef<'a>
impl<'a> Send for AbstractGeometryKindRef<'a>
impl<'a> Sync for AbstractGeometryKindRef<'a>
impl<'a> Unpin for AbstractGeometryKindRef<'a>
impl<'a> UnsafeUnpin for AbstractGeometryKindRef<'a>
impl<'a> UnwindSafe for AbstractGeometryKindRef<'a>
Blanket Implementations§
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,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for 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>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§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).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§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).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.