pub trait ExecutionStorage<N: Network>: Clone + Send + Sync {
    type IDMap: for<'a> Map<'a, N::TransactionID, (Vec<N::TransitionID>, bool)>;
    type ReverseIDMap: for<'a> Map<'a, N::TransitionID, N::TransactionID>;
    type InclusionMap: for<'a> Map<'a, N::TransactionID, (N::StateRoot, Option<Proof<N>>)>;
    type FeeStorage: FeeStorage<N>;

Show 19 methods // Required methods fn open(fee_store: FeeStore<N, Self::FeeStorage>) -> Result<Self>; fn id_map(&self) -> &Self::IDMap; fn reverse_id_map(&self) -> &Self::ReverseIDMap; fn inclusion_map(&self) -> &Self::InclusionMap; fn fee_store(&self) -> &FeeStore<N, Self::FeeStorage>; // Provided methods fn transition_store( &self ) -> &TransitionStore<N, <Self::FeeStorage as FeeStorage<N>>::TransitionStorage> { ... } fn dev(&self) -> Option<u16> { ... } fn start_atomic(&self) { ... } fn is_atomic_in_progress(&self) -> bool { ... } fn atomic_checkpoint(&self) { ... } fn clear_latest_checkpoint(&self) { ... } fn atomic_rewind(&self) { ... } fn abort_atomic(&self) { ... } fn finish_atomic(&self) -> Result<()> { ... } fn insert(&self, transaction: &Transaction<N>) -> Result<()> { ... } fn remove(&self, transaction_id: &N::TransactionID) -> Result<()> { ... } fn find_transaction_id_from_transition_id( &self, transition_id: &N::TransitionID ) -> Result<Option<N::TransactionID>> { ... } fn get_execution( &self, transaction_id: &N::TransactionID ) -> Result<Option<Execution<N>>> { ... } fn get_transaction( &self, transaction_id: &N::TransactionID ) -> Result<Option<Transaction<N>>> { ... }
}
Expand description

A trait for execution storage.

Required Associated Types§

source

type IDMap: for<'a> Map<'a, N::TransactionID, (Vec<N::TransitionID>, bool)>

The mapping of transaction ID to ([transition ID], has_fee).

source

type ReverseIDMap: for<'a> Map<'a, N::TransitionID, N::TransactionID>

The mapping of transition ID to transaction ID.

source

type InclusionMap: for<'a> Map<'a, N::TransactionID, (N::StateRoot, Option<Proof<N>>)>

The mapping of transaction ID to (global state root, (optional) proof).

source

type FeeStorage: FeeStorage<N>

The fee storage.

Required Methods§

source

fn open(fee_store: FeeStore<N, Self::FeeStorage>) -> Result<Self>

Initializes the execution storage.

source

fn id_map(&self) -> &Self::IDMap

Returns the ID map.

source

fn reverse_id_map(&self) -> &Self::ReverseIDMap

Returns the reverse ID map.

source

fn inclusion_map(&self) -> &Self::InclusionMap

Returns the inclusion map.

source

fn fee_store(&self) -> &FeeStore<N, Self::FeeStorage>

Returns the fee store.

Provided Methods§

source

fn transition_store( &self ) -> &TransitionStore<N, <Self::FeeStorage as FeeStorage<N>>::TransitionStorage>

Returns the transition store.

source

fn dev(&self) -> Option<u16>

Returns the optional development ID.

source

fn start_atomic(&self)

Starts an atomic batch write operation.

source

fn is_atomic_in_progress(&self) -> bool

Checks if an atomic batch is in progress.

source

fn atomic_checkpoint(&self)

Checkpoints the atomic batch.

source

fn clear_latest_checkpoint(&self)

Clears the latest atomic batch checkpoint.

source

fn atomic_rewind(&self)

Rewinds the atomic batch to the previous checkpoint.

source

fn abort_atomic(&self)

Aborts an atomic batch write operation.

source

fn finish_atomic(&self) -> Result<()>

Finishes an atomic batch write operation.

source

fn insert(&self, transaction: &Transaction<N>) -> Result<()>

Stores the given execution transaction pair into storage.

source

fn remove(&self, transaction_id: &N::TransactionID) -> Result<()>

Removes the execution transaction for the given transaction ID.

source

fn find_transaction_id_from_transition_id( &self, transition_id: &N::TransitionID ) -> Result<Option<N::TransactionID>>

Returns the transaction ID that contains the given transition ID.

source

fn get_execution( &self, transaction_id: &N::TransactionID ) -> Result<Option<Execution<N>>>

Returns the execution for the given transaction ID.

source

fn get_transaction( &self, transaction_id: &N::TransactionID ) -> Result<Option<Transaction<N>>>

Returns the transaction for the given transaction ID.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<N: Network> ExecutionStorage<N> for ExecutionMemory<N>

§

type IDMap = MemoryMap<<N as Network>::TransactionID, (Vec<<N as Network>::TransitionID>, bool)>

§

type ReverseIDMap = MemoryMap<<N as Network>::TransitionID, <N as Network>::TransactionID>

§

type InclusionMap = MemoryMap<<N as Network>::TransactionID, (<N as Network>::StateRoot, Option<Proof<N>>)>

§

type FeeStorage = FeeMemory<N>