Trait Directory

Source
pub trait Directory {
    // Required methods
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
    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;
}
Expand description

Directory represents a subspace of keys in a FoundationDB database, identified by a hierarchical path.

Required Methods§

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

§Warning

If you need to create several paths with the same prefix, you must use several transactions(See this link for context)

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

§Warning

If you need to create several paths with the same prefix, you must use several transactions(See this link for context)

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.

Implementors§