pub struct ReconnectConfig {
pub max_attempts: Option<usize>,
pub initial_delay: Duration,
pub max_delay: Duration,
pub backoff_multiplier: f64,
pub use_jitter: bool,
}
Expand description
Reconnection strategy configuration
Used with ClientBuilder
to enable automatic
reconnection after network failures.
§Examples
use openigtlink_rust::io::builder::ClientBuilder;
use openigtlink_rust::io::reconnect::ReconnectConfig;
// Auto-reconnect with default settings (10 attempts)
let config = ReconnectConfig::default();
let client = ClientBuilder::new()
.tcp("127.0.0.1:18944")
.async_mode()
.with_reconnect(config)
.build()
.await?;
use openigtlink_rust::io::builder::ClientBuilder;
use openigtlink_rust::io::reconnect::ReconnectConfig;
// Infinite retries
let config = ReconnectConfig::infinite();
let client = ClientBuilder::new()
.tcp("127.0.0.1:18944")
.async_mode()
.with_reconnect(config)
.build()
.await?;
Fields§
§max_attempts: Option<usize>
Maximum number of reconnection attempts (None = infinite)
initial_delay: Duration
Initial delay before first reconnection attempt
max_delay: Duration
Maximum delay between reconnection attempts
backoff_multiplier: f64
Backoff multiplier (delay is multiplied by this after each attempt)
use_jitter: bool
Whether to add random jitter to delays
Implementations§
Source§impl ReconnectConfig
impl ReconnectConfig
Sourcepub fn infinite() -> Self
pub fn infinite() -> Self
Create config with infinite retries
§Examples
use openigtlink_rust::io::reconnect::ReconnectConfig;
let config = ReconnectConfig::infinite();
assert_eq!(config.max_attempts, None);
Sourcepub fn with_max_attempts(attempts: usize) -> Self
pub fn with_max_attempts(attempts: usize) -> Self
Create config with specific max attempts
§Examples
use openigtlink_rust::io::reconnect::ReconnectConfig;
let config = ReconnectConfig::with_max_attempts(5);
assert_eq!(config.max_attempts, Some(5));
Sourcepub fn with_delays(initial: Duration, max: Duration) -> Self
pub fn with_delays(initial: Duration, max: Duration) -> Self
Create config with custom delays
§Examples
use openigtlink_rust::io::reconnect::ReconnectConfig;
use std::time::Duration;
let config = ReconnectConfig::with_delays(
Duration::from_millis(500),
Duration::from_secs(60)
);
assert_eq!(config.initial_delay, Duration::from_millis(500));
assert_eq!(config.max_delay, Duration::from_secs(60));
Trait Implementations§
Source§impl Clone for ReconnectConfig
impl Clone for ReconnectConfig
Source§fn clone(&self) -> ReconnectConfig
fn clone(&self) -> ReconnectConfig
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 ReconnectConfig
impl Debug for ReconnectConfig
Auto Trait Implementations§
impl Freeze for ReconnectConfig
impl RefUnwindSafe for ReconnectConfig
impl Send for ReconnectConfig
impl Sync for ReconnectConfig
impl Unpin for ReconnectConfig
impl UnwindSafe for ReconnectConfig
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