Skip to main content

StoreRegistry

Struct StoreRegistry 

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

StoreRegistry

StoreRegistry owns the generated mapping from schema Store paths to their row, index, and schema store handles. It validates registration invariants once at generated wiring time and then serves cheap immutable lookups during runtime operations.

Implementations§

Source§

impl StoreRegistry

Source

pub fn new() -> Self

Create an empty store registry.

Source

pub fn iter(&self) -> impl Iterator<Item = (&'static str, StoreHandle)>

Iterate registered stores.

Iteration order follows registration order. Semantic result ordering must still not depend on this iteration order; callers that need deterministic ordering must sort by store path.

Source

pub fn register_store( &mut self, name: &'static str, data: &'static LocalKey<RefCell<DataStore>>, index: &'static LocalKey<RefCell<IndexStore>>, schema: &'static LocalKey<RefCell<SchemaStore>>, allocations: StoreAllocationIdentities, capabilities: StoreRuntimeStorageCapabilities, ) -> Result<(), InternalError>

Register a Store path to its row/index/schema store triplet with an explicit allocation identity decision.

Generated stable-store wiring supplies stable allocation identities. Tests and future non-stable stores must pass StoreAllocationIdentities::absent explicitly when allocation identities are intentionally unavailable.

Source

pub fn register_journaled_store( &mut self, name: &'static str, data: &'static LocalKey<RefCell<DataStore>>, index: &'static LocalKey<RefCell<IndexStore>>, schema: &'static LocalKey<RefCell<SchemaStore>>, journal: &'static LocalKey<RefCell<JournalTailStore>>, allocations: StoreAllocationIdentities, capabilities: StoreRuntimeStorageCapabilities, ) -> Result<(), InternalError>

Register one journaled store with its journal-tail storage handle.

Source

pub fn try_get_store(&self, path: &str) -> Result<StoreHandle, InternalError>

Look up a store handle by path.

Trait Implementations§

Source§

impl Default for StoreRegistry

Source§

fn default() -> StoreRegistry

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

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.
Source§

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

Source§

fn vzip(self) -> V