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.

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>)

Source§

impl<'a> TextBuffer for Cow<'a, str>

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

Implementors§