use super::error::SubscriptionRuntimeError;
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct SubscriptionRuntimeConfig {
pub server_max_window: usize,
pub query_page_size: usize,
}
impl Default for SubscriptionRuntimeConfig {
fn default() -> Self {
Self {
server_max_window: 256,
query_page_size: 64,
}
}
}
impl SubscriptionRuntimeConfig {
#[must_use]
pub const fn new(server_max_window: usize, query_page_size: usize) -> Self {
Self {
server_max_window,
query_page_size,
}
}
pub fn validate(&self) -> Result<(), SubscriptionRuntimeError> {
if self.server_max_window == 0 {
return Err(SubscriptionRuntimeError::InvalidConfig {
reason: "server max window is zero",
});
}
if self.query_page_size == 0 {
return Err(SubscriptionRuntimeError::InvalidConfig {
reason: "query page size is zero",
});
}
Ok(())
}
}