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