Struct rat_widget::text::core::TextString
source · 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?
todo: allow col=0, row=1
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.
- 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
- 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
- range must be valid
source§fn graphemes(
&self,
range: TextRange,
pos: TextPosition,
) -> Result<impl Iterator<Item = Grapheme<'_>> + Cursor, TextError>
fn graphemes( &self, range: TextRange, pos: TextPosition, ) -> Result<impl Iterator<Item = Grapheme<'_>> + Cursor, TextError>
Return a cursor over the graphemes of the range, start at the given position.
- range must be a valid range. row <= len_lines, col <= line_width of the row.
- pos must be inside of range.
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<impl Iterator<Item = Grapheme<'_>> + Cursor, TextError>
fn line_graphemes( &self, row: u32, ) -> Result<impl Iterator<Item = Grapheme<'_>> + Cursor, 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.
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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit)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