pub enum RetryingStrategies {
DoNotRetry,
EndCommunications,
RetrySleepingArithmetically(u8),
RetryYieldingForUpToMillis(u8),
RetrySpinningForUpToMillis(u8),
}Expand description
Specifies how to behave when communication failures happen
Variants§
DoNotRetry
Simply ignore full buffer failures denials of sending & receiving messages, without retrying nor dropping the connection.
This option is acceptable when missing messages don’t disrupt the communications and when low latencies / realtime-ish behavior is required.
Set ConstConfig::sender_buffer & ConstConfig::receiver_buffer accordingly.
EndCommunications
Drops the connection on “buffer is full” errors, also without retrying
RetrySleepingArithmetically(u8)
Retries, in case of “buffer is full” errors, ending the communications if success still can’t be achieve.
Starting at 10ms, waits further 10ms on each attempt – for up to 255 attempts, with 2.55s being the last sleeping time.
Total retrying time: 5*(n²+n) (milliseconds) – for up to ~5.5 minutes total retrying time
RetryYieldingForUpToMillis(u8)
Retries, in case of “buffer is full” errors, ending the communications if success still can’t be achieve
during the specified milliseconds – during which retrying will be performed in a pool loop, yielding
to tokio before each attempt.
Use this option if low latency is desirable – but see also Self::RetrySleepingArithmetically
RetrySpinningForUpToMillis(u8)
Deprecated. Do not use – to be replaced or removed, as spinning doesn’t make sense in this lib
Trait Implementations§
source§impl Debug for RetryingStrategies
impl Debug for RetryingStrategies
source§impl PartialEq<RetryingStrategies> for RetryingStrategies
impl PartialEq<RetryingStrategies> for RetryingStrategies
source§fn eq(&self, other: &RetryingStrategies) -> bool
fn eq(&self, other: &RetryingStrategies) -> bool
self and other values to be equal, and is used
by ==.