Trait tc_transact::fs::File[][src]

pub trait File<B: BlockData>: Store + Sized + 'static {
    type Block: Block<B, Self>;
    fn block_ids<'life0, 'life1, 'async_trait>(
        &'life0 self,
        txn_id: &'life1 TxnId
    ) -> Pin<Box<dyn Future<Output = TCResult<HashSet<BlockId>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
;
fn unique_id<'life0, 'life1, 'async_trait>(
        &'life0 self,
        txn_id: &'life1 TxnId
    ) -> Pin<Box<dyn Future<Output = TCResult<BlockId>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
;
fn contains_block<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        txn_id: &'life1 TxnId,
        name: &'life2 BlockId
    ) -> Pin<Box<dyn Future<Output = TCResult<bool>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
;
fn copy_from<'life0, 'life1, 'async_trait>(
        &'life0 self,
        other: &'life1 Self,
        txn_id: TxnId
    ) -> Pin<Box<dyn Future<Output = TCResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
;
fn create_block<'life0, 'async_trait>(
        &'life0 self,
        txn_id: TxnId,
        name: BlockId,
        initial_value: B
    ) -> Pin<Box<dyn Future<Output = TCResult<Self::Block>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn delete_block<'life0, 'async_trait>(
        &'life0 self,
        txn_id: TxnId,
        name: BlockId
    ) -> Pin<Box<dyn Future<Output = TCResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn get_block<'life0, 'async_trait>(
        &'life0 self,
        txn_id: TxnId,
        name: BlockId
    ) -> Pin<Box<dyn Future<Output = TCResult<Self::Block>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn read_block<'life0, 'async_trait>(
        &'life0 self,
        txn_id: TxnId,
        name: BlockId
    ) -> Pin<Box<dyn Future<Output = TCResult<<Self::Block as Block<B, Self>>::ReadLock>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn read_block_owned<'async_trait>(
        self,
        txn_id: TxnId,
        name: BlockId
    ) -> Pin<Box<dyn Future<Output = TCResult<<Self::Block as Block<B, Self>>::ReadLock>> + Send + 'async_trait>>
    where
        Self: 'async_trait
;
fn write_block<'life0, 'async_trait>(
        &'life0 self,
        txn_id: TxnId,
        name: BlockId
    ) -> Pin<Box<dyn Future<Output = TCResult<<Self::Block as Block<B, Self>>::WriteLock>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn truncate<'life0, 'async_trait>(
        &'life0 self,
        txn_id: TxnId
    ) -> Pin<Box<dyn Future<Output = TCResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; }
Expand description

A transactional file.

Associated Types

The type of block which this file is divided into.

Required methods

Return the IDs of all this `File``’s blocks.

Return a new BlockId which is not used within this File.

Return true if this File contains the given BlockId as of the given TxnId.

Copy all blocks from the source File into this File.

Create a new Self::Block.

Delete the block with the given ID.

Return a lockable owned reference to the block at name.

Get a read lock on the block at name.

Get a read lock on the block at name, without borrowing.

Get a read lock on the block at name as of TxnId.

Delete all of this File’s blocks.

Implementors