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

Function encode_sparse_tile

nodedb-array/src/codec/tile_encode.rs:60–69  ·  view source on GitHub ↗

Encode a `SparseTile` into `out`. The segment writer wraps this payload in BlockFraming (length + CRC).

(tile: &SparseTile, out: &mut Vec<u8>)

Source from the content-addressed store, hash-verified

58/// Encode a `SparseTile` into `out`. The segment writer wraps this payload
59/// in BlockFraming (length + CRC).
60pub fn encode_sparse_tile(tile: &SparseTile, out: &mut Vec<u8>) -> ArrayResult<()> {
61 let tag = choose_tag(tile);
62 out.push(tag.as_byte());
63 out.push(PAYLOAD_VERSION);
64
65 match tag {
66 CodecTag::Raw => encode_raw(tile, out),
67 CodecTag::Structural => encode_structural(tile, out),
68 }
69}
70
71fn encode_raw(tile: &SparseTile, out: &mut Vec<u8>) -> ArrayResult<()> {
72 let bytes = zerompk::to_msgpack_vec(tile).map_err(|e| ArrayError::SegmentCorruption {

Callers 11

append_sparseMethod · 0.85
small_tile_uses_raw_tagFunction · 0.85
small_tile_roundtripFunction · 0.85
large_tile_roundtripFunction · 0.85
version_byte_is_oneFunction · 0.85
roundtripFunction · 0.85

Calls 5

choose_tagFunction · 0.85
encode_structuralFunction · 0.85
as_byteMethod · 0.80
encode_rawFunction · 0.70
pushMethod · 0.45