pub struct TextHandler { /* private fields */ }
Expand description
Flatten attributes that allow overlap
Implementations§
Source§impl TextHandler
impl TextHandler
Sourcepub fn new_detached() -> Self
pub fn new_detached() -> Self
Create a new container that is detached from the document.
The edits on a detached container will not be persisted. To attach the container to the document, please insert it into an attached container.
Sourcepub fn version_id(&self) -> Option<usize>
pub fn version_id(&self) -> Option<usize>
Get the version id of the richtext
This can be used to detect whether the richtext is changed
pub fn get_richtext_value(&self) -> LoroValue
pub fn is_empty(&self) -> bool
pub fn len_utf8(&self) -> usize
pub fn len_utf16(&self) -> usize
pub fn len_unicode(&self) -> usize
Sourcepub fn len_event(&self) -> usize
pub fn len_event(&self) -> usize
if wasm
feature is enabled, it is a UTF-16 length
otherwise, it is a Unicode length
pub fn diagnose(&self)
pub fn iter(&self, callback: impl FnMut(&str) -> bool)
Sourcepub fn char_at(&self, pos: usize) -> LoroResult<char>
pub fn char_at(&self, pos: usize) -> LoroResult<char>
pos
is a Event Index:
- if feature=“wasm”, pos is a UTF-16 index
- if feature!=“wasm”, pos is a Unicode index
Sourcepub fn slice(&self, start_index: usize, end_index: usize) -> LoroResult<String>
pub fn slice(&self, start_index: usize, end_index: usize) -> LoroResult<String>
start_index
and end_index
are Event Index:
- if feature=“wasm”, pos is a UTF-16 index
- if feature!=“wasm”, pos is a Unicode index
Sourcepub fn splice(&self, pos: usize, len: usize, s: &str) -> LoroResult<String>
pub fn splice(&self, pos: usize, len: usize, s: &str) -> LoroResult<String>
pos
is a Event Index:
- if feature=“wasm”, pos is a UTF-16 index
- if feature!=“wasm”, pos is a Unicode index
This method requires auto_commit to be enabled.
pub fn splice_utf8(&self, pos: usize, len: usize, s: &str) -> LoroResult<()>
Sourcepub fn insert(&self, pos: usize, s: &str) -> LoroResult<()>
pub fn insert(&self, pos: usize, s: &str) -> LoroResult<()>
pos
is a Event Index:
- if feature=“wasm”, pos is a UTF-16 index
- if feature!=“wasm”, pos is a Unicode index
This method requires auto_commit to be enabled.
pub fn insert_utf8(&self, pos: usize, s: &str) -> LoroResult<()>
pub fn insert_unicode(&self, pos: usize, s: &str) -> LoroResult<()>
Sourcepub fn insert_with_txn(
&self,
txn: &mut Transaction,
pos: usize,
s: &str,
) -> LoroResult<()>
pub fn insert_with_txn( &self, txn: &mut Transaction, pos: usize, s: &str, ) -> LoroResult<()>
pos
is a Event Index:
- if feature=“wasm”, pos is a UTF-16 index
- if feature!=“wasm”, pos is a Unicode index
pub fn insert_with_txn_utf8( &self, txn: &mut Transaction, pos: usize, s: &str, ) -> LoroResult<()>
Sourcepub fn delete(&self, pos: usize, len: usize) -> LoroResult<()>
pub fn delete(&self, pos: usize, len: usize) -> LoroResult<()>
pos
is a Event Index:
- if feature=“wasm”, pos is a UTF-16 index
- if feature!=“wasm”, pos is a Unicode index
This method requires auto_commit to be enabled.
pub fn delete_utf8(&self, pos: usize, len: usize) -> LoroResult<()>
pub fn delete_unicode(&self, pos: usize, len: usize) -> LoroResult<()>
Sourcepub fn delete_with_txn(
&self,
txn: &mut Transaction,
pos: usize,
len: usize,
) -> LoroResult<()>
pub fn delete_with_txn( &self, txn: &mut Transaction, pos: usize, len: usize, ) -> LoroResult<()>
pos
is a Event Index:
- if feature=“wasm”, pos is a UTF-16 index
- if feature!=“wasm”, pos is a Unicode index
Sourcepub fn mark(
&self,
start: usize,
end: usize,
key: impl Into<InternalString>,
value: LoroValue,
) -> LoroResult<()>
pub fn mark( &self, start: usize, end: usize, key: impl Into<InternalString>, value: LoroValue, ) -> LoroResult<()>
start
and end
are [Event Index]s:
- if feature=“wasm”, pos is a UTF-16 index
- if feature!=“wasm”, pos is a Unicode index
This method requires auto_commit to be enabled.
Sourcepub fn unmark(
&self,
start: usize,
end: usize,
key: impl Into<InternalString>,
) -> LoroResult<()>
pub fn unmark( &self, start: usize, end: usize, key: impl Into<InternalString>, ) -> LoroResult<()>
start
and end
are [Event Index]s:
- if feature=“wasm”, pos is a UTF-16 index
- if feature!=“wasm”, pos is a Unicode index
This method requires auto_commit to be enabled.
Sourcepub fn mark_with_txn(
&self,
txn: &mut Transaction,
start: usize,
end: usize,
key: impl Into<InternalString>,
value: LoroValue,
is_delete: bool,
) -> LoroResult<()>
pub fn mark_with_txn( &self, txn: &mut Transaction, start: usize, end: usize, key: impl Into<InternalString>, value: LoroValue, is_delete: bool, ) -> LoroResult<()>
start
and end
are [Event Index]s:
- if feature=“wasm”, pos is a UTF-16 index
- if feature!=“wasm”, pos is a Unicode index
pub fn check(&self)
pub fn apply_delta(&self, delta: &[TextDelta]) -> LoroResult<()>
pub fn apply_delta_with_txn( &self, txn: &mut Transaction, delta: &[TextDelta], ) -> LoroResult<()>
pub fn update( &self, text: &str, options: UpdateOptions, ) -> Result<(), UpdateTimeoutError>
pub fn update_by_line( &self, text: &str, options: UpdateOptions, ) -> Result<(), UpdateTimeoutError>
pub fn to_string(&self) -> String
pub fn get_cursor(&self, event_index: usize, side: Side) -> Option<Cursor>
pub fn is_deleted(&self) -> bool
pub fn push_str(&self, s: &str) -> LoroResult<()>
pub fn clear(&self) -> LoroResult<()>
Trait Implementations§
Source§impl Clone for TextHandler
impl Clone for TextHandler
Source§fn clone(&self) -> TextHandler
fn clone(&self) -> TextHandler
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for TextHandler
impl Debug for TextHandler
Source§impl HandlerTrait for TextHandler
impl HandlerTrait for TextHandler
fn to_handler(&self) -> Handler
Source§fn attach(
&self,
txn: &mut Transaction,
parent: &BasicHandler,
self_id: ContainerID,
) -> LoroResult<Self>
fn attach( &self, txn: &mut Transaction, parent: &BasicHandler, self_id: ContainerID, ) -> LoroResult<Self>
fn attached_handler(&self) -> Option<&BasicHandler>
fn get_value(&self) -> LoroValue
fn get_deep_value(&self) -> LoroValue
fn is_attached(&self) -> bool
fn kind(&self) -> ContainerType
Source§fn get_attached(&self) -> Option<Self>
fn get_attached(&self) -> Option<Self>
fn from_handler(h: Handler) -> Option<Self>
fn doc(&self) -> Option<LoroDoc>
fn parent(&self) -> Option<Handler>
fn idx(&self) -> ContainerIdx
fn id(&self) -> ContainerID
fn with_state<R>( &self, f: impl FnOnce(&mut State) -> LoroResult<R>, ) -> LoroResult<R>
Auto Trait Implementations§
impl Freeze for TextHandler
impl RefUnwindSafe for TextHandler
impl Send for TextHandler
impl Sync for TextHandler
impl Unpin for TextHandler
impl UnwindSafe for TextHandler
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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self
with the foreground set to
value
.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red()
and
green()
, which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg()
:
use yansi::{Paint, Color};
painted.fg(Color::White);
Set foreground color to white using white()
.
use yansi::Paint;
painted.white();
Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self
with the background set to
value
.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red()
and
on_green()
, which have the same functionality but
are pithier.
§Example
Set background color to red using fg()
:
use yansi::{Paint, Color};
painted.bg(Color::Red);
Set background color to red using on_red()
.
use yansi::Paint;
painted.on_red();
Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute
value
.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold()
and
underline()
, which have the same functionality
but are pithier.
§Example
Make text bold using attr()
:
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);
Make text bold using using bold()
.
use yansi::Paint;
painted.bold();
Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi
Quirk
value
.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask()
and
wrap()
, which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk()
:
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);
Enable wrapping using wrap()
.
use yansi::Paint;
painted.wrap();
Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition
value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted
only when both stdout
and stderr
are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);