MCPcopy Create free account
hub / github.com/DeusData/codebase-memory-mcp / put_varint

Function put_varint

internal/cbm/sqlite_writer.c:187–209  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

185// --- Varint encoding ---
186
187static int put_varint(uint8_t *buf, int64_t value) {
188 uint64_t v = (uint64_t)value;
189 if (v <= VARINT_MASK) {
190 buf[0] = (uint8_t)v;
191 return SERIAL_SIZE_INT8;
192 }
193 // Encode in big-endian with MSB continuation bits
194 uint8_t tmp[VARINT_BUF_SIZE];
195 int n = 0;
196 while (v > VARINT_MASK) {
197 tmp[n++] = (uint8_t)(v & VARINT_MASK);
198 v >>= VARINT_SHIFT;
199 }
200 tmp[n++] = (uint8_t)v;
201 // Reverse into output with continuation bits
202 for (int i = 0; i < n; i++) {
203 buf[i] = tmp[n - SKIP_ONE - i];
204 if (i < n - SKIP_ONE) {
205 buf[i] |= VARINT_CONTINUE;
206 }
207 }
208 return n;
209}
210
211static int varint_len(int64_t value) {
212 uint64_t v = (uint64_t)value;

Callers 13

rec_add_intFunction · 0.85
rec_add_textFunction · 0.85
rec_add_blobFunction · 0.85
rec_finalizeFunction · 0.85
build_interior_cellFunction · 0.85
build_table_cellFunction · 0.85
ecell_url_pathFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected