pub mod crypto;
pub mod random;
pub mod signatures;
pub mod storage;
pub mod types;
pub mod prelude {
pub use super::crypto::OpenMlsCrypto as _;
pub use super::random::OpenMlsRand as _;
pub use super::signatures::Signer as _;
pub use super::storage::StorageProvider as _;
pub use super::types as openmls_types;
pub use super::OpenMlsProvider as _;
}
pub trait OpenMlsProvider {
type CryptoProvider: crypto::OpenMlsCrypto;
type RandProvider: random::OpenMlsRand;
type StorageProvider: storage::StorageProvider<{ storage::CURRENT_VERSION }>;
fn storage(&self) -> &Self::StorageProvider;
fn crypto(&self) -> &Self::CryptoProvider;
fn rand(&self) -> &Self::RandProvider;
}