p2p/channels/streaming_rpc/
mod.rs

1mod rpcs;
2pub use rpcs::*;
3
4mod p2p_channels_streaming_rpc_state;
5pub use p2p_channels_streaming_rpc_state::*;
6
7mod p2p_channels_streaming_rpc_actions;
8pub use p2p_channels_streaming_rpc_actions::*;
9
10mod p2p_channels_streaming_rpc_reducer;
11
12use binprot_derive::{BinProtRead, BinProtWrite};
13use serde::{Deserialize, Serialize};
14
15pub type P2pStreamingRpcId = u64;
16
17#[derive(BinProtWrite, BinProtRead, Serialize, Deserialize, Debug, Clone)]
18pub enum StreamingRpcChannelMsg {
19    /// Send the next part.
20    Next(P2pStreamingRpcId),
21    Request(P2pStreamingRpcId, P2pStreamingRpcRequest),
22    Response(P2pStreamingRpcId, Option<P2pStreamingRpcResponse>),
23}
24
25impl StreamingRpcChannelMsg {
26    pub fn request_id(&self) -> P2pStreamingRpcId {
27        match self {
28            Self::Next(id) => *id,
29            Self::Request(id, _) => *id,
30            Self::Response(id, _) => *id,
31        }
32    }
33}