pub enum HealthPriority {
Critical,
Normal,
Background,
}Expand description
Node health reporting priority
Determines heartbeat frequency and timeout thresholds based on node criticality. Safety-critical nodes report more frequently.
§Priority Levels
| Priority | Interval | TTL | Timeout | Use Case |
|---|---|---|---|---|
| Critical | 1s | 5s | 3s | motor-controller, estop |
| Normal | 5s | 60s | 15s | sensors, AI nodes |
| Background | 30s | 120s | 90s | logging, diagnostics |
§Example
use mecha10::prelude::*;
// Create config with critical priority
let config = HealthReportingConfig::critical();
// Or specify priority explicitly
let config = HealthReportingConfig {
priority: HealthPriority::Critical,
..Default::default()
};Variants§
Critical
Safety-critical nodes that require immediate failure detection.
Examples: motor-controller, estop, safety-monitor
- Interval: 1 second
- TTL: 5 seconds
- Timeout: 3 seconds
Normal
Standard operational nodes (default).
Examples: camera, sensors, simulation-bridge
- Interval: 5 seconds
- TTL: 60 seconds
- Timeout: 15 seconds
Background
Background/auxiliary nodes where delayed detection is acceptable.
Examples: logging, telemetry, diagnostics
- Interval: 30 seconds
- TTL: 120 seconds
- Timeout: 90 seconds
Implementations§
Source§impl HealthPriority
impl HealthPriority
Sourcepub const fn ttl_seconds(&self) -> u64
pub const fn ttl_seconds(&self) -> u64
Get the Redis TTL (time-to-live) in seconds for this priority level
The TTL should be longer than the interval to allow for some jitter, but short enough that stale data expires quickly.
Sourcepub const fn timeout(&self) -> Duration
pub const fn timeout(&self) -> Duration
Get the timeout threshold for monitoring
A node is considered unresponsive if no health report is received within this duration.
Sourcepub const fn timeout_micros(&self) -> u64
pub const fn timeout_micros(&self) -> u64
Get the timeout in microseconds (for comparison with timestamps)
Trait Implementations§
Source§impl Clone for HealthPriority
impl Clone for HealthPriority
Source§fn clone(&self) -> HealthPriority
fn clone(&self) -> HealthPriority
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for HealthPriority
impl Debug for HealthPriority
Source§impl Default for HealthPriority
impl Default for HealthPriority
Source§fn default() -> HealthPriority
fn default() -> HealthPriority
Source§impl<'de> Deserialize<'de> for HealthPriority
impl<'de> Deserialize<'de> for HealthPriority
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>,
Source§impl Display for HealthPriority
impl Display for HealthPriority
Source§impl PartialEq for HealthPriority
impl PartialEq for HealthPriority
Source§impl Serialize for HealthPriority
impl Serialize for HealthPriority
impl Copy for HealthPriority
impl Eq for HealthPriority
impl StructuralPartialEq for HealthPriority
Auto Trait Implementations§
impl Freeze for HealthPriority
impl RefUnwindSafe for HealthPriority
impl Send for HealthPriority
impl Sync for HealthPriority
impl Unpin for HealthPriority
impl UnwindSafe for HealthPriority
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.