Struct Model

Source
pub struct Model<I: Item> {
    pub title: String,
    pub filter_input: Model,
    pub paginator: Model,
    pub spinner: Model,
    pub help: Model,
    pub keymap: ListKeyMap,
    pub styles: ListStyles,
    /* private fields */
}
Expand description

List model containing items, filtering, pagination, and styling.

Fields§

§title: String

Title rendered in the list header when not filtering.

§filter_input: Model

Text input used for entering the filter term.

§paginator: Model

Paginator controlling visible item slice.

§spinner: Model

Spinner used during expensive operations (optional usage).

§help: Model

Help model for displaying key bindings.

§keymap: ListKeyMap

Key bindings for list navigation and filtering.

§styles: ListStyles

Visual styles for list elements and states.

Implementations§

Source§

impl<I: Item + Send + Sync + 'static> Model<I>

Source

pub fn new( items: Vec<I>, delegate: impl ItemDelegate<I> + Send + Sync + 'static, width: usize, height: usize, ) -> Self

Creates a new list with items, delegate, and initial dimensions.

Source

pub fn set_items(&mut self, items: Vec<I>)

Replace all items in the list and reset pagination if needed.

Source

pub fn visible_items(&self) -> Vec<I>

Returns a copy of the items currently visible (filtered if applicable).

Source

pub fn set_filter_text(&mut self, s: &str)

Sets the filter input text.

Source

pub fn set_filter_state(&mut self, st: FilterState)

Sets the current filtering state.

Source

pub fn set_status_bar_item_name(&mut self, singular: &str, plural: &str)

Sets the singular/plural nouns used in the status bar.

Source

pub fn status_view(&self) -> String

Renders the status bar string, including position and help.

Source

pub fn matches_for_original_item( &self, original_index: usize, ) -> Option<&Vec<usize>>

Get matches for an item by its original index in the full items list. Returns None if the item doesn’t have matches (unfiltered or didn’t match filter).

Source

pub fn with_title(self, title: &str) -> Self

Sets the list title and returns self for chaining.

Source

pub fn selected_item(&self) -> Option<&I>

Returns a reference to the currently selected item, if any.

Source

pub fn cursor(&self) -> usize

Returns the current cursor position (0-based).

Source

pub fn len(&self) -> usize

Returns the number of items in the current view (filtered or not).

Source

pub fn is_empty(&self) -> bool

Returns true if there are no items to display.

Trait Implementations§

Source§

impl<I: Item> KeyMap for Model<I>

Source§

fn short_help(&self) -> Vec<&Binding>

Returns a slice of key bindings for the short help view.
Source§

fn full_help(&self) -> Vec<Vec<&Binding>>

Returns a nested slice of key bindings for the full help view. Each inner slice represents a column in the help view.
Source§

impl<I: Item + Send + Sync + 'static> Model for Model<I>

Source§

fn init() -> (Self, Option<Cmd>)

Initialize the model with its initial state and optional startup command. Read more
Source§

fn update(&mut self, msg: Msg) -> Option<Cmd>

Update the model in response to a received message. Read more
Source§

fn view(&self) -> String

Render the current model state as a string for terminal display. Read more

Auto Trait Implementations§

§

impl<I> Freeze for Model<I>

§

impl<I> !RefUnwindSafe for Model<I>

§

impl<I> Send for Model<I>
where I: Send,

§

impl<I> !Sync for Model<I>

§

impl<I> Unpin for Model<I>
where I: Unpin,

§

impl<I> !UnwindSafe for Model<I>

Blanket Implementations§

Source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where 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) -> D
where M: TransformMatrix<T>,

Convert the source color to the destination color using the specified method.
Source§

fn adapt_into(self) -> D

Convert the source color to the destination color using the bradford method by default.
Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T, C> ArraysFrom<C> for T
where C: IntoArrays<T>,

Source§

fn arrays_from(colors: C) -> T

Cast a collection of colors into a collection of arrays.
Source§

impl<T, C> ArraysInto<C> for T
where C: FromArrays<T>,

Source§

fn arrays_into(self) -> C

Cast this collection of arrays into a collection of colors.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for U
where T: FromCam16Unclamped<WpParam, U>,

Source§

type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar

The number type that’s used in parameters when converting.
Source§

fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T

Converts self into C, using the provided parameters.
Source§

impl<T, C> ComponentsFrom<C> for T
where C: IntoComponents<T>,

Source§

fn components_from(colors: C) -> T

Cast a collection of colors into a collection of color components.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromAngle<T> for T

Source§

fn from_angle(angle: T) -> T

Performs a conversion from angle.
Source§

impl<T, U> FromStimulus<U> for T
where U: IntoStimulus<T>,

Source§

fn from_stimulus(other: U) -> T

Converts other into Self, while performing the appropriate scaling, rounding and clamping.
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> IntoAngle<U> for T
where U: FromAngle<T>,

Source§

fn into_angle(self) -> U

Performs a conversion into T.
Source§

impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for U
where T: Cam16FromUnclamped<WpParam, U>,

Source§

type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar

The number type that’s used in parameters when converting.
Source§

fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T

Converts self into C, using the provided parameters.
Source§

impl<T, U> IntoColor<U> for T
where U: FromColor<T>,

Source§

fn into_color(self) -> U

Convert into T with values clamped to the color defined bounds Read more
Source§

impl<T, U> IntoColorUnclamped<U> for T
where U: FromColorUnclamped<T>,

Source§

fn into_color_unclamped(self) -> U

Convert into T. The resulting color might be invalid in its color space Read more
Source§

impl<T> IntoStimulus<T> for T

Source§

fn into_stimulus(self) -> T

Converts self into T, while performing the appropriate scaling, rounding and clamping.
Source§

impl<T, C> TryComponentsInto<C> for T
where C: TryFromComponents<T>,

Source§

type Error = <C as TryFromComponents<T>>::Error

The error for when try_into_colors fails to cast.
Source§

fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>

Try to cast this collection of color components into a collection of colors. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T, U> TryIntoColor<U> for T
where U: TryFromColor<T>,

Source§

fn try_into_color(self) -> Result<U, OutOfBounds<U>>

Convert into T, returning ok if the color is inside of its defined range, otherwise an OutOfBounds error is returned which contains the unclamped color. Read more
Source§

impl<C, U> UintsFrom<C> for U
where C: IntoUints<U>,

Source§

fn uints_from(colors: C) -> U

Cast a collection of colors into a collection of unsigned integers.
Source§

impl<C, U> UintsInto<C> for U
where C: FromUints<U>,

Source§

fn uints_into(self) -> C

Cast this collection of unsigned integers into a collection of colors.