pub struct TreeHandler { /* private fields */ }
Implementations§
Source§impl TreeHandler
impl TreeHandler
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/synced. To attach the container to the document, please insert it into an attached container.
pub fn delete(&self, target: TreeID) -> LoroResult<()>
pub fn create(&self, parent: TreeParentId) -> LoroResult<TreeID>
pub fn create_at( &self, parent: TreeParentId, index: usize, ) -> LoroResult<TreeID>
pub fn mov(&self, target: TreeID, parent: TreeParentId) -> LoroResult<()>
pub fn mov_after(&self, target: TreeID, other: TreeID) -> LoroResult<()>
pub fn mov_before(&self, target: TreeID, other: TreeID) -> LoroResult<()>
pub fn move_to( &self, target: TreeID, parent: TreeParentId, index: usize, ) -> LoroResult<()>
pub fn get_meta(&self, target: TreeID) -> LoroResult<MapHandler>
pub fn is_node_unexist(&self, target: &TreeID) -> bool
pub fn is_node_deleted(&self, target: &TreeID) -> LoroResult<bool>
Sourcepub fn get_node_parent(&self, target: &TreeID) -> Option<TreeParentId>
pub fn get_node_parent(&self, target: &TreeID) -> Option<TreeParentId>
Get the parent of the node, if the node does not exist, return None
pub fn children(&self, parent: &TreeParentId) -> Option<Vec<TreeID>>
pub fn children_num(&self, parent: &TreeParentId) -> Option<usize>
Sourcepub fn contains(&self, target: TreeID) -> bool
pub fn contains(&self, target: TreeID) -> bool
Check if the node is exist. include deleted node.
pub fn get_child_at( &self, parent: &TreeParentId, index: usize, ) -> Option<TreeID>
pub fn is_parent(&self, target: &TreeID, parent: &TreeParentId) -> bool
pub fn get_nodes_under(&self, parent: TreeParentId) -> Vec<TreeNode>
pub fn roots(&self) -> Vec<TreeID>
pub fn get_all_hierarchy_nodes_under( &self, parent: TreeParentId, ) -> Vec<TreeNodeWithChildren>
pub fn __internal__next_tree_id(&self) -> TreeID
Sourcepub fn get_index_by_tree_id(&self, target: &TreeID) -> Option<usize>
pub fn get_index_by_tree_id(&self, target: &TreeID) -> Option<usize>
Get the index of the target node in the parent node
O(logN)
pub fn get_position_by_tree_id( &self, target: &TreeID, ) -> Option<FractionalIndex>
pub fn is_fractional_index_enabled(&self) -> bool
Sourcepub fn enable_fractional_index(&self, jitter: u8)
pub fn enable_fractional_index(&self, jitter: u8)
Set whether to generate fractional index for Tree Position. The LoroDoc is set to use jitter 0 by default.
The jitter is used to avoid conflicts when multiple users are creating the node at the same position. value 0 is default, which means no jitter, any value larger than 0 will enable jitter.
Generally speaking, jitter will affect the growth rate of document size. Read more about it
Sourcepub fn disable_fractional_index(&self)
pub fn disable_fractional_index(&self)
Disable the fractional index generation for Tree Position when you don’t need the Tree’s siblings to be sorted. The fractional index will be always default.
The LoroDoc is set to disable fractional index by default.
pub fn is_deleted(&self) -> bool
pub fn is_empty(&self) -> bool
pub fn get_last_move_id(&self, target: &TreeID) -> Option<ID>
pub fn clear(&self) -> LoroResult<()>
Trait Implementations§
Source§impl Clone for TreeHandler
impl Clone for TreeHandler
Source§fn clone(&self) -> TreeHandler
fn clone(&self) -> TreeHandler
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for TreeHandler
impl Debug for TreeHandler
Source§impl HandlerTrait for TreeHandler
impl HandlerTrait for TreeHandler
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 is_attached(&self) -> bool
fn attached_handler(&self) -> Option<&BasicHandler>
fn get_value(&self) -> LoroValue
fn get_deep_value(&self) -> LoroValue
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 TreeHandler
impl RefUnwindSafe for TreeHandler
impl Send for TreeHandler
impl Sync for TreeHandler
impl Unpin for TreeHandler
impl UnwindSafe for TreeHandler
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);