mod dataio;
mod network;
mod tasks;
pub use aleph_bft_crypto::{
IncompleteMultisignatureError, Index, Indexed, Keychain, MultiKeychain, Multisigned, NodeCount,
NodeIndex, NodeMap, NodeSubset, PartialMultisignature, PartiallyMultisigned, Signable,
Signature, SignatureError, SignatureSet, Signed, UncheckedSigned,
};
pub use dataio::{DataProvider, FinalizationHandler};
pub use network::{Network, Recipient};
pub use tasks::{SpawnHandle, TaskHandle};
use codec::Codec;
use std::{fmt::Debug, hash::Hash as StdHash};
pub trait Data: Eq + Clone + Send + Sync + Debug + StdHash + Codec + 'static {}
impl<T> Data for T where T: Eq + Clone + Send + Sync + Debug + StdHash + Codec + 'static {}
pub trait Hasher: Eq + Clone + Send + Sync + Debug + 'static {
type Hash: AsRef<[u8]> + Eq + Ord + Copy + Clone + Send + Sync + Debug + StdHash + Codec;
fn hash(s: &[u8]) -> Self::Hash;
}
pub type SessionId = u64;
pub type Round = u16;