Crate xi_rope
Expand description
Trees for text.
Modules§
- breaks
- A module for representing a set of breaks, typically used for storing the result of line breaking.
- compare
- Fast comparison of rope regions, principally for diffing.
- delta
- A data structure for representing editing operations on ropes. It’s useful to explicitly represent these operations so they can be shared across multiple subsystems.
- diff
- Computing deltas between two ropes.
- engine
- An engine for handling edits (possibly from async sources) and undo. It conceptually represents the current text and all edit history for that text.
- find
- Implementation of string finding in ropes.
- interval
- Closed-open intervals, and operations on them.
- multiset
- A data structure for representing multi-subsets of sequences (typically strings).
- rope
- A rope data structure with a line count metric and (soon) other useful info.
- spans
- A module for representing spans (in an interval tree), useful for rich text annotations. It is parameterized over a data type, so can be used for storing different annotations.
- tree
- A general b-tree structure suitable for ropes and the like.
Structs§
- Cursor
- A data structure for traversing boundaries in a tree.
- Delta
- Represents changes to a document by describing the new document as a sequence of sections copied from the old document and of new inserted text. Deletions are represented by gaps in the ranges copied from the old document.
- Delta
Builder - A builder for creating new
Deltaobjects. - Interval
- A fancy version of Range
, representing a closed-open range; the interval [5, 7) is the set {5, 6}. - Lines
Metric - Rope
Info - Transformer
- A mapping from coordinates in the source sequence to coordinates in the sequence after the delta is applied.