Skip to main content

ReconnectConfig

Struct ReconnectConfig 

Source
pub struct ReconnectConfig {
    pub max_retries: u32,
    pub retry_interval: Duration,
    pub backoff_multiplier: f32,
}
Expand description

Reconnection configuration

Configures automatic reconnection behavior. By default, auto-reconnect is disabled to avoid masking hardware issues.

§Example

use canlink_hal::monitor::ReconnectConfig;
use std::time::Duration;

let config = ReconnectConfig {
    max_retries: 5,
    retry_interval: Duration::from_secs(2),
    backoff_multiplier: 1.5,
};

Fields§

§max_retries: u32

Maximum number of reconnection attempts

Set to 0 for unlimited retries.

§retry_interval: Duration

Initial interval between reconnection attempts

§backoff_multiplier: f32

Backoff multiplier for exponential backoff

After each failed attempt, the interval is multiplied by this value. Set to 1.0 for fixed intervals.

Implementations§

Source§

impl ReconnectConfig

Source

pub fn new() -> Self

Create a new reconnect config with default values

Source

pub fn fixed_interval(max_retries: u32, interval: Duration) -> Self

Create a config with fixed retry interval (no backoff)

Source

pub fn exponential_backoff( max_retries: u32, initial_interval: Duration, multiplier: f32, ) -> Self

Create a config with exponential backoff

Source

pub fn interval_for_attempt(&self, attempt: u32) -> Duration

Calculate the interval for a given retry attempt

Source

pub fn should_retry(&self, current_attempt: u32) -> bool

Check if more retries are allowed

Trait Implementations§

Source§

impl Clone for ReconnectConfig

Source§

fn clone(&self) -> ReconnectConfig

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ReconnectConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ReconnectConfig

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.