pub struct Peer {
pub id: PeerId,
pub client: ClientInfo,
pub transport: Transport,
pub connected_at: String,
pub last_seen_seconds_ago: u64,
pub attached: bool,
pub claims: Vec<Announcement>,
pub announcement: Option<Announcement>,
pub checkout: Option<PeerCheckout>,
}Expand description
One peer as the board lists it.
Fields§
§id: PeerIdp1, p2, …
client: ClientInfoThe client behind it.
transport: TransportHow it is attached.
connected_at: StringWhen it attached, RFC 3339, UTC.
last_seen_seconds_ago: u64Seconds since its last message.
attached: boolWhether the session is still attached. A peer that announced something and then
went away is kept and listed with attached: false: what it said it was working on
outlives the connection that said it, because the work does.
claims: Vec<Announcement>Every claim this peer holds, in name order, the unnamed one first. Empty for a peer that has announced nothing.
One connection may be doing several things at once — a session that fans work out to subagents shares its MCP session with all of them — and before this field the board could hold only the last thing said, so each announcement silently erased the one before it and the other peers stopped seeing the rest of the scope.
announcement: Option<Announcement>The most recently made of Peer::claims, for a reader that wants one line rather
than all of them. Derived from claims and never a second account of it: a peer
holding one claim reports the same thing in both, which is what every peer that does
not name its claims reports.
checkout: Option<PeerCheckout>Which checkout of the repository this peer is attached to; see PeerCheckout.
The board itself never sets it — a board does not know where it is — and it is stamped by the reader that gathered this peer, which is the one thing that knows which checkout’s server it asked.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Peer
impl<'de> Deserialize<'de> for Peer
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>,
impl Eq for Peer
Source§impl JsonSchema for Peer
impl JsonSchema for Peer
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreimpl StructuralPartialEq for Peer
Auto Trait Implementations§
impl Freeze for Peer
impl RefUnwindSafe for Peer
impl Send for Peer
impl Sync for Peer
impl Unpin for Peer
impl UnsafeUnpin for Peer
impl UnwindSafe for Peer
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.