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

Function encode_envelope

nodedb-cluster/src/wire_version/envelope.rs:125–138  ·  view source on GitHub ↗

Encode a v2 envelope: `[ENVELOPE_MARKER][version u16 BE][inner_len u32 BE][inner]`.

(version: u16, inner: &[u8])

Source from the content-addressed store, hash-verified

123
124/// Encode a v2 envelope: `[ENVELOPE_MARKER][version u16 BE][inner_len u32 BE][inner]`.
125fn encode_envelope(version: u16, inner: &[u8]) -> Result<Vec<u8>, WireVersionError> {
126 if inner.len() > u32::MAX as usize {
127 return Err(WireVersionError::DecodeFailure(format!(
128 "inner payload {} bytes exceeds u32 length limit",
129 inner.len()
130 )));
131 }
132 let mut buf = Vec::with_capacity(ENVELOPE_HEADER_LEN + inner.len());
133 buf.push(ENVELOPE_MARKER);
134 buf.extend_from_slice(&version.to_be_bytes());
135 buf.extend_from_slice(&(inner.len() as u32).to_be_bytes());
136 buf.extend_from_slice(inner);
137 Ok(buf)
138}
139
140/// Parse a v2 envelope.
141///

Calls 2

lenMethod · 0.45
pushMethod · 0.45