pub struct CheckTreeItem<'text, Identifier> { /* private fields */ }Expand description
One item inside a CheckTree.
Can have zero or more children.
§Identifier
The generic argument Identifier is used to keep the state like the currently selected or opened CheckTreeItems in the CheckTreeState.
It needs to be unique among its siblings but can be used again on parent or child CheckTreeItems.
A common example would be a filename which has to be unique in its directory while it can exist in another.
The text can be different from its identifier.
To repeat the filename analogy: File browsers sometimes hide file extensions.
The filename main.rs is the identifier while its shown as main.
Two files main.rs and main.toml can exist in the same directory and can both be displayed as main but their identifier is different.
Just like every file in a file system can be uniquely identified with its file and directory names each CheckTreeItem in a CheckTree can be with these identifiers.
As an example the following two identifiers describe the main file in a Rust cargo project: vec!["src", "main.rs"].
Implementations§
Source§impl<'items> CheckTreeItem<'items, String>
impl<'items> CheckTreeItem<'items, String>
Sourcepub fn new_with_items<'a, 'text, Item, LeafFn>(
items: &'items [Item],
identifier: impl AsRef<str>,
text: impl Into<Text<'text>>,
leaf_fn: LeafFn,
) -> Result<Self, Error>
pub fn new_with_items<'a, 'text, Item, LeafFn>( items: &'items [Item], identifier: impl AsRef<str>, text: impl Into<Text<'text>>, leaf_fn: LeafFn, ) -> Result<Self, Error>
Create a CheckTreeState from a list of things
§Errors
returns an error if the tree state cannot be created (e.g. duplicate ids)
Source§impl<'text, Identifier> CheckTreeItem<'text, Identifier>
impl<'text, Identifier> CheckTreeItem<'text, Identifier>
Sourcepub fn new_leaf<T>(identifier: Identifier, text: T) -> Self
pub fn new_leaf<T>(identifier: Identifier, text: T) -> Self
Create a new CheckTreeItem without children.
Sourcepub fn new<T>(
identifier: Identifier,
text: T,
children: Vec<Self>,
) -> Result<Self>
pub fn new<T>( identifier: Identifier, text: T, children: Vec<Self>, ) -> Result<Self>
Create a new CheckTreeItem with children.
§Errors
Errors when there are duplicate identifiers in the children.
Sourcepub const fn identifier(&self) -> &Identifier
pub const fn identifier(&self) -> &Identifier
Get a reference to the identifier.
pub fn children(&self) -> &[Self]
Sourcepub fn child_mut(&mut self, index: usize) -> Option<&mut Self>
pub fn child_mut(&mut self, index: usize) -> Option<&mut Self>
Get a mutable reference to a child by index.
When you choose to change the identifier the CheckTreeState might not work as expected afterwards.
pub fn height(&self) -> usize
Trait Implementations§
Source§impl<'text, Identifier: Clone> Clone for CheckTreeItem<'text, Identifier>
impl<'text, Identifier: Clone> Clone for CheckTreeItem<'text, Identifier>
Source§fn clone(&self) -> CheckTreeItem<'text, Identifier>
fn clone(&self) -> CheckTreeItem<'text, Identifier>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl<'text, Identifier> Freeze for CheckTreeItem<'text, Identifier>where
Identifier: Freeze,
impl<'text, Identifier> RefUnwindSafe for CheckTreeItem<'text, Identifier>where
Identifier: RefUnwindSafe,
impl<'text, Identifier> Send for CheckTreeItem<'text, Identifier>where
Identifier: Send,
impl<'text, Identifier> Sync for CheckTreeItem<'text, Identifier>where
Identifier: Sync,
impl<'text, Identifier> Unpin for CheckTreeItem<'text, Identifier>where
Identifier: Unpin,
impl<'text, Identifier> UnwindSafe for CheckTreeItem<'text, Identifier>where
Identifier: UnwindSafe,
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request