Skip to main content

veilid_core/rpc_processor/
sender_peer_info.rs

1use super::*;
2
3/// Node information exchanged during every RPC message
4#[derive(Default, Debug, Clone)]
5pub(in crate::rpc_processor) struct SenderPeerInfo {
6    /// The current peer info of the sender if required
7    opt_peer_info: Option<Arc<PeerInfo>>,
8    /// The last timestamp of the target's node info to assist remote node with sending its latest node info
9    target_node_info_ts: Timestamp,
10}
11impl SenderPeerInfo {
12    pub fn new_no_peer_info(target_node_info_ts: Timestamp) -> Self {
13        Self {
14            opt_peer_info: None,
15            target_node_info_ts,
16        }
17    }
18    pub fn new(peer_info: Arc<PeerInfo>, target_node_info_ts: Timestamp) -> Self {
19        Self {
20            opt_peer_info: Some(peer_info),
21            target_node_info_ts,
22        }
23    }
24    pub fn opt_peer_info(&self) -> Option<Arc<PeerInfo>> {
25        self.opt_peer_info.clone()
26    }
27    pub fn target_node_info_ts(&self) -> Timestamp {
28        self.target_node_info_ts
29    }
30}