an rope Build Status codecov Dependency Status MIT License

A rope is an efficient data structure for large mutable 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

Our Rope implementation aims to eventually function as a superset of Rust's String, providing the same API plus additional methods. Therefore, code which uses String can easily be ported to use Rope.

Rope provides two APIs for editing a Rope: a destructive, edit-in-place API whose methods match those of String, and a non-destructive, persistant API.