pub struct TextString { /* private fields */ }Expand description
Single line text-store.
Implementations§
Source§impl TextString
impl TextString
Sourcepub fn new() -> TextString
pub fn new() -> TextString
New empty.
Sourcepub fn new_text(t: &str) -> TextString
pub fn new_text(t: &str) -> TextString
New from string.
Sourcepub fn new_string(t: String) -> TextString
pub fn new_string(t: String) -> TextString
New from string.
Trait Implementations§
Source§impl Clone for TextString
impl Clone for TextString
Source§fn clone(&self) -> TextString
fn clone(&self) -> TextString
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for TextString
impl Debug for TextString
Source§impl Default for TextString
impl Default for TextString
Source§fn default() -> TextString
fn default() -> TextString
Source§impl TextStore for TextString
impl TextStore for TextString
Source§fn is_multi_line(&self) -> bool
fn is_multi_line(&self) -> bool
Can store multi-line content?
Source§fn set_string(&mut self, t: &str)
fn set_string(&mut self, t: &str)
Set content as string.
Source§fn byte_range_at(&self, pos: TextPosition) -> Result<Range<usize>, TextError>
fn byte_range_at(&self, pos: TextPosition) -> Result<Range<usize>, TextError>
Grapheme position to byte position. This is the (start,end) position of the single grapheme after pos.
- pos must be a valid position: row <= len_lines, col <= line_width of the row.
Source§fn byte_range(&self, range: TextRange) -> Result<Range<usize>, TextError>
fn byte_range(&self, range: TextRange) -> Result<Range<usize>, TextError>
Grapheme range to byte range.
Allows the special text-position (0,1) as a substitute for EOL.
- range must be a valid range. row <= len_lines, col <= line_width of the row.
Source§fn byte_to_pos(&self, byte_pos: usize) -> Result<TextPosition, TextError>
fn byte_to_pos(&self, byte_pos: usize) -> Result<TextPosition, TextError>
Byte position to grapheme position. Returns the position that contains the given byte index.
- byte must <= byte-len.
Source§fn bytes_to_range(&self, bytes: Range<usize>) -> Result<TextRange, TextError>
fn bytes_to_range(&self, bytes: Range<usize>) -> Result<TextRange, TextError>
Byte range to grapheme range.
- byte must <= byte-len.
Source§fn str_slice(&self, range: TextRange) -> Result<Cow<'_, str>, TextError>
fn str_slice(&self, range: TextRange) -> Result<Cow<'_, str>, TextError>
A range of the text as Cow<str>.
- range must be a valid range. row <= len_lines, col <= line_width of the row.
- pos must be inside of range.
Source§fn str_slice_byte(&self, range: Range<usize>) -> Result<Cow<'_, str>, TextError>
fn str_slice_byte(&self, range: Range<usize>) -> Result<Cow<'_, str>, TextError>
A range of the text as Cow<str>.
- range must be valid
Source§fn line_at(&self, row: u32) -> Result<Cow<'_, str>, TextError>
fn line_at(&self, row: u32) -> Result<Cow<'_, str>, TextError>
Line as str.
- row must be <= len_lines
Source§fn lines_at(
&self,
row: u32,
) -> Result<impl Iterator<Item = Cow<'_, str>>, TextError>
fn lines_at( &self, row: u32, ) -> Result<impl Iterator<Item = Cow<'_, str>>, TextError>
Iterate over text-lines, starting at line-offset.
- row must be <= len_lines
Source§fn line_graphemes(
&self,
row: u32,
) -> Result<<TextString as TextStore>::GraphemeIter<'_>, TextError>
fn line_graphemes( &self, row: u32, ) -> Result<<TextString as TextStore>::GraphemeIter<'_>, TextError>
Return a line as an iterator over the graphemes. This contains the ‘\n’ at the end.
- row must be <= len_lines
Source§fn line_width(&self, row: u32) -> Result<u32, TextError>
fn line_width(&self, row: u32) -> Result<u32, TextError>
Line width of row as grapheme count. Excludes the terminating ‘\n’.
- row must be <= len_lines
Source§fn insert_char(
&mut self,
pos: TextPosition,
c: char,
) -> Result<(TextRange, Range<usize>), TextError>
fn insert_char( &mut self, pos: TextPosition, c: char, ) -> Result<(TextRange, Range<usize>), TextError>
Insert a char at the given position.
- range must be a valid range. row <= len_lines, col <= line_width of the row.
Source§fn insert_str(
&mut self,
pos: TextPosition,
t: &str,
) -> Result<(TextRange, Range<usize>), TextError>
fn insert_str( &mut self, pos: TextPosition, t: &str, ) -> Result<(TextRange, Range<usize>), TextError>
Insert a str at position.
Source§fn remove(
&mut self,
range: TextRange,
) -> Result<(String, (TextRange, Range<usize>)), TextError>
fn remove( &mut self, range: TextRange, ) -> Result<(String, (TextRange, Range<usize>)), TextError>
Remove a range.
Source§fn insert_b(&mut self, byte_pos: usize, t: &str) -> Result<(), TextError>
fn insert_b(&mut self, byte_pos: usize, t: &str) -> Result<(), TextError>
Insert a string at the given byte index.
Source§fn remove_b(&mut self, byte_range: Range<usize>) -> Result<(), TextError>
fn remove_b(&mut self, byte_range: Range<usize>) -> Result<(), TextError>
Remove the given byte-range.
type GraphemeIter<'a> = StrGraphemes<'a>
Source§fn has_final_newline(&self) -> bool
fn has_final_newline(&self) -> bool
Source§fn cache_validity(&self) -> Option<usize>
fn cache_validity(&self) -> Option<usize>
Source§fn graphemes_byte(
&self,
range: Range<usize>,
pos: usize,
) -> Result<<TextString as TextStore>::GraphemeIter<'_>, TextError>
fn graphemes_byte( &self, range: Range<usize>, pos: usize, ) -> Result<<TextString as TextStore>::GraphemeIter<'_>, TextError>
Auto Trait Implementations§
impl !Freeze for TextString
impl !RefUnwindSafe for TextString
impl Send for TextString
impl !Sync for TextString
impl Unpin for TextString
impl UnsafeUnpin for TextString
impl UnwindSafe for TextString
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more