use crate::{p2p::Producer, Consumer};
use bytes::Bytes;
use commonware_cryptography::PublicKey;
use commonware_p2p::{Blocker, Provider};
use commonware_utils::Span;
use std::time::Duration;
pub struct Config<
P: PublicKey,
D: Provider<PublicKey = P>,
B: Blocker<PublicKey = P>,
Key: Span,
Con: Consumer<Key = Key, Value = Bytes, Failure = ()>,
Pro: Producer<Key = Key>,
> {
pub peer_provider: D,
pub blocker: B,
pub consumer: Con,
pub producer: Pro,
pub mailbox_size: usize,
pub me: Option<P>,
pub initial: Duration,
pub timeout: Duration,
pub fetch_retry_timeout: Duration,
pub priority_requests: bool,
pub priority_responses: bool,
}