pub trait Replica {
    // Required methods
    fn state<'life0, 'async_trait>(
        &'life0 self,
        txn_id: TxnId
    ) -> Pin<Box<dyn Future<Output = TCResult<State>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn replicate<'life0, 'life1, 'async_trait>(
        &'life0 self,
        txn: &'life1 Txn,
        source: Link
    ) -> Pin<Box<dyn Future<Output = TCResult<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
}
Expand description

A state which supports replication in a [Cluster]

Required Methods§

source

fn state<'life0, 'async_trait>( &'life0 self, txn_id: TxnId ) -> Pin<Box<dyn Future<Output = TCResult<State>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

source

fn replicate<'life0, 'life1, 'async_trait>( &'life0 self, txn: &'life1 Txn, source: Link ) -> Pin<Box<dyn Future<Output = TCResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Implementations on Foreign Types§

source§

impl Replica for BlockChain<Class>

source§

fn state<'life0, 'async_trait>( &'life0 self, txn_id: TxnId ) -> Pin<Box<dyn Future<Output = TCResult<State>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

source§

fn replicate<'life0, 'life1, 'async_trait>( &'life0 self, txn: &'life1 Txn, source: Link ) -> Pin<Box<dyn Future<Output = TCResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

source§

impl Replica for BlockChain<Library>

source§

fn state<'life0, 'async_trait>( &'life0 self, txn_id: TxnId ) -> Pin<Box<dyn Future<Output = TCResult<State>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

source§

fn replicate<'life0, 'life1, 'async_trait>( &'life0 self, txn: &'life1 Txn, source: Link ) -> Pin<Box<dyn Future<Output = TCResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

source§

impl Replica for BlockChain<Service>

source§

fn state<'life0, 'async_trait>( &'life0 self, txn_id: TxnId ) -> Pin<Box<dyn Future<Output = TCResult<State>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

source§

fn replicate<'life0, 'life1, 'async_trait>( &'life0 self, txn: &'life1 Txn, source: Link ) -> Pin<Box<dyn Future<Output = TCResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

source§

impl Replica for BlockChain<CollectionBase>

source§

fn state<'life0, 'async_trait>( &'life0 self, _txn_id: TxnId ) -> Pin<Box<dyn Future<Output = TCResult<State>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

source§

fn replicate<'life0, 'life1, 'async_trait>( &'life0 self, txn: &'life1 Txn, source: Link ) -> Pin<Box<dyn Future<Output = TCResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

source§

impl Replica for Chain<CollectionBase>

source§

fn state<'life0, 'async_trait>( &'life0 self, txn_id: TxnId ) -> Pin<Box<dyn Future<Output = TCResult<State>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

source§

fn replicate<'life0, 'life1, 'async_trait>( &'life0 self, txn: &'life1 Txn, source: Link ) -> Pin<Box<dyn Future<Output = TCResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

source§

impl<T> Replica for SyncChain<T>

source§

fn state<'life0, 'async_trait>( &'life0 self, _txn_id: TxnId ) -> Pin<Box<dyn Future<Output = TCResult<State>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

source§

fn replicate<'life0, 'life1, 'async_trait>( &'life0 self, txn: &'life1 Txn, source: Link ) -> Pin<Box<dyn Future<Output = TCResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Implementors§

source§

impl Replica for Service

source§

impl Replica for Version

source§

impl<T: DirItem + Route<State> + Debug> Replica for Dir<T>
where BlockChain<T>: Replica, DirEntry<T>: Clone, Cluster<Self>: Clone, Self: Persist<CacheBlock, Txn = Txn, Schema = Schema> + Route<State> + Debug,