Struct ropey::RopeBuilder [−][src]
pub struct RopeBuilder { /* fields omitted */ }
An efficient incremental Rope
builder.
This is used to efficiently build ropes from sequences of text chunks. It is useful for creating ropes from:
- ...large text files, without pre-loading their entire contents into
memory (but see
Rope::from_reader()
which uses this internally for precisely that use-case). - ...streaming data sources.
- ...non-utf8 text data, doing the encoding conversion incrementally as you go.
Unlike repeatedly calling Rope::insert()
on the end of a rope,
this API runs in time linear to the amount of data fed to it, and
is overall much faster.
The converse of this API is the Chunks
iterator, which is useful for efficiently streaming a rope's text
data out.
Example
let mut builder = RopeBuilder::new(); builder.append("Hello "); builder.append("world!\n"); builder.append("How's "); builder.append("it goin"); builder.append("g?"); let rope = builder.finish(); assert_eq!(rope, "Hello world!\nHow's it going?");
Methods
impl RopeBuilder
[src]
impl RopeBuilder
pub fn new() -> Self
[src]
pub fn new() -> Self
Creates a new RopeBuilder, ready for input.
pub fn append(&mut self, chunk: &str)
[src]
pub fn append(&mut self, chunk: &str)
Appends chunk
to the end of the in-progress Rope
.
This method is called repeatedly to incrementally build up a
Rope
. The passed text chunk can be as large or small as
desired, but larger chunks are more efficient.
chunk
must be valid utf8 text.
pub fn finish(self) -> Rope
[src]
pub fn finish(self) -> Rope
Finishes the build, and returns the Rope
.
Note: this method consumes the builder. If you want to continue
building other ropes with the same prefix, you can clone the builder
before calling finish()
.
Trait Implementations
impl Debug for RopeBuilder
[src]
impl Debug for RopeBuilder
fn fmt(&self, f: &mut Formatter) -> Result
[src]
fn fmt(&self, f: &mut Formatter) -> Result
Formats the value using the given formatter. Read more
impl Clone for RopeBuilder
[src]
impl Clone for RopeBuilder
fn clone(&self) -> RopeBuilder
[src]
fn clone(&self) -> RopeBuilder
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
Auto Trait Implementations
impl Send for RopeBuilder
impl Send for RopeBuilder
impl Sync for RopeBuilder
impl Sync for RopeBuilder