7 unstable releases (3 breaking)
Uses old Rust 2015
0.3.1 | Feb 10, 2017 |
---|---|
0.3.0 | Jan 14, 2017 |
0.2.0 | Jan 14, 2017 |
0.1.2 | Jan 9, 2017 |
0.0.1 | Dec 29, 2016 |
#2050 in Data structures
Used in persistent_rope
345KB
4.5K
SLoC
an rope
An immutable Rope data structure for storing large text documents. This implementation is a component of the an-editor
project.
A rope is an efficient data structure for large strings. It's essentially a binary tree whose leaves are strings.
For more information, see the following resources:
- http://scienceblogs.com/goodmath/2009/01/26/ropes-twining-together-strings/
- https://www.ibm.com/developerworks/library/j-ropes/
- http://citeseer.ist.psu.edu/viewdoc/download?doi=10.1.1.14.9450&rep=rep1&type=pdf
compatibility
an-rope
is built against the latest stable, beta, and nightly Rust releases, on macOS and Ubuntu. Some features rely on nightly Rust, and may not be available on other release channels.
cargo feature flags
tendril
: use thetendril
library to optimise performance for small strings.rebalance
: enable Rope rebalancing.atomic
: ensure Ropes are thread-safe (useArc
or atomictendril
s)unstable
: enable nightly Rust features. pass this flag if building on nightly Rust.
Dependencies
~0.7–1.8MB
~37K SLoC