pub struct Namespace { /* private fields */ }Expand description
Durable finite namespace records for one expression tree.
Implementations§
Source§impl Namespace
impl Namespace
Sourcepub fn new(tree_id: TreeId, root_dir: DirId) -> Self
pub fn new(tree_id: TreeId, root_dir: DirId) -> Self
Create a namespace with one root directory record.
Sourcepub fn acquire_writer(&mut self) -> Result<WriterLane, NamespaceError>
pub fn acquire_writer(&mut self) -> Result<WriterLane, NamespaceError>
Acquire the single serialized writer lane.
Sourcepub fn release_writer(&mut self, lane: WriterLane) -> Result<(), NamespaceError>
pub fn release_writer(&mut self, lane: WriterLane) -> Result<(), NamespaceError>
Release a previously acquired writer lane.
Sourcepub fn reservation_count(&self) -> usize
pub fn reservation_count(&self) -> usize
Number of durable name reservations.
Sourcepub fn counter_count(&self) -> usize
pub fn counter_count(&self) -> usize
Number of generated-name counters.
Sourcepub fn dir(&self, id: &DirId) -> Option<&DirRecord>
pub fn dir(&self, id: &DirId) -> Option<&DirRecord>
Read a directory by id without allocating namespace state.
Sourcepub fn cell(&self, id: &CellId) -> Option<&CellRecord>
pub fn cell(&self, id: &CellId) -> Option<&CellRecord>
Read a cell by id without allocating namespace state.
Sourcepub fn child(
&self,
parent: &DirId,
name: &NamespaceName,
) -> Option<NamespaceEntry>
pub fn child( &self, parent: &DirId, name: &NamespaceName, ) -> Option<NamespaceEntry>
Read a named child without allocating namespace state.
Sourcepub fn children(
&self,
parent: &DirId,
) -> Result<Vec<(NamespaceName, NamespaceEntry)>, NamespaceError>
pub fn children( &self, parent: &DirId, ) -> Result<Vec<(NamespaceName, NamespaceEntry)>, NamespaceError>
Lists a directory’s named children in deterministic name order.
Sourcepub fn reserve_name(
&mut self,
lane: WriterLane,
parent: &DirId,
name: NamespaceName,
) -> Result<NamespaceName, NamespaceError>
pub fn reserve_name( &mut self, lane: WriterLane, parent: &DirId, name: NamespaceName, ) -> Result<NamespaceName, NamespaceError>
Reserve an explicit child name before creating the durable node.
Sourcepub fn reserve_generated_name(
&mut self,
lane: WriterLane,
parent: &DirId,
kind: GeneratedNameKind,
) -> Result<NamespaceName, NamespaceError>
pub fn reserve_generated_name( &mut self, lane: WriterLane, parent: &DirId, kind: GeneratedNameKind, ) -> Result<NamespaceName, NamespaceError>
Reserve a generated child name before creating the durable node.
Sourcepub fn create_cell(
&mut self,
lane: WriterLane,
request: CellCreate,
) -> Result<(), NamespaceError>
pub fn create_cell( &mut self, lane: WriterLane, request: CellCreate, ) -> Result<(), NamespaceError>
Create a durable cell from a prior reservation.
Sourcepub fn create_dir(
&mut self,
lane: WriterLane,
id: DirId,
parent: &DirId,
name: NamespaceName,
policy_patch: CodecPolicyPatch,
) -> Result<(), NamespaceError>
pub fn create_dir( &mut self, lane: WriterLane, id: DirId, parent: &DirId, name: NamespaceName, policy_patch: CodecPolicyPatch, ) -> Result<(), NamespaceError>
Create a durable child directory from a prior reservation.
Sourcepub fn move_cell(
&mut self,
lane: WriterLane,
id: &CellId,
new_parent: &DirId,
new_name: NamespaceName,
) -> Result<(), NamespaceError>
pub fn move_cell( &mut self, lane: WriterLane, id: &CellId, new_parent: &DirId, new_name: NamespaceName, ) -> Result<(), NamespaceError>
Rename or move a cell while preserving immutable cell identity.
Sourcepub fn move_dir(
&mut self,
lane: WriterLane,
id: &DirId,
new_parent: &DirId,
new_name: NamespaceName,
) -> Result<(), NamespaceError>
pub fn move_dir( &mut self, lane: WriterLane, id: &DirId, new_parent: &DirId, new_name: NamespaceName, ) -> Result<(), NamespaceError>
Rename or move a directory while preserving immutable directory identity.
Sourcepub fn set_cell_policy(
&mut self,
lane: WriterLane,
id: &CellId,
policy_patch: CodecPolicyPatch,
) -> Result<(), NamespaceError>
pub fn set_cell_policy( &mut self, lane: WriterLane, id: &CellId, policy_patch: CodecPolicyPatch, ) -> Result<(), NamespaceError>
Replaces a cell’s local codec-policy patch.
Sourcepub fn set_dir_policy(
&mut self,
lane: WriterLane,
id: &DirId,
policy_patch: CodecPolicyPatch,
) -> Result<(), NamespaceError>
pub fn set_dir_policy( &mut self, lane: WriterLane, id: &DirId, policy_patch: CodecPolicyPatch, ) -> Result<(), NamespaceError>
Replaces a directory’s local codec-policy patch.
Sourcepub fn delete_cell(
&mut self,
lane: WriterLane,
id: &CellId,
) -> Result<CellRecord, NamespaceError>
pub fn delete_cell( &mut self, lane: WriterLane, id: &CellId, ) -> Result<CellRecord, NamespaceError>
Deletes one cell while preserving its generated-name reservation history.
Sourcepub fn delete_dir(
&mut self,
lane: WriterLane,
id: &DirId,
) -> Result<DirRecord, NamespaceError>
pub fn delete_dir( &mut self, lane: WriterLane, id: &DirId, ) -> Result<DirRecord, NamespaceError>
Deletes one empty non-root directory.
Sourcepub fn effective_dir_policy(
&self,
id: &DirId,
) -> Result<EffectiveCodecPolicy, NamespaceError>
pub fn effective_dir_policy( &self, id: &DirId, ) -> Result<EffectiveCodecPolicy, NamespaceError>
Resolve the inherited policy for a directory.
Sourcepub fn effective_cell_policy(
&self,
id: &CellId,
) -> Result<EffectiveCodecPolicy, NamespaceError>
pub fn effective_cell_policy( &self, id: &CellId, ) -> Result<EffectiveCodecPolicy, NamespaceError>
Resolve the inherited policy for a cell, applying the cell patch last.
Source§impl Namespace
impl Namespace
Sourcepub fn codec_patch(codec: impl Into<String>) -> CodecPolicyPatch
pub fn codec_patch(codec: impl Into<String>) -> CodecPolicyPatch
Convenience policy patch for tests and callers that need only a codec.