p2p/channels/streaming_rpc/
mod.rs1mod 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 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}