Skip to main content

Model

Struct Model 

Source
pub struct Model {
    pub type_: Type,
    pub page: usize,
    pub per_page: usize,
    pub total_pages: usize,
    pub active_dot: String,
    pub inactive_dot: String,
    pub arabic_format: String,
    pub key_map: KeyMap,
}
Expand description

Model is the Bubble Tea model for this user interface.

Fields§

§type_: Type

Type configures how the pagination is rendered (Arabic, Dots).

§page: usize

Page is the current page number.

§per_page: usize

PerPage is the number of items per page.

§total_pages: usize

TotalPages is the total number of pages.

§active_dot: String

ActiveDot is used to mark the current page under the Dots display type.

§inactive_dot: String

InactiveDot is used to mark inactive pages under the Dots display type.

§arabic_format: String

ArabicFormat is the printf-style format to use for the Arabic display type.

§key_map: KeyMap

KeyMap encodes the keybindings recognized by the widget.

Implementations§

Source§

impl Model

Source

pub fn set_total_pages(&mut self, items: usize) -> usize

SetTotalPages is a helper function for calculating the total number of pages from a given number of items. Its use is optional since this pager can be used for other things beyond navigating sets. Note that it both returns the number of total pages and alters the model.

Source

pub fn items_on_page(&self, total_items: usize) -> usize

ItemsOnPage is a helper function for returning the number of items on the current page given the total number of items passed as an argument.

Source

pub fn get_slice_bounds(&self, length: usize) -> (usize, usize)

GetSliceBounds is a helper function for paginating slices. Pass the length of the slice you’re rendering and you’ll receive the start and end bounds corresponding to the pagination. For example:

let bunch_of_stuff = vec![1, 2, 3, 4, 5];
let (start, end) = model.get_slice_bounds(bunch_of_stuff.len());
let slice_to_render = &bunch_of_stuff[start..end];
Source

pub fn prev_page(&mut self)

PrevPage is a helper function for navigating one page backward. It will not page beyond the first page (i.e. page 0).

Source

pub fn next_page(&mut self)

NextPage is a helper function for navigating one page forward. It will not page beyond the last page (i.e. totalPages - 1).

Source

pub fn on_last_page(&self) -> bool

OnLastPage returns whether or not we’re on the last page.

Source

pub fn on_first_page(&self) -> bool

OnFirstPage returns whether or not we’re on the first page.

Source

pub fn update(&mut self, msg: &dyn Msg) -> Cmd

Update is the Tea update function which binds keystrokes to pagination.

Source

pub fn view(&self) -> String

View renders the pagination to a string.

Trait Implementations§

Source§

impl Clone for Model

Source§

fn clone(&self) -> Model

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Model

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for Model

§

impl RefUnwindSafe for Model

§

impl Send for Model

§

impl Sync for Model

§

impl Unpin for Model

§

impl UnsafeUnpin for Model

§

impl UnwindSafe for Model

Blanket Implementations§

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> 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<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> Msg for T
where T: Any + Send + Sync + Debug,

Source§

fn as_any(&self) -> &(dyn Any + 'static)

Helper to downcast to Any.
Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Consumes the boxed message and returns it as a Box<dyn Any>, so the program can move the concrete message out of the trait object (used to dispatch the commands carried by BatchMsg/SequenceMsg).
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. 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.