samod_core/network/
peer_metadata.rs

1use super::wire_protocol;
2
3/// Metadata about a peer from the handshake.
4#[derive(Debug, Clone, PartialEq, Eq)]
5pub struct PeerMetadata {
6    /// Whether the peer expects to connect again with this storage ID
7    pub is_ephemeral: bool,
8}
9
10impl PeerMetadata {
11    /// Convert to wire protocol PeerMetadata for sending over network
12    pub(crate) fn to_wire(
13        &self,
14        storage_id: Option<crate::StorageId>,
15    ) -> wire_protocol::PeerMetadata {
16        wire_protocol::PeerMetadata {
17            storage_id,
18            is_ephemeral: self.is_ephemeral,
19        }
20    }
21
22    /// Convert from wire protocol PeerMetadata when receiving from network
23    pub(crate) fn from_wire(wire: wire_protocol::PeerMetadata) -> Self {
24        Self {
25            is_ephemeral: wire.is_ephemeral,
26        }
27    }
28}