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 |
#1015 in Data structures
43KB
723 lines
The main crate for the Chainbuf library.
... docs are to be written
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).
Dependencies
~1.5MB
~35K SLoC