use std::num::NonZero;
use crate::indexer::Indexer;
use battleware_types::Evaluation;
use commonware_cryptography::{
bls12381::primitives::{group, poly::Poly},
ed25519::PublicKey,
};
mod actor;
pub use actor::Actor;
mod ingress;
use commonware_runtime::buffer::PoolRef;
pub use ingress::Mailbox;
mod mempool;
pub struct Config<I: Indexer> {
pub participants: Vec<PublicKey>,
pub polynomial: Poly<Evaluation>,
pub share: group::Share,
pub mailbox_size: usize,
pub partition_prefix: String,
pub mmr_items_per_blob: NonZero<u64>,
pub mmr_write_buffer: NonZero<usize>,
pub log_items_per_section: NonZero<u64>,
pub log_write_buffer: NonZero<usize>,
pub locations_items_per_blob: NonZero<u64>,
pub buffer_pool: PoolRef,
pub indexer: I,
pub execution_concurrency: usize,
}