DenseEntityIndex

Struct DenseEntityIndex 

Source
pub struct DenseEntityIndex { /* private fields */ }
Expand description

Immutable direct-address index for sources whose offsets fit u32. Construction refuses sparse ids when its arrays would exceed the three compact input columns. Presence is separate from the span, so id zero and an empty span at offset zero remain valid entries.

Implementations§

Source§

impl DenseEntityIndex

Source

pub fn try_from_columns( ids: &[u32], starts: &[u32], lengths: &[u32], ) -> Option<Self>

Build from strictly ascending, unique ids and parallel span columns. Returns None for mismatched/unsorted columns, empty input, or a sparse id range. The allocation bound is checked before allocating any array; a lone u32::MAX id cannot request a multi-gigabyte allocation.

Source

pub fn lookup(&self, id: u32) -> Option<(usize, usize)>

Return the authored (start, end) span, or None for an absent id.

Auto Trait Implementations§

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> 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, 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.