pub trait Transactional<E = ()> {
    type View;

    // Required methods
    fn make_overlay(&self) -> Result<TransactionalTrees>;
    fn view_overlay(overlay: &TransactionalTrees) -> Self::View;

    // Provided method
    fn transaction<F, A>(&self, f: F) -> TransactionResult<A, E>
       where F: Fn(&Self::View) -> ConflictableTransactionResult<A, E> { ... }
}
Expand description

A type that may be transacted on in sled transactions.

Required Associated Types§

source

type View

An internal reference to an internal proxy type that mediates transactional reads and writes.

Required Methods§

source

fn make_overlay(&self) -> Result<TransactionalTrees>

An internal function for creating a top-level transactional structure.

source

fn view_overlay(overlay: &TransactionalTrees) -> Self::View

An internal function for viewing the transactional subcomponents based on the top-level transactional structure.

Provided Methods§

source

fn transaction<F, A>(&self, f: F) -> TransactionResult<A, E>where F: Fn(&Self::View) -> ConflictableTransactionResult<A, E>,

Runs a transaction, possibly retrying the passed-in closure if a concurrent conflict is detected that would cause a violation of serializability. This is the only trait method that you’re most likely to use directly.

Implementations on Foreign Types§

source§

impl<E> Transactional<E> for [&Tree]

source§

impl<E> Transactional<E> for [Tree]

source§

impl<E> Transactional<E> for (&Tree, &Tree, &Tree)

source§

impl<E> Transactional<E> for (&Tree, &Tree, &Tree, &Tree, &Tree)

source§

impl<E> Transactional<E> for (&Tree, &Tree, &Tree, &Tree, &Tree, &Tree, &Tree, &Tree, &Tree)

source§

impl<E> Transactional<E> for (&Tree, &Tree)

source§

impl<E> Transactional<E> for (&Tree, &Tree, &Tree, &Tree, &Tree, &Tree, &Tree, &Tree, &Tree, &Tree, &Tree)

source§

impl<E> Transactional<E> for (&Tree,)

source§

impl<E> Transactional<E> for (&Tree, &Tree, &Tree, &Tree, &Tree, &Tree, &Tree, &Tree)

source§

impl<E> Transactional<E> for (&Tree, &Tree, &Tree, &Tree)

source§

impl<E> Transactional<E> for (&Tree, &Tree, &Tree, &Tree, &Tree, &Tree, &Tree, &Tree, &Tree, &Tree, &Tree, &Tree)

source§

impl<E> Transactional<E> for (&Tree, &Tree, &Tree, &Tree, &Tree, &Tree, &Tree)

source§

impl<E> Transactional<E> for (&Tree, &Tree, &Tree, &Tree, &Tree, &Tree, &Tree, &Tree, &Tree, &Tree)

source§

impl<E> Transactional<E> for (&Tree, &Tree, &Tree, &Tree, &Tree, &Tree, &Tree, &Tree, &Tree, &Tree, &Tree, &Tree, &Tree, &Tree)

source§

impl<E> Transactional<E> for (&Tree, &Tree, &Tree, &Tree, &Tree, &Tree, &Tree, &Tree, &Tree, &Tree, &Tree, &Tree, &Tree)

source§

impl<E> Transactional<E> for (&Tree, &Tree, &Tree, &Tree, &Tree, &Tree)

Implementors§