use commonware_cryptography::PublicKey;
use commonware_p2p::Provider;
use commonware_parallel::Strategy;
use std::num::NonZeroUsize;
/// Configuration for the [super::Engine].
pub struct Config
where
P: PublicKey,
D: Provider,
T: Strategy,
{
/// The public key of the participant.
pub public_key: P,
/// The maximum size of the mailbox backlog.
pub mailbox_size: NonZeroUsize,
/// The maximum number of cached items per sender.
pub deque_size: usize,
/// Whether messages are sent over the network as priority.
pub priority: bool,
/// The configuration for the codec item.
pub codec_config: MCfg,
/// Provider for peer set changes (eviction follows the tracked primary sets; see
/// [`buffered`](super)).
pub peer_provider: D,
/// Strategy for computing message digests.
pub strategy: T,
}