Create a rope holding given text.
Create a rope concatenating two other ropes.
Create a rope from given node.
Copy a Rope.
Get the last *byte* from the rope.
Iterate the rope by characters.
Perform deep-first search through leaf nodes of the rope.
Get the column the given index is on.
Count characters in the string. Iterates the whole rope.
Find the difference between the two ropes, in terms of a single contiguous region.
If true, the rope is empty.
Get the first *byte* from the rope.
Insert a new node into the rope.
True if the node is a leaf.
Get a leaf node that is a subrope starting with the given index. The length of the node may vary, and does not have to reach the end of the rope.
Get the left side of the rope
Get line in the rope by a byte index.
Get the index of the start or end of the line — from index of any character on the same line.
Get the index of the start or end of the line — from index of any character on the same line.
Assign a new value to the rope.
Concatenate two ropes together.
Concatenate with a string.
Get the rope's length.
Compare the text to a string.
Compare two ropes.
Return a mutable slice.
Get character at given index.
Slice the rope.
Append text to the rope.
Append another rope to the rope.
Remove the last byte from the rope.
Remove the first byte from the rope.
Replace value between two indexes with a new one.
Replace given substring with a new value
Get the right side of the rope
Split the rope, creating a new root node that connects the left and right side of the split.
Get a hash of the rope.
Put the rope's contents inside given output range.
Get the value of this rope. Only works for leaf nodes.
Depth of the node.
Content of the rope if it's a leaf. Not sliced; to get the text with the slice applied, use value.
Start and length of the rope, in UTF-8 bytes.
Content of the rope, if it contains children.
Start and length of the rope, in UTF-8 bytes.
Rope implementation, providing more efficient modification if there's lots of text.
The Rope structure acts as a slice, a view into the rope's contents. If additional text is added to a node stored inside, the change will not be reflected by the rope.
rope.init is guaranteed to be valid and empty.