use std::sync::Arc;
use crate::RaftTypeConfig;
use crate::errors::ReplicationClosed;
use crate::replication::inflight_append_queue::InflightAppendQueue;
use crate::replication::stream_state::StreamState;
use crate::storage::RaftLogStorage;
use crate::type_config::alias::MutexOf;
pub(crate) struct StreamContext<C, LS>
where
C: RaftTypeConfig,
LS: RaftLogStorage<C>,
{
pub(crate) stream_state: Arc<MutexOf<C, StreamState<C, LS>>>,
pub(crate) inflight_append_queue: InflightAppendQueue<C>,
pub(crate) fatal_error: Arc<MutexOf<C, Option<ReplicationClosed>>>,
}