Skip to main content

Layer01

Struct Layer01 

Source
pub struct Layer01<'a, S: DecodeState = Lazy> {
    pub name: &'a str,
    pub extent: u32,
    /* private fields */
}
Expand description

Representation of an MLT feature table layer with tag 0x01 during decoding.

The type parameter S controls how columns are stored:

  • Layer01<'a> / Layer01<'a, Lazy> (default) — columns are LazyParsed enums that may be raw or decoded. Use Layer01::decode_all to transition to Layer01<Parsed>.

  • Layer01<'a, Parsed> — all columns are fully decoded. The fields id, geometry, and properties hold the parsed types directly, allowing infallible readonly access. There is a ParsedLayer01<'a> type alias for this.

Fields§

§name: &'a str§extent: u32

Implementations§

Source§

impl<'a> Layer01<'a, Lazy>

Source

pub fn iterate_prop_names(&self) -> impl Iterator<Item = PropName<'a>> + '_

Iterate over the property column names of this layer, in order.

Regular columns yield one PropName; SharedDict columns yield one name per sub-item. Names are available even before any column data has been decoded.

Pair with FeatureRef::iter_all_properties to associate per-feature values with their column names.

Source§

impl<'a> Layer01<'a, Parsed>

Source

pub fn iter_features(&self) -> Layer01FeatureIter<'_, 'a>

Iterate over all features in this fully-decoded layer via a LendingIterator.

Yields one MltResult<FeatureRef> per feature. Geometry decoding can fail, hence the Result wrapper.

let mut iter = parsed.iter_features();
while let Some(feat) = iter.next() {
    let feat = feat?;
    for col in feat.iter_properties() {
       // or use iter_all_properties() to include Nones
    }
}

All inner iterators — FeatureRef::iter_properties, FeatureRef::iter_all_properties, and the name iterators — implement the standard std::iter::Iterator trait and compose normally.

Source

pub fn iterate_prop_names(&self) -> impl Iterator<Item = PropName<'a>> + '_

Iterate over the property column names of this layer, in order. See Layer01::iterate_prop_names for details.

Source§

impl<'a> Layer01<'a, Lazy>

Source

pub fn decode_all(self, dec: &mut Decoder) -> MltResult<ParsedLayer01<'a>>

Decode all columns and transition to Layer01<Parsed>.

Consumes self (a Layer01<Lazy>) and returns a Layer01<Parsed> where every column field holds its parsed value directly, enabling infallible readonly access.

Source§

impl Layer01<'_, Parsed>

Source

pub fn geometry_values(&self) -> &GeometryValues

Returns the decoded geometry buffer for this layer.

Provides access to the columnar geometry arrays (vertex buffer, offset arrays, geometry types) for advanced use cases such as building typed arrays for WebAssembly or performing spatial indexing. For iterating feature geometries as geo_types values, prefer iter_features instead.

Source

pub fn into_tile(self, dec: &mut Decoder) -> MltResult<TileLayer>

Decode and convert into a row-oriented TileLayer, charging every heap allocation against dec.

Source

pub fn feature_count(&self) -> usize

Source§

impl Layer01<'_>

Source

pub fn into_tile(self, dec: &mut Decoder) -> MltResult<TileLayer>

Decode and convert into a row-oriented TileLayer

Trait Implementations§

Source§

impl<'a, S: DecodeState> Analyze for Layer01<'a, S>
where Option<<S as DecodeState>::LazyOrParsed<RawId<'a>, ParsedId<'a>>>: Analyze, <S as DecodeState>::LazyOrParsed<RawGeometry<'a>, GeometryValues>: Analyze, Vec<<S as DecodeState>::LazyOrParsed<RawProperty<'a>, ParsedProperty<'a>>>: Analyze,

Source§

fn collect_statistic(&self, stat: StatType) -> usize

Source§

fn for_each_stream(&self, cb: &mut dyn FnMut(StreamMeta))

Call cb with the StreamMeta of every stream contained in self. Default implementation is a no-op (types that hold no streams).
Source§

impl<'a, S> Clone for Layer01<'a, S>
where S: DecodeState, Option<<S as DecodeState>::LazyOrParsed<RawId<'a>, ParsedId<'a>>>: Clone, <S as DecodeState>::LazyOrParsed<RawGeometry<'a>, GeometryValues>: Clone, Vec<<S as DecodeState>::LazyOrParsed<RawProperty<'a>, ParsedProperty<'a>>>: Clone,

Source§

fn clone(&self) -> Self

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, S> Debug for Layer01<'a, S>
where S: DecodeState, Option<<S as DecodeState>::LazyOrParsed<RawId<'a>, ParsedId<'a>>>: Debug, <S as DecodeState>::LazyOrParsed<RawGeometry<'a>, GeometryValues>: Debug, Vec<<S as DecodeState>::LazyOrParsed<RawProperty<'a>, ParsedProperty<'a>>>: Debug,

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a, S> Freeze for Layer01<'a, S>
where <S as DecodeState>::LazyOrParsed<RawGeometry<'a>, GeometryValues>: Freeze, <S as DecodeState>::LazyOrParsed<RawId<'a>, ParsedId<'a>>: Freeze,

§

impl<'a, S> RefUnwindSafe for Layer01<'a, S>
where <S as DecodeState>::LazyOrParsed<RawGeometry<'a>, GeometryValues>: RefUnwindSafe, <S as DecodeState>::LazyOrParsed<RawId<'a>, ParsedId<'a>>: RefUnwindSafe, <S as DecodeState>::LazyOrParsed<RawProperty<'a>, ParsedProperty<'a>>: RefUnwindSafe,

§

impl<'a, S> Send for Layer01<'a, S>
where <S as DecodeState>::LazyOrParsed<RawGeometry<'a>, GeometryValues>: Send, <S as DecodeState>::LazyOrParsed<RawId<'a>, ParsedId<'a>>: Send, <S as DecodeState>::LazyOrParsed<RawProperty<'a>, ParsedProperty<'a>>: Send,

§

impl<'a, S> Sync for Layer01<'a, S>
where <S as DecodeState>::LazyOrParsed<RawGeometry<'a>, GeometryValues>: Sync, <S as DecodeState>::LazyOrParsed<RawId<'a>, ParsedId<'a>>: Sync, <S as DecodeState>::LazyOrParsed<RawProperty<'a>, ParsedProperty<'a>>: Sync,

§

impl<'a, S> Unpin for Layer01<'a, S>
where <S as DecodeState>::LazyOrParsed<RawGeometry<'a>, GeometryValues>: Unpin, <S as DecodeState>::LazyOrParsed<RawId<'a>, ParsedId<'a>>: Unpin, <S as DecodeState>::LazyOrParsed<RawProperty<'a>, ParsedProperty<'a>>: Unpin,

§

impl<'a, S> UnsafeUnpin for Layer01<'a, S>
where <S as DecodeState>::LazyOrParsed<RawGeometry<'a>, GeometryValues>: UnsafeUnpin, <S as DecodeState>::LazyOrParsed<RawId<'a>, ParsedId<'a>>: UnsafeUnpin,

§

impl<'a, S> UnwindSafe for Layer01<'a, S>
where <S as DecodeState>::LazyOrParsed<RawGeometry<'a>, GeometryValues>: UnwindSafe, <S as DecodeState>::LazyOrParsed<RawId<'a>, ParsedId<'a>>: UnwindSafe, <S as DecodeState>::LazyOrParsed<RawProperty<'a>, ParsedProperty<'a>>: UnwindSafe,

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> Conv for T

Source§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
Source§

impl<T> FmtForward for T

Source§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
Source§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
Source§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
Source§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
Source§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
Source§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
Source§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
Source§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
Source§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. 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> Pipe for T
where T: ?Sized,

Source§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
Source§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
Source§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
Source§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
Source§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
Source§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
Source§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
Source§

impl<T> Tap for T

Source§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
Source§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
Source§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
Source§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
Source§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
Source§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
Source§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
Source§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
Source§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
Source§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
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> TryConv for T

Source§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. 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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<G1, G2> Within<G2> for G1
where G2: Contains<G1>,

Source§

fn is_within(&self, b: &G2) -> bool