use std::time::Duration;
#[non_exhaustive]
#[derive(Debug, Clone, Copy)]
pub struct TimeoutConfig {
pub connection_timeout: Duration,
pub disconnect_timeout: Duration,
}
impl Default for TimeoutConfig {
fn default() -> Self {
Self {
connection_timeout: Duration::from_secs(30),
disconnect_timeout: Duration::from_secs(10),
}
}
}
impl TimeoutConfig {
#[must_use]
pub fn new() -> Self {
Self::default()
}
#[must_use]
pub fn with_connection_timeout(mut self, timeout: Duration) -> Self {
self.connection_timeout = timeout;
self
}
#[must_use]
pub fn with_disconnect_timeout(mut self, timeout: Duration) -> Self {
self.disconnect_timeout = timeout;
self
}
}
#[non_exhaustive]
#[derive(Debug, Clone)]
pub struct ConnectionOptions {
pub autoconnect: bool,
pub autoconnect_priority: Option<i32>,
pub autoconnect_retries: Option<i32>,
}
impl Default for ConnectionOptions {
fn default() -> Self {
Self {
autoconnect: true,
autoconnect_priority: None,
autoconnect_retries: None,
}
}
}
impl ConnectionOptions {
#[must_use]
pub fn new(autoconnect: bool) -> Self {
Self {
autoconnect,
autoconnect_priority: None,
autoconnect_retries: None,
}
}
#[must_use]
pub fn with_priority(mut self, priority: i32) -> Self {
self.autoconnect_priority = Some(priority);
self
}
#[must_use]
pub fn with_retries(mut self, retries: i32) -> Self {
self.autoconnect_retries = Some(retries);
self
}
}