pub struct DbDir { /* private fields */ }Expand description
A node in a path-addressed, capability-gated directory tree of symbol-keyed values.
This is an in-memory table/directory backend, not an external database
engine: every DbDir is a view onto a shared store (a BTreeMap of values
and a BTreeSet of directory paths behind a Mutex) rooted at a particular
path. As a Table it reads and writes the values at its own path; as a
Dir it creates, opens, and removes child directories, each of which is
another DbDir sharing the same store. Cloning a DbDir shares the
underlying store. Every operation requires the relevant table/db
capability (read, write, mkdir, or rmdir), and child names must be legal
single path segments.
Implementations§
Trait Implementations§
Source§impl Citizen for DbDir
impl Citizen for DbDir
Source§fn citizen_symbol() -> Symbol
fn citizen_symbol() -> Symbol
The citizen’s
namespace/name class symbol.Source§fn citizen_version() -> u32
fn citizen_version() -> u32
The citizen’s encoding version.
Source§fn citizen_arity() -> usize
fn citizen_arity() -> usize
Number of constructor fields (excluding the version argument).
Source§fn citizen_fields() -> &'static [&'static str]
fn citizen_fields() -> &'static [&'static str]
The citizen’s field names, in constructor order.
Source§impl Dir for DbDir
impl Dir for DbDir
Source§fn mkdir(&self, cx: &mut Cx, name: Symbol) -> Result<Value>
fn mkdir(&self, cx: &mut Cx, name: Symbol) -> Result<Value>
Creates a nested subtable under
name, returning it.Source§fn opendir(&self, cx: &mut Cx, name: Symbol) -> Result<Option<Value>>
fn opendir(&self, cx: &mut Cx, name: Symbol) -> Result<Option<Value>>
Opens the subtable at
name, or Ok(None) when absent.Source§impl Object for DbDir
impl Object for DbDir
Source§fn display(&self, _cx: &mut Cx) -> Result<String>
fn display(&self, _cx: &mut Cx) -> Result<String>
Render the object as a human-readable display string.
Source§fn header(&self) -> &ObjectHeader
fn header(&self) -> &ObjectHeader
Identity and trust header for the object; defaults to the shared
anonymous header.
Source§fn op(&self, _key: &OpKey) -> Option<&dyn Op>
fn op(&self, _key: &OpKey) -> Option<&dyn Op>
Resolve the operation registered under
key, if any.Source§impl ObjectCompat for DbDir
impl ObjectCompat for DbDir
Source§fn class(&self, cx: &mut Cx) -> Result<ClassRef>
fn class(&self, cx: &mut Cx) -> Result<ClassRef>
Class object this value belongs to; defaults to nil.
Source§fn as_expr(&self, cx: &mut Cx) -> Result<Expr>
fn as_expr(&self, cx: &mut Cx) -> Result<Expr>
Expression form of the object; defaults to an opaque extension node.
Source§fn as_table_impl(&self) -> Option<&dyn Table>
fn as_table_impl(&self) -> Option<&dyn Table>
Table-implementation view, if the object is a table.
Source§fn as_object_encoder(&self) -> Option<&dyn ObjectEncode>
fn as_object_encoder(&self) -> Option<&dyn ObjectEncode>
Object-encoder view, if the object encodes other objects.
Source§fn as_callable(&self) -> Option<&dyn Callable>
fn as_callable(&self) -> Option<&dyn Callable>
Callable view, if the object can be invoked.
Source§fn as_read_constructor(&self) -> Option<&dyn ReadConstructor>
fn as_read_constructor(&self) -> Option<&dyn ReadConstructor>
Read-constructor view, if the object decodes data forms.
Source§fn as_number_domain(&self) -> Option<&(dyn NumberDomain + 'static)>
fn as_number_domain(&self) -> Option<&(dyn NumberDomain + 'static)>
Number-domain view, if the object is a number domain.
Source§fn as_number_value(&self) -> Option<&dyn NumberValue>
fn as_number_value(&self) -> Option<&dyn NumberValue>
Number-value view, if the object is a domain number.
Source§fn as_eval_fabric(&self) -> Option<&dyn EvalFabric>
fn as_eval_fabric(&self) -> Option<&dyn EvalFabric>
Eval-fabric view, if the object is a distributed eval surface.
Source§fn as_sequence(&self) -> Option<&dyn Sequence>
fn as_sequence(&self) -> Option<&dyn Sequence>
Sequence view, if the object is a sequence.
Source§fn as_list(&self) -> Option<&(dyn ListValue + 'static)>
fn as_list(&self) -> Option<&(dyn ListValue + 'static)>
List view, if the object is a list value.
Source§impl ObjectEncode for DbDir
impl ObjectEncode for DbDir
Source§fn object_encoding(&self, _cx: &mut Cx) -> Result<ObjectEncoding>
fn object_encoding(&self, _cx: &mut Cx) -> Result<ObjectEncoding>
Returns the
ObjectEncoding this object should be rendered as.Source§impl Table for DbDir
impl Table for DbDir
Source§fn backend_symbol(&self) -> Symbol
fn backend_symbol(&self) -> Symbol
Symbol identifying the backend representation.
Source§fn get(&self, cx: &mut Cx, key: Symbol) -> Result<Value>
fn get(&self, cx: &mut Cx, key: Symbol) -> Result<Value>
Looks up
key, returning nil when absent.Source§fn set(&self, cx: &mut Cx, key: Symbol, value: Value) -> Result<()>
fn set(&self, cx: &mut Cx, key: Symbol, value: Value) -> Result<()>
Inserts or replaces the value for
key.Source§fn del(&self, cx: &mut Cx, key: Symbol) -> Result<Value>
fn del(&self, cx: &mut Cx, key: Symbol) -> Result<Value>
Removes
key, returning its prior value or nil.Source§fn entries(&self, cx: &mut Cx) -> Result<Vec<(Symbol, Value)>>
fn entries(&self, cx: &mut Cx) -> Result<Vec<(Symbol, Value)>>
All key/value pairs, in backend order.
Auto Trait Implementations§
impl Freeze for DbDir
impl RefUnwindSafe for DbDir
impl Send for DbDir
impl Sync for DbDir
impl Unpin for DbDir
impl UnsafeUnpin for DbDir
impl UnwindSafe for DbDir
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more