pub mod adapter;
pub mod executor;
use crate::protocol::transaction::TransactionPair;
#[derive(Eq, PartialEq, Debug, Hash, Clone)]
pub struct TransactionFamily {
family_name: String,
family_version: String,
}
impl TransactionFamily {
pub fn new(family_name: String, family_version: String) -> Self {
TransactionFamily {
family_name,
family_version,
}
}
pub fn from_pair(transaction_pair: &TransactionPair) -> Self {
Self::new(
transaction_pair.header().family_name().to_string(),
transaction_pair.header().family_version().to_string(),
)
}
pub fn family_name(&self) -> &str {
&self.family_name
}
pub fn family_version(&self) -> &str {
&self.family_version
}
}
pub trait ExecutionRegistry: Send {
fn register_transaction_family(&mut self, family: TransactionFamily);
fn unregister_transaction_family(&mut self, family: &TransactionFamily);
}