pub struct DefaultItem {
pub title: String,
pub desc: String,
}Expand description
A simple list item with title and description text.
This struct represents a basic list item that can be used with the DefaultDelegate
for rendering in list components. It provides a straightforward implementation of the
Item trait with built-in support for filtering and display formatting.
§Structure
Each DefaultItem contains:
- A title: The primary text displayed prominently
- A description: Secondary text shown below the title (when enabled)
Both fields are always present but the description display can be controlled
by the delegate’s show_description setting.
§Usage
DefaultItem is designed to work seamlessly with DefaultDelegate and provides
sensible defaults for most list use cases. For more complex item types with
custom data, implement the Item trait directly.
§Examples
use bubbletea_widgets::list::DefaultItem;
// Create a simple item
let item = DefaultItem::new("Task 1", "Complete the documentation");
println!("{}", item); // Displays: "Task 1"
// Create items for a todo list
let todos = vec![
DefaultItem::new("Buy groceries", "Milk, bread, eggs"),
DefaultItem::new("Write code", "Implement the new feature"),
DefaultItem::new("Review PRs", "Check team submissions"),
];Fields§
§title: StringMain item text.
desc: StringSecondary item text (optional display).
Implementations§
Source§impl DefaultItem
impl DefaultItem
Sourcepub fn new(title: &str, desc: &str) -> Self
pub fn new(title: &str, desc: &str) -> Self
Creates a new default item with the specified title and description.
This constructor creates a new DefaultItem with the provided title and description
text. Both parameters are converted to owned String values for storage.
§Arguments
title- The primary text to display for this item. This will be shown prominently and is used for filtering operations.desc- The secondary descriptive text. This provides additional context and is displayed below the title whenshow_descriptionis enabled.
§Returns
A new DefaultItem instance with the specified title and description.
§Examples
use bubbletea_widgets::list::DefaultItem;
// Create a task item
let task = DefaultItem::new("Review code", "Check the pull request from yesterday");
// Create a menu item
let menu_item = DefaultItem::new("Settings", "Configure application preferences");
// Create an item with empty description
let simple_item = DefaultItem::new("Simple Item", "");Trait Implementations§
Source§impl Clone for DefaultItem
impl Clone for DefaultItem
Source§fn clone(&self) -> DefaultItem
fn clone(&self) -> DefaultItem
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for DefaultItem
impl Debug for DefaultItem
Source§impl Display for DefaultItem
impl Display for DefaultItem
Source§fn fmt(&self, f: &mut Formatter<'_>) -> Result
fn fmt(&self, f: &mut Formatter<'_>) -> Result
Formats the item for display, showing only the title.
This implementation provides a string representation of the item using only the title field. The description is not included in the display output, following the pattern where descriptions are shown separately in list rendering.
§Examples
use bubbletea_widgets::list::DefaultItem;
let item = DefaultItem::new("My Task", "This is a description");
assert_eq!(format!("{}", item), "My Task");Source§impl Item for DefaultItem
impl Item for DefaultItem
Source§fn filter_value(&self) -> String
fn filter_value(&self) -> String
Returns the text used for filtering this item.
This implementation returns the item’s title, which means that filtering operations will search and match against the title text. The description is not included in filtering to keep the search focused on the primary item identifier.
§Returns
A clone of the item’s title string that will be used for fuzzy matching during filtering operations.
§Examples
use bubbletea_widgets::list::{DefaultItem, Item};
let item = DefaultItem::new("Buy groceries", "Milk, bread, eggs");
assert_eq!(item.filter_value(), "Buy groceries");
// The filter will match against "Buy groceries", not the descriptionAuto Trait Implementations§
impl Freeze for DefaultItem
impl RefUnwindSafe for DefaultItem
impl Send for DefaultItem
impl Sync for DefaultItem
impl Unpin for DefaultItem
impl UnwindSafe for DefaultItem
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> 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