pub struct TextRope { /* private fields */ }Expand description
Text store with a rope.
Implementations§
Trait Implementations§
Source§impl TextStore for TextRope
impl TextStore for TextRope
Source§fn is_multi_line(&self) -> bool
fn is_multi_line(&self) -> bool
Can store multi-line content?
If this returns false it is an error to call any function with
a row other than 0.
Source§fn cache_validity(&self) -> Option<usize>
fn cache_validity(&self) -> Option<usize>
Minimum byte position that has been changed since the last call of min_changed().
Used to invalidate caches.
Source§fn set_string(&mut self, t: &str)
fn set_string(&mut self, t: &str)
Set content.
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<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>.
The byte-range must be a valid range.
Source§fn graphemes_byte(
&self,
range: Range<usize>,
pos: usize,
) -> Result<<TextRope as TextStore>::GraphemeIter<'_>, TextError>
fn graphemes_byte( &self, range: Range<usize>, pos: usize, ) -> Result<<TextRope as TextStore>::GraphemeIter<'_>, TextError>
Return a cursor over the graphemes of the range, start at the given position.
- range must be a valid byte-range.
- 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<<TextRope as TextStore>::GraphemeIter<'_>, TextError>
fn line_graphemes( &self, row: u32, ) -> Result<<TextRope 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 as grapheme count. Excludes the terminating ‘\n’.
- row must be <= len_lines
Source§fn insert_char(
&mut self,
pos: TextPosition,
ch: char,
) -> Result<(TextRange, Range<usize>), TextError>
fn insert_char( &mut self, pos: TextPosition, ch: 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,
txt: &str,
) -> Result<(TextRange, Range<usize>), TextError>
fn insert_str( &mut self, pos: TextPosition, txt: &str, ) -> Result<(TextRange, Range<usize>), TextError>
Insert a text str at the given position.
- range must be a valid range. row <= len_lines, col <= line_width of the row.
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 the given text range.
- range must be a valid range. row <= len_lines, col <= line_width of the row.
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. Call this only for undo.
byte_pos must be <= len bytes.
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. Call this only for undo.
byte_pos must be <= len bytes.
type GraphemeIter<'a> = RopeGraphemes<'a>
Source§fn has_final_newline(&self) -> bool
fn has_final_newline(&self) -> bool
Auto Trait Implementations§
impl !Freeze for TextRope
impl !RefUnwindSafe for TextRope
impl Send for TextRope
impl !Sync for TextRope
impl Unpin for TextRope
impl UnwindSafe for TextRope
Blanket Implementations§
Source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
Source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
Source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
Source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
Source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
Source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
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<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
Source§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn cam16_into_unclamped(
self,
parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>,
) -> T
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
Source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> T
Source§impl<T> FromAngle<T> for T
impl<T> FromAngle<T> for T
Source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
angle.Source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
Source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
other into Self, while performing the appropriate scaling,
rounding and clamping.Source§impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
Source§fn into_angle(self) -> U
fn into_angle(self) -> U
T.Source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
Source§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn into_cam16_unclamped(
self,
parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>,
) -> T
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
Source§fn into_color(self) -> U
fn into_color(self) -> U
Source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
Source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
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 moreSource§impl<T> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
Source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
self into T, while performing the appropriate scaling,
rounding and clamping.Source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
Source§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
try_into_colors fails to cast.Source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
Source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
OutOfBounds error is returned which contains
the unclamped color. Read more