1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#![forbid(unsafe_code)]
use diem_types::transaction::{SignedTransaction, TransactionOutput};
pub type Block<Txn> = Vec<Txn>;
pub type ExecutorResult<T> = Result<Vec<TransactionOutput>, T>;
pub trait Executor {
type Txn;
type BlockResult: std::error::Error;
fn execute_block(&mut self, txns: Block<Self::Txn>) -> ExecutorResult<Self::BlockResult>;
}
pub trait PartitionStrategy {
type Txn;
fn partition(&mut self, block: Block<Self::Txn>) -> Vec<Block<SignedTransaction>>;
}