Struct Wkb

Source
pub struct Wkb<'a>(/* private fields */);
Expand description

Parse a WKB byte slice into a geometry.

An opaque object that implements GeometryTrait. Use methods provided by geo_traits to access the underlying data.

The contained dimension will never be Unknown.

Implementations§

Source§

impl<'a> Wkb<'a>

Source

pub fn try_new(buf: &'a [u8]) -> WkbResult<Self>

Parse a WKB byte slice into a geometry.

§Performance

WKB is not a zero-copy format because coordinates are not 8-byte aligned and because an initial scan needs to take place to know internal buffer offsets.

This function does an initial pass over the WKB buffer to validate the contents and record the byte offsets for relevant coordinate slices but does not copy the underlying data to an alternate representation. This means that coordinates will always be constant-time to access but not zero-copy. This is because the raw WKB buffer is not 8-byte aligned, so when accessing a coordinate the underlying bytes need to be copied into a newly-allocated f64.

Source

pub fn dimension(&self) -> Dimension

Source

pub fn geometry_type(&self) -> GeometryType

Return the GeometryType of this geometry.

Trait Implementations§

Source§

impl<'a> Clone for Wkb<'a>

Source§

fn clone(&self) -> Wkb<'a>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'a> Debug for Wkb<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'a> GeometryTrait for &Wkb<'a>

Source§

type T = f64

The coordinate type of this geometry
Source§

type PointType<'b> = Point<'a> where Self: 'b

The type of each underlying Point, which implements PointTrait
Source§

type LineStringType<'b> = LineString<'a> where Self: 'b

The type of each underlying LineString, which implements LineStringTrait
Source§

type PolygonType<'b> = Polygon<'a> where Self: 'b

The type of each underlying Polygon, which implements PolygonTrait
Source§

type MultiPointType<'b> = MultiPoint<'a> where Self: 'b

The type of each underlying MultiPoint, which implements MultiPointTrait
Source§

type MultiLineStringType<'b> = MultiLineString<'a> where Self: 'b

The type of each underlying MultiLineString, which implements MultiLineStringTrait
Source§

type MultiPolygonType<'b> = MultiPolygon<'a> where Self: 'b

The type of each underlying MultiPolygon, which implements MultiPolygonTrait
Source§

type GeometryCollectionType<'b> = GeometryCollection<'a> where Self: 'b

The type of each underlying GeometryCollection, which implements GeometryCollectionTrait
Source§

type RectType<'b> = UnimplementedRect<f64> where Self: 'b

The type of each underlying Rect, which implements RectTrait
Source§

type TriangleType<'b> = UnimplementedTriangle<f64> where Self: 'b

The type of each underlying Triangle, which implements TriangleTrait
Source§

type LineType<'b> = UnimplementedLine<f64> where Self: 'b

The type of each underlying Line, which implements LineTrait
Source§

fn dim(&self) -> Dimensions

The dimension of this geometry
Source§

fn as_type( &self, ) -> GeometryType<'_, Self::PointType<'_>, Self::LineStringType<'_>, Self::PolygonType<'_>, Self::MultiPointType<'_>, Self::MultiLineStringType<'_>, Self::MultiPolygonType<'_>, Self::GeometryCollectionType<'_>, Self::RectType<'_>, Self::TriangleType<'_>, Self::LineType<'_>>

Cast this geometry to a GeometryType enum, which allows for downcasting to a specific type
Source§

impl<'a> GeometryTrait for Wkb<'a>

Source§

type T = f64

The coordinate type of this geometry
Source§

type PointType<'b> = Point<'a> where Self: 'b

The type of each underlying Point, which implements PointTrait
Source§

type LineStringType<'b> = LineString<'a> where Self: 'b

The type of each underlying LineString, which implements LineStringTrait
Source§

type PolygonType<'b> = Polygon<'a> where Self: 'b

The type of each underlying Polygon, which implements PolygonTrait
Source§

type MultiPointType<'b> = MultiPoint<'a> where Self: 'b

The type of each underlying MultiPoint, which implements MultiPointTrait
Source§

type MultiLineStringType<'b> = MultiLineString<'a> where Self: 'b

The type of each underlying MultiLineString, which implements MultiLineStringTrait
Source§

type MultiPolygonType<'b> = MultiPolygon<'a> where Self: 'b

The type of each underlying MultiPolygon, which implements MultiPolygonTrait
Source§

type GeometryCollectionType<'b> = GeometryCollection<'a> where Self: 'b

The type of each underlying GeometryCollection, which implements GeometryCollectionTrait
Source§

type RectType<'b> = UnimplementedRect<f64> where Self: 'b

The type of each underlying Rect, which implements RectTrait
Source§

type TriangleType<'b> = UnimplementedTriangle<f64> where Self: 'b

The type of each underlying Triangle, which implements TriangleTrait
Source§

type LineType<'b> = UnimplementedLine<f64> where Self: 'b

The type of each underlying Line, which implements LineTrait
Source§

fn dim(&self) -> Dimensions

The dimension of this geometry
Source§

fn as_type( &self, ) -> GeometryType<'_, Self::PointType<'_>, Self::LineStringType<'_>, Self::PolygonType<'_>, Self::MultiPointType<'_>, Self::MultiLineStringType<'_>, Self::MultiPolygonType<'_>, Self::GeometryCollectionType<'_>, Self::RectType<'_>, Self::TriangleType<'_>, Self::LineType<'_>>

Cast this geometry to a GeometryType enum, which allows for downcasting to a specific type

Auto Trait Implementations§

§

impl<'a> Freeze for Wkb<'a>

§

impl<'a> RefUnwindSafe for Wkb<'a>

§

impl<'a> Send for Wkb<'a>

§

impl<'a> Sync for Wkb<'a>

§

impl<'a> Unpin for Wkb<'a>

§

impl<'a> UnwindSafe for Wkb<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, G> ToGeoGeometry<T> for G
where T: CoordNum, G: GeometryTrait<T = T>,

Source§

fn try_to_geometry(&self) -> Option<Geometry<T>>

Convert to a geo_types Geometry. Read more
Source§

fn to_geometry(&self) -> Geometry<T>

Convert to a geo_types Geometry. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.