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

pub trait File<B: BlockData>: Store + Sized {
    type Block: Block<B>;
#[must_use]    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
;
#[must_use] fn create_block<'life0, 'async_trait>(
        &'life0 self,
        txn_id: TxnId,
        name: BlockId,
        initial_value: B
    ) -> Pin<Box<dyn Future<Output = TCResult<<Self::Block as Block<B>>::ReadLock>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
#[must_use] fn delete_block<'life0, 'life1, 'async_trait>(
        &'life0 self,
        txn_id: &'life1 TxnId,
        name: BlockId
    ) -> Pin<Box<dyn Future<Output = TCResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
;
#[must_use] fn get_block<'life0, 'life1, 'async_trait>(
        &'life0 self,
        txn_id: &'life1 TxnId,
        name: BlockId
    ) -> Pin<Box<dyn Future<Output = TCResult<<Self::Block as Block<B>>::ReadLock>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
;
#[must_use] fn get_block_mut<'life0, 'life1, 'async_trait>(
        &'life0 self,
        txn_id: &'life1 TxnId,
        name: BlockId
    ) -> Pin<Box<dyn Future<Output = TCResult<<Self::Block as Block<B>>::WriteLock>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; }

A transactional file.

Associated Types

type Block: Block<B>[src]

The type of block which this file is divided into.

Loading content...

Required methods

#[must_use]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, 
[src]

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

#[must_use]fn create_block<'life0, 'async_trait>(
    &'life0 self,
    txn_id: TxnId,
    name: BlockId,
    initial_value: B
) -> Pin<Box<dyn Future<Output = TCResult<<Self::Block as Block<B>>::ReadLock>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    Self: 'async_trait, 
[src]

Create a new Self::Block.

#[must_use]fn delete_block<'life0, 'life1, 'async_trait>(
    &'life0 self,
    txn_id: &'life1 TxnId,
    name: BlockId
) -> Pin<Box<dyn Future<Output = TCResult<()>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    Self: 'async_trait, 
[src]

Delete the block with the given ID.

#[must_use]fn get_block<'life0, 'life1, 'async_trait>(
    &'life0 self,
    txn_id: &'life1 TxnId,
    name: BlockId
) -> Pin<Box<dyn Future<Output = TCResult<<Self::Block as Block<B>>::ReadLock>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    Self: 'async_trait, 
[src]

Obtain a read lock on block name as of TxnId.

#[must_use]fn get_block_mut<'life0, 'life1, 'async_trait>(
    &'life0 self,
    txn_id: &'life1 TxnId,
    name: BlockId
) -> Pin<Box<dyn Future<Output = TCResult<<Self::Block as Block<B>>::WriteLock>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    Self: 'async_trait, 
[src]

Obtain a write lock on block name as of TxnId.

Loading content...

Implementors

Loading content...