Skip to main content

ExprTreeStores

Struct ExprTreeStores 

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

Typed source/control/derived stores plus explicit Table/Dir mount descriptors.

Implementations§

Source§

impl ExprTreeStores

Source

pub fn new(root_dir: DirId) -> Result<Self, StoreError>

Compose a tree over an existing root directory.

Source

pub fn reopen( root_dir: DirId, source: BTreeMap<CellId, SourceEntry>, control: BTreeMap<String, ControlEntry>, derived: BTreeMap<CellId, DerivedEntry>, mounts: Vec<MountDescriptor>, ) -> Result<Self, StoreError>

Reopen persisted stores, validating the mount table before accepting it.

Source

pub fn root_dir(&self) -> &DirId

Root directory required by the mounted namespace owner.

Source

pub fn source_entry(&self, id: &CellId) -> Option<&SourceEntry>

Authored source entries only.

Source

pub fn control_entry(&self, key: &str) -> Option<&ControlEntry>

Operational control entries only.

Source

pub fn derived_entry(&self, id: &CellId) -> Option<&DerivedEntry>

Rebuildable derived entries only.

Source

pub fn mounts(&self) -> impl Iterator<Item = &MountDescriptor>

All current explicit mounts.

Source

pub fn return_value_without_mounting(&self, _resource: MountResource) -> usize

Return a Table or Dir value to the caller without mutating the namespace.

Source

pub fn mount(&mut self, descriptor: MountDescriptor) -> Result<(), StoreError>

Explicitly mount a Table or Dir descriptor.

Source

pub fn unmount( &mut self, path: &TablePath, ) -> Result<MountDescriptor, StoreError>

Removes and returns one explicit mount descriptor.

Source

pub fn observe_mount_epoch( &mut self, path: &TablePath, epoch: MountEpoch, ) -> Result<(), StoreError>

Record a mounted backend epoch in the control store.

Source

pub fn prepare_source_control_commit( source_writes: BTreeMap<CellId, SourceEntry>, control_writes: BTreeMap<String, ControlEntry>, ) -> PendingCommit

Prepare a recoverable source/control commit.

The transaction boundary is exactly source plus control. Recovery replays the same pending record until both sides are durable. Derived entries are rebuildable and are not part of this boundary.

Source

pub fn commit_source(&mut self, pending: &mut PendingCommit)

Persist the source side of a prepared commit.

Source

pub fn commit_control(&mut self, pending: &mut PendingCommit)

Persist the control side of a source-committed commit.

Source

pub fn recover_commit(&mut self, pending: &mut PendingCommit)

Finish or replay a partially persisted source/control commit.

Source

pub fn put_derived(&mut self, id: CellId, entry: DerivedEntry)

Store a rebuildable derived value outside source entries.

Source

pub fn put_control(&mut self, key: impl Into<String>, entry: ControlEntry)

Store an operational control value outside source entries.

Source

pub fn remove_source(&mut self, id: &CellId) -> Option<SourceEntry>

Removes authored source for a deleted cell.

Trait Implementations§

Source§

impl Clone for ExprTreeStores

Source§

fn clone(&self) -> ExprTreeStores

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for ExprTreeStores

Source§

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

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

impl Eq for ExprTreeStores

Source§

impl PartialEq for ExprTreeStores

Source§

fn eq(&self, other: &ExprTreeStores) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for ExprTreeStores

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