Iterators over a simple binary blob storage.
Storage format
Storage format represents a sequence of binary blobs. The format uses git-flavored variable-length quantity (VLQ) for encoding unsigned numbers.
File starts with a number of de-duplicated blobs d
. It followed by d
entries. Each entry starts with an integer m
, immediately folowed by m
bytes representing de-duplicated binary blob.
Next follows unspecified number of entries representing sequence of stored
blobs. Each entry starts with an unsigned integer n
. The least significant
bit of this integer is used as a flag. If the flag is equal to 0, then the
number is followed by n >> 1
bytes, representing a stored binary blob.
Otherwise the entry references a de-duplicated entry number n >> 1
.
Examples
let buf = b"\x02\x05hello\x06world!\x01\x02 \x00\x03\x06:::\x03\x01\x00";
let mut v = new.unwrap;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
let mut v = new.unwrap;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
let mut v = new.unwrap;
assert_eq!;
assert_eq!;
assert_eq!;