pub struct TimeoutConfig {
pub default_timeout_ms: u64,
pub connection_timeout_ms: u64,
pub read_timeout_ms: u64,
pub write_timeout_ms: u64,
pub idle_timeout_ms: u64,
pub keepalive_interval_ms: u64,
}Expand description
Timeout configuration for operations
§Examples
Using the default configuration:
use chie_shared::TimeoutConfig;
let config = TimeoutConfig::default();
assert_eq!(config.default_timeout_ms, 30_000);
assert_eq!(config.connection_timeout_ms, 10_000);
assert!(config.keepalive_enabled());
assert!(config.idle_timeout_enabled());
assert!(config.validate().is_ok());Using preset configurations for different scenarios:
use chie_shared::TimeoutConfig;
// Fast configuration for low-latency operations
let fast_config = TimeoutConfig::fast();
assert_eq!(fast_config.default_timeout_ms, 5_000);
assert_eq!(fast_config.connection_timeout_ms, 3_000);
// Slow configuration for batch/background operations
let slow_config = TimeoutConfig::slow();
assert_eq!(slow_config.default_timeout_ms, 120_000);
assert_eq!(slow_config.read_timeout_ms, 300_000);Building a custom configuration:
use chie_shared::TimeoutConfigBuilder;
let config = TimeoutConfigBuilder::new()
.default_timeout_ms(45_000)
.connection_timeout_ms(15_000)
.read_timeout_ms(90_000)
.write_timeout_ms(90_000)
.idle_timeout_ms(0) // Disable idle timeout
.keepalive_interval_ms(30_000)
.build();
assert_eq!(config.default_timeout_ms, 45_000);
assert!(!config.idle_timeout_enabled());
assert!(config.keepalive_enabled());Fields§
§default_timeout_ms: u64Default operation timeout in milliseconds
connection_timeout_ms: u64Connection timeout in milliseconds
read_timeout_ms: u64Read timeout in milliseconds
write_timeout_ms: u64Write timeout in milliseconds
idle_timeout_ms: u64Idle timeout in milliseconds (0 = no timeout)
keepalive_interval_ms: u64Keepalive interval in milliseconds (0 = disabled)
Implementations§
Source§impl TimeoutConfig
impl TimeoutConfig
Sourcepub const fn keepalive_enabled(&self) -> bool
pub const fn keepalive_enabled(&self) -> bool
Check if keepalive is enabled
Sourcepub const fn idle_timeout_enabled(&self) -> bool
pub const fn idle_timeout_enabled(&self) -> bool
Check if idle timeout is enabled
Sourcepub fn validate(&self) -> ChieResult<()>
pub fn validate(&self) -> ChieResult<()>
Trait Implementations§
Source§impl Clone for TimeoutConfig
impl Clone for TimeoutConfig
Source§fn clone(&self) -> TimeoutConfig
fn clone(&self) -> TimeoutConfig
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for TimeoutConfig
impl Debug for TimeoutConfig
Source§impl Default for TimeoutConfig
impl Default for TimeoutConfig
Source§impl<'de> Deserialize<'de> for TimeoutConfig
impl<'de> Deserialize<'de> for TimeoutConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for TimeoutConfig
impl RefUnwindSafe for TimeoutConfig
impl Send for TimeoutConfig
impl Sync for TimeoutConfig
impl Unpin for TimeoutConfig
impl UnwindSafe for TimeoutConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more