pub const DEFAULT_MAX_LINE_BYTES: usize = 64 * 1024;
pub const DEFAULT_MAX_OPERATION_NAME_BYTES: usize = syncbat::MAX_OPERATION_NAME_BYTES;
pub const DEFAULT_MAX_INPUT_BYTES: usize = 32 * 1024;
pub const DEFAULT_MAX_OUTPUT_BYTES: usize = 32 * 1024;
macro_rules! protocol_prefix {
() => {
"NETBAT/"
};
}
pub const PROTOCOL_PREFIX: &str = protocol_prefix!();
pub const LINE_PROTOCOL_VERSION: &str = concat!(protocol_prefix!(), "1");
pub const CALL_VERB: &str = "CALL";
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
#[non_exhaustive]
pub struct Limits {
pub max_line_bytes: usize,
pub max_operation_name_bytes: usize,
pub max_input_bytes: usize,
pub max_output_bytes: usize,
}
impl Default for Limits {
fn default() -> Self {
Self {
max_line_bytes: DEFAULT_MAX_LINE_BYTES,
max_operation_name_bytes: DEFAULT_MAX_OPERATION_NAME_BYTES,
max_input_bytes: DEFAULT_MAX_INPUT_BYTES,
max_output_bytes: DEFAULT_MAX_OUTPUT_BYTES,
}
}
}
impl Limits {
#[must_use]
pub fn new() -> Self {
Self::default()
}
#[must_use]
pub const fn with_max_line_bytes(mut self, value: usize) -> Self {
self.max_line_bytes = value;
self
}
#[must_use]
pub const fn with_max_operation_name_bytes(mut self, value: usize) -> Self {
self.max_operation_name_bytes = value;
self
}
#[must_use]
pub const fn with_max_input_bytes(mut self, value: usize) -> Self {
self.max_input_bytes = value;
self
}
#[must_use]
pub const fn with_max_output_bytes(mut self, value: usize) -> Self {
self.max_output_bytes = value;
self
}
}
impl IoTimeouts {
#[must_use]
pub const fn with_read(mut self, value: Option<std::time::Duration>) -> Self {
self.read = value;
self
}
#[must_use]
pub const fn with_write(mut self, value: Option<std::time::Duration>) -> Self {
self.write = value;
self
}
}
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
#[non_exhaustive]
pub struct IoTimeouts {
pub read: Option<std::time::Duration>,
pub write: Option<std::time::Duration>,
}