This is an implementation of the radix tree in Rust that converts [u8] to
integers. It is intended to be used as a basic building block for efficient
source-control related key-value lookups. For example, to convert a commit
hash to an internal number (ex. revision number).
The file format is quite similar to the C radix tree implementation in
mercurial/cext/revlog.c, with some improvements:
- Not coupled with CPython APIs
- Not coupled with revlog or revision numbers
- Not coupled with malloc / realloc so the abstraction managing the buffer could be more flexible
- Support variant-length keys
- Explicitly use little-endian so the format is platform-independent
Why not use newtypes for these? Ie
Then you can control how they get used, they'll print distinctively in debug output, etc.