Skip to main content

TextBuffer

Trait TextBuffer 

Source
pub trait TextBuffer {
    // Required methods
    fn is_mutable(&self) -> bool;
    fn as_str(&self) -> &str;
    fn insert_text(&mut self, text: &str, char_index: usize) -> usize;
    fn delete_char_range(&mut self, char_range: Range<usize>);

    // Provided methods
    fn char_range(&self, char_range: Range<usize>) -> &str { ... }
    fn byte_index_from_char_index(&self, char_index: usize) -> usize { ... }
    fn clear(&mut self) { ... }
    fn replace(&mut self, text: &str) { ... }
    fn take(&mut self) -> String { ... }
}
Expand description

Trait constraining what types crate::TextEdit may use as an underlying buffer.

Most likely you will use a String which implements TextBuffer.

Required Methods§

Source

fn is_mutable(&self) -> bool

Can this text be edited?

Source

fn as_str(&self) -> &str

Returns this buffer as a str.

Source

fn insert_text(&mut self, text: &str, char_index: usize) -> usize

Inserts text text into this buffer at character index char_index.

§Notes

char_index is a character index, not a byte index.

§Return

Returns how many characters were successfully inserted

Source

fn delete_char_range(&mut self, char_range: Range<usize>)

Deletes a range of text char_range from this buffer.

§Notes

char_range is a character range, not a byte range.

Provided Methods§

Source

fn char_range(&self, char_range: Range<usize>) -> &str

Reads the given character range.

Source

fn byte_index_from_char_index(&self, char_index: usize) -> usize

Source

fn clear(&mut self)

Clears all characters in this buffer

Source

fn replace(&mut self, text: &str)

Replaces all contents of this string with text

Source

fn take(&mut self) -> String

Clears all characters in this buffer and returns a string of the contents.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl TextBuffer for String

Source§

fn is_mutable(&self) -> bool

Source§

fn as_str(&self) -> &str

Source§

fn insert_text(&mut self, text: &str, char_index: usize) -> usize

Source§

fn delete_char_range(&mut self, char_range: Range<usize>)

Source§

fn clear(&mut self)

Source§

fn replace(&mut self, text: &str)

Source§

fn take(&mut self) -> String

Source§

impl<'a> TextBuffer for &'a str

Immutable view of a &str!

Source§

fn is_mutable(&self) -> bool

Source§

fn as_str(&self) -> &str

Source§

fn insert_text(&mut self, _text: &str, _ch_idx: usize) -> usize

Source§

fn delete_char_range(&mut self, _ch_range: Range<usize>)

Implementors§