Skip to main content

SemanticIndexCache

Struct SemanticIndexCache 

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

Per-slice index cache keyed by (dim_range.start, dim_range.end).

Implementations§

Source§

impl SemanticIndexCache

Source

pub fn new() -> Self

Create an empty cache at epoch 0.

Source

pub fn bump(&self)

Record a mutation that may change semantic query results. Callers must apply the mutation before bumping.

Source

pub fn epoch(&self) -> u64

Current epoch (test/diagnostic visibility).

Source

pub fn get_or_build<F>( &self, dim_range: &Range<usize>, snapshot: F, ) -> Arc<SliceIndex>
where F: FnOnce() -> Vec<(String, Vec<FixedPoint>)>,

Get the cached tree for dim_range, or build one via snapshot (a coherent read of all nodes’ decoded slice coordinates) and cache it.

snapshot runs without any cache lock held, so concurrent queries on other slices are never blocked by a build.

Source

pub fn cached_slice_count(&self) -> usize

Number of currently cached slices (test visibility).

Trait Implementations§

Source§

impl Default for SemanticIndexCache

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

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

Source§

type Output = T

Should always be Self
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.