use zksync_concurrency::sync;
use super::StreamId;
pub(crate) const MAX_FRAME_SIZE: u64 = u16::MAX as u64;
pub(crate) const MAX_STREAM_COUNT: u32 = (StreamId::MASK + 1) as u32;
pub(crate) const MAX_READ_FRAME_COUNT: u64 = sync::Semaphore::MAX_PERMITS as u64;
pub(crate) const MAX_READ_BUFFER_SIZE: u64 = sync::Semaphore::MAX_PERMITS as u64;
pub(crate) type CapabilityId = u64;
#[derive(Debug, Clone)]
pub(crate) struct Config {
pub(crate) read_frame_size: u64,
pub(crate) read_buffer_size: u64,
pub(crate) read_frame_count: u64,
pub(crate) write_frame_size: u64,
}
impl Config {
pub(crate) fn verify(&self) -> anyhow::Result<()> {
if self.write_frame_size > MAX_FRAME_SIZE {
anyhow::bail!("write_frame_size > {MAX_FRAME_SIZE}");
}
if self.read_buffer_size > MAX_READ_BUFFER_SIZE {
anyhow::bail!("read_buffer_size > {MAX_READ_BUFFER_SIZE}");
}
if self.read_frame_count > MAX_READ_FRAME_COUNT {
anyhow::bail!("read_frame_count > {MAX_READ_FRAME_COUNT}");
}
Ok(())
}
}