MCPcopy Create free account
hub / github.com/NodeDB-Lab/nodedb / encode

Function encode

nodedb-cluster/src/rpc_codec/raft_rpc.rs:56–80  ·  view source on GitHub ↗

Encode a [`RaftRpc`] into a framed binary message.

(rpc: &RaftRpc)

Source from the content-addressed store, hash-verified

54
55/// Encode a [`RaftRpc`] into a framed binary message.
56pub fn encode(rpc: &RaftRpc) -> Result<Vec<u8>> {
57 let mut out = Vec::with_capacity(HEADER_SIZE + 64);
58 match rpc {
59 RaftRpc::AppendEntriesRequest(m) => raft_msgs::encode_append_entries_req(m, &mut out),
60 RaftRpc::AppendEntriesResponse(m) => raft_msgs::encode_append_entries_resp(m, &mut out),
61 RaftRpc::RequestVoteRequest(m) => raft_msgs::encode_request_vote_req(m, &mut out),
62 RaftRpc::RequestVoteResponse(m) => raft_msgs::encode_request_vote_resp(m, &mut out),
63 RaftRpc::InstallSnapshotRequest(m) => raft_msgs::encode_install_snapshot_req(m, &mut out),
64 RaftRpc::InstallSnapshotResponse(m) => raft_msgs::encode_install_snapshot_resp(m, &mut out),
65 RaftRpc::JoinRequest(m) => cluster_mgmt::encode_join_req(m, &mut out),
66 RaftRpc::JoinResponse(m) => cluster_mgmt::encode_join_resp(m, &mut out),
67 RaftRpc::Ping(m) => cluster_mgmt::encode_ping(m, &mut out),
68 RaftRpc::Pong(m) => cluster_mgmt::encode_pong(m, &mut out),
69 RaftRpc::TopologyUpdate(m) => cluster_mgmt::encode_topology_update(m, &mut out),
70 RaftRpc::TopologyAck(m) => cluster_mgmt::encode_topology_ack(m, &mut out),
71 RaftRpc::VShardEnvelope(bytes) => vshard::encode_vshard_envelope(bytes, &mut out),
72 RaftRpc::MetadataProposeRequest(m) => metadata::encode_metadata_propose_req(m, &mut out),
73 RaftRpc::MetadataProposeResponse(m) => metadata::encode_metadata_propose_resp(m, &mut out),
74 RaftRpc::ExecuteRequest(m) => execute::encode_execute_req(m, &mut out),
75 RaftRpc::ExecuteResponse(m) => execute::encode_execute_resp(m, &mut out),
76 RaftRpc::DataProposeRequest(m) => data_propose::encode_data_propose_req(m, &mut out),
77 RaftRpc::DataProposeResponse(m) => data_propose::encode_data_propose_resp(m, &mut out),
78 }?;
79 Ok(out)
80}
81
82/// Encode a [`RaftRpc`] and wrap the framed bytes in a v2 versioned envelope.
83///

Callers 9

roundtrip_reqFunction · 0.70
roundtrip_respFunction · 0.70
versioned_encodeFunction · 0.70
crc_corruption_detectedFunction · 0.70
frame_size_helperFunction · 0.70
roundtripFunction · 0.70
roundtripFunction · 0.70

Calls 15

encode_request_vote_reqFunction · 0.85
encode_request_vote_respFunction · 0.85
encode_join_reqFunction · 0.85
encode_join_respFunction · 0.85
encode_pingFunction · 0.85
encode_pongFunction · 0.85
encode_topology_updateFunction · 0.85
encode_topology_ackFunction · 0.85

Tested by 4

crc_corruption_detectedFunction · 0.56
frame_size_helperFunction · 0.56