pub struct PeerReachability {
pub name: String,
pub reachable: bool,
pub rtt_ms: Option<u64>,
pub age_secs: Option<u64>,
pub meta: String,
pub principal: Option<String>,
pub path: PeerPath,
}Expand description
Advisory reachability of a paired peer (pairing-mode liveness). Surface-clean: a nickname, a
bool, latency/age NUMBERS, the stable eid: principal (#42), and since #64 the PATH KIND —
direct vs relay, plus the relay URL when relayed. Never a socket address, an IP, or a key: the
path field says WHICH KIND of route is in use, never where the peer is.
Fields§
§name: String§reachable: bool§rtt_ms: Option<u64>§age_secs: Option<u64>§meta: StringThe peer’s OPTIONAL app metadata (#40) — the same opaque ≤256B blob #39 exposes via
presence, here carried on the pairing-mode mcpmesh/ping/1 probe pong so PAIRED peers
(which have no presence gossip) see it too. Empty when the peer set none. Advisory
display data; never an authz input. Near-real-time when status is read (the probe
cache has a ~20s TTL), not a steady push. Additive: default + skip-if-empty.
principal: Option<String>The peer’s stable DEVICE principal eid:<hex> (#42) — the SAME rendering as
PeerInfo::principal, so an embedder joins probe result + meta (app version) to a
peer by the AUTHENTICATED endpoint rather than the non-unique nickname. Always present
for a real row (Option only for additive round-trip). Machine-surface authz
vocabulary — the human status reachability line is unchanged. Additive:
#[serde(default, skip_serializing_if = "Option::is_none")].
path: PeerPathHOW this peer is reached (#64) — see PeerPath. Captured by the same probe that sets
reachable/rtt_ms, so it shares their freshness: one TTL, one age_secs. Unknown for a
peer never probed. Additive (#[serde(default)]), so older rows and clients are unaffected.
Trait Implementations§
Source§impl Clone for PeerReachability
impl Clone for PeerReachability
Source§fn clone(&self) -> PeerReachability
fn clone(&self) -> PeerReachability
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more