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

Function write_i64

nodedb-query/src/msgpack_scan/writer.rs:60–78  ·  view source on GitHub ↗
(buf: &mut Vec<u8>, i: i64)

Source from the content-addressed store, hash-verified

58/// Write a msgpack integer using the most compact encoding.
59#[inline]
60pub fn write_i64(buf: &mut Vec<u8>, i: i64) {
61 if (0..=127).contains(&i) {
62 buf.push(i as u8);
63 } else if (-32..0).contains(&i) {
64 buf.push(i as u8); // negative fixint
65 } else if i >= i8::MIN as i64 && i <= i8::MAX as i64 {
66 buf.push(0xD0);
67 buf.push(i as i8 as u8);
68 } else if i >= i16::MIN as i64 && i <= i16::MAX as i64 {
69 buf.push(0xD1);
70 buf.extend_from_slice(&(i as i16).to_be_bytes());
71 } else if i >= i32::MIN as i64 && i <= i32::MAX as i64 {
72 buf.push(0xD2);
73 buf.extend_from_slice(&(i as i32).to_be_bytes());
74 } else {
75 buf.push(0xD3);
76 buf.extend_from_slice(&i.to_be_bytes());
77 }
78}
79
80/// Write a msgpack float64.
81#[inline]

Callers 3

write_kv_i64Function · 0.85
compact_integer_encodingFunction · 0.85
emit_column_valueFunction · 0.85

Calls 2

containsMethod · 0.45
pushMethod · 0.45

Tested by 1

compact_integer_encodingFunction · 0.68