Struct DirectoryLayer

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

A DirectoryLayer defines a new root directory. The node subspace and content subspace control where the directory metadata and contents, respectively, are stored. The default root directory has a node subspace with raw prefix \xFE and a content subspace with no prefix.

Implementations§

Source§

impl DirectoryLayer

Source

pub fn new( node_subspace: Subspace, content_subspace: Subspace, allow_manual_prefixes: bool, ) -> Self

Source

pub fn get_path(&self) -> &[String]

Trait Implementations§

Source§

impl Clone for DirectoryLayer

Source§

fn clone(&self) -> DirectoryLayer

Returns a copy of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for DirectoryLayer

Source§

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

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

impl Default for DirectoryLayer

Source§

fn default() -> Self

The default root directory stores directory layer metadata in keys beginning with 0xFE, and allocates newly created directories in (unused) prefixes starting with 0x00 through 0xFD. This is appropriate for otherwise empty databases, but may conflict with other formal or informal partitionings of keyspace. If you already have other content in your database, you may wish to use NewDirectoryLayer to construct a non-standard root directory to control where metadata and keys are stored.

Source§

impl Deref for DirectoryLayer

Source§

type Target = DirectoryLayerInner

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl Directory for DirectoryLayer

Source§

fn move_to<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, trx: &'life1 Transaction, old_path: &'life2 [String], new_path: &'life3 [String], ) -> Pin<Box<dyn Future<Output = Result<DirectoryOutput, DirectoryError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,

move_to the directory from old_path to new_path(both relative to this Directory), and returns the directory (at its new location) and its contents as a Subspace. Move will return an error if a directory does not exist at oldPath, a directory already exists at newPath, or the parent directory of newPath does not exist.

Source§

fn create_or_open<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>( &'life0 self, txn: &'life1 Transaction, path: &'life2 [String], prefix: Option<&'life3 [u8]>, layer: Option<&'life4 [u8]>, ) -> Pin<Box<dyn Future<Output = Result<DirectoryOutput, DirectoryError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait, 'life4: 'async_trait,

Creates or opens the subdirectory of this Directory located at path (creating parent directories, if necessary). Read more
Source§

fn create<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>( &'life0 self, txn: &'life1 Transaction, path: &'life2 [String], prefix: Option<&'life3 [u8]>, layer: Option<&'life4 [u8]>, ) -> Pin<Box<dyn Future<Output = Result<DirectoryOutput, DirectoryError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait, 'life4: 'async_trait,

Creates a subdirectory of this Directory located at path (creating parent directories if necessary). Read more
Source§

fn open<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, txn: &'life1 Transaction, path: &'life2 [String], layer: Option<&'life3 [u8]>, ) -> Pin<Box<dyn Future<Output = Result<DirectoryOutput, DirectoryError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,

Opens the subdirectory of this Directory located at path.
Source§

fn exists<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, trx: &'life1 Transaction, path: &'life2 [String], ) -> Pin<Box<dyn Future<Output = Result<bool, DirectoryError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Checks if the subdirectory of this Directory located at path exists.
Source§

fn move_directory<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, _trx: &'life1 Transaction, _new_path: &'life2 [String], ) -> Pin<Box<dyn Future<Output = Result<DirectoryOutput, DirectoryError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Moves this Directory to the specified newAbsolutePath.
Source§

fn remove<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, trx: &'life1 Transaction, path: &'life2 [String], ) -> Pin<Box<dyn Future<Output = Result<bool, DirectoryError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Removes the subdirectory of this Directory located at path and all of its subdirectories, as well as all of their contents.
Source§

fn remove_if_exists<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, trx: &'life1 Transaction, path: &'life2 [String], ) -> Pin<Box<dyn Future<Output = Result<bool, DirectoryError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Removes the subdirectory of this Directory located at path (if the path exists) and all of its subdirectories, as well as all of their contents.
Source§

fn list<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, trx: &'life1 Transaction, path: &'life2 [String], ) -> Pin<Box<dyn Future<Output = Result<Vec<String>, DirectoryError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

List the subdirectories of this directory at a given subpath.

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, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
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.
§

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

§

fn vzip(self) -> V