6 releases
0.1.0 | May 24, 2021 |
---|---|
0.0.10 | Jun 12, 2020 |
0.0.9 | Aug 17, 2018 |
0.0.7 | Jan 21, 2018 |
0.0.4 | Oct 24, 2015 |
#1141 in Data structures
43KB
723 lines
Chainbuf
Chained buffer of contigious byte chunks.
Simple usage
Plug the package into your app via Cargo:
[dependencies]
chainbuf = "0.0.4"
then use it:
extern crate chainbuf;
use chainbuf::Chain;
let mut chain = Chain::new();
chain.append_bytes("helloworld".as_bytes());
let some_bytes = chain.pullup(2);
Details of implementation
Chainbuf consists of linked list of nodes, with start
and end
offsets and a reference counted pointer to DataHolder. DataHolders can be
shared across different chains, so for mutation new nodes and data holders
are created (as in Copy-On-Write).
lib.rs
:
The main crate for the Chainbuf library.
... docs are to be written
Dependencies
~1.5MB
~35K SLoC