Struct DirectorySubspace

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

A DirectorySubspace represents the contents of a directory, but it also remembers the path with which it was opened and offers convenience methods to operate on the directory at that path. An instance of DirectorySubspace can be used for all the usual subspace operations. It can also be used to operate on the directory with which it was opened.

Implementations§

Source§

impl DirectorySubspace

Source

pub fn new( path: &[String], prefix: Vec<u8>, directory_layer: &DirectoryLayer, layer: Vec<u8>, ) -> Self

Source§

impl DirectorySubspace

Source

pub fn subspace<T: TuplePack>(&self, t: &T) -> Subspace

Source

pub fn bytes(&self) -> &[u8]

Source

pub fn pack<T: TuplePack>(&self, t: &T) -> Vec<u8>

Source

pub fn unpack<'de, T: TupleUnpack<'de>>(&self, key: &'de [u8]) -> PackResult<T>

Source

pub fn range(&self) -> (Vec<u8>, Vec<u8>)

Source

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

Source

pub fn set_path(&mut self, path: Vec<String>)

Source

pub fn get_layer(&self) -> &[u8]

Source

pub fn is_start_of(&self, key: &[u8]) -> bool

Trait Implementations§

Source§

impl Clone for DirectorySubspace

Source§

fn clone(&self) -> DirectorySubspace

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 DirectorySubspace

Source§

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

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

impl Directory for DirectorySubspace

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

Moves the subdirectory of this Directory located at oldpath to newpath.
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<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