use core::num::NonZeroUsize;
#[derive(Clone, Debug)]
pub struct Options {
pub(crate) chunk_size: NonZeroUsize,
pub(crate) soft_limit: Option<usize>,
pub(crate) hard_limit: Option<usize>,
}
impl Default for Options {
fn default() -> Self {
Options {
chunk_size: NonZeroUsize::new(32).unwrap(),
soft_limit: None,
hard_limit: None,
}
}
}
impl Options {
pub fn new() -> Self {
Self::default()
}
pub fn chunk_size(mut self, chunk_size: NonZeroUsize) -> Self {
self.chunk_size = chunk_size;
self
}
pub fn soft_limit(mut self, soft_limit: Option<usize>) -> Self {
self.soft_limit = soft_limit;
self
}
pub fn hard_limit(mut self, hard_limit: Option<usize>) -> Self {
self.hard_limit = hard_limit;
self
}
}