Skip to main content

Pager

Struct Pager 

Source
pub struct Pager { /* private fields */ }
Expand description

Pages content; returns when closed.

Implementations§

Source§

impl Pager

Source

pub fn new(renderable: impl Renderable + Send + Sync + 'static) -> Pager

Page renderable, rendered at the terminal’s width.

Source

pub fn lines(lines: Vec<Vec<Segment>>) -> Pager

Page lines already rendered.

Source

pub fn rebind(self, action: &str, keys: impl IntoIterator<Item = Key>) -> Self

Make keys do action (see pager_keymap and pager_search_keymap) on this pager only; no keys unbinds it.

Source

pub fn theme(self, theme: Theme) -> Self

Source

pub fn with_mouse(self, on: bool) -> Self

Report the mouse (#476): the wheel scrolls, and a click on a link (an OSC 8 hyperlink in the content) records it: see Pager::links. The pager never opens a link itself.

The links clicked while paging, in order: for the caller to open, print or ignore.

Source

pub fn sticky_header(self, lines: usize) -> Self

Keep the first lines lines on top while the rest scroll (#716): a header rendered with the content.

Source

pub fn sticky_table_header(self, on: bool) -> Self

Keep a table’s header on top while its rows scroll (#716), when the content starts with a table: its title, top edge and header rows, down to the line under the header, as table_header_rows finds them at each width. Content that does not start with a table scrolls as it is.

Source

pub fn sticky_rows(&self) -> usize

The lines that stay on top now.

Source

pub fn search(self, query: impl Into<String>) -> Self

Start with this search.

Trait Implementations§

Source§

impl Component for Pager

Source§

fn start(&mut self, context: &Context<'_>) -> Flow<()>

Render the content at the terminal’s width and, for a search given up front, show its first match.

Source§

fn prompt(&mut self, io: &mut dyn LineIo) -> Result<Option<()>, NotInteractive>

Without a terminal, there is nothing to page: write it all.

Source§

type Output = ()

Source§

fn handle(&mut self, event: &Event, context: &Context<'_>) -> Flow<()>

Handle one event. Ctrl+C never arrives here: the event loop ends the component with Outcome::Interrupted.
Source§

fn keymap(&self) -> Keymap

The bindings this component has right now, for a help overlay, a shortcut list or status-bar hints to read (see keymap). A container’s include its focused child’s, before its own. The default declares none.
Source§

fn render(&self, context: &Context<'_>) -> View

Render the current state.
Source§

fn mouse(&self) -> bool

Whether the component wants mouse events (#476): clicks, drags and the wheel. Off by default, since reporting the mouse takes text selection away from the terminal; a component turns it on when its caller opts in, and run then enables mouse reporting for the session.
Source§

fn default_value(&self) -> Option<()>

The value to return when the terminal is not interactive and the policy asks for defaults. None: there is none.
Source§

fn tick(&self) -> Option<Duration>

How often the component wants Event::Tick, for a spinner or a countdown. None (the default): never.
Source§

fn focusable(&self) -> bool

Whether the component takes focus in a container: Tab stops on it and keys go to it. The default: yes. A label, or a component that has finished, says no.
Source§

fn focus_step(&mut self, forward: bool) -> bool

Move focus to the next (forward) or previous focus stop inside this component, for Tab and Shift+Tab. false when there is none after the current one, so the container moves on to its next child. The default, for a component that is one stop: false.
Source§

fn focus_enter(&mut self, forward: bool) -> bool

Take focus from outside: at the first stop inside when forward, at the last otherwise. false when nothing in it can take focus. The default: whether the component is focusable.

Auto Trait Implementations§

§

impl !RefUnwindSafe for Pager

§

impl !UnwindSafe for Pager

§

impl Freeze for Pager

§

impl Send for Pager

§

impl Sync for Pager

§

impl Unpin for Pager

§

impl UnsafeUnpin for Pager

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<C> ComponentExt for C
where C: Component,

Source§

fn map<'a, M>( self, done: impl FnMut(Self::Output) -> Flow<M> + 'a, ) -> Map<'a, Self, M>
where Self: 'a,

Turn this component’s answer into M’s flow: Flow::Done(m) to finish the whole composition with m, Flow::Continue to carry on (the component stays, showing its answer, and focus moves past it). Cancelling cancels the composition unless on_cancel says otherwise.
Source§

fn with_overlays<'a>(self) -> Overlays<'a, Self::Output>
where Self: 'a, Self::Output: 'a,

Wrap this component in Overlays: a command palette, help and a shortcut sheet read from its keymap, and room for a status bar and breadcrumbs.
Source§

fn boxed<'a>(self) -> Child<'a, Self::Output>
where Self: 'a,

Box this component as a Child.
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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.