Skip to main content

ApprovalQueue

Struct ApprovalQueue 

Source
pub struct ApprovalQueue<T> { /* private fields */ }
Expand description

A queue of pending items to approve, reject or skip. Returns an ApprovalReport.

Implementations§

Source§

impl<T> ApprovalQueue<T>

Source

pub fn new<I, V>(prompt: impl Into<String>, items: I) -> ApprovalQueue<T>
where I: IntoIterator<Item = V>, V: Into<Item<T>>,

Source

pub fn height(self, rows: usize) -> Self

Show at most rows items at once (default 10).

Source

pub fn preview(self, layout: PreviewLayout) -> Self

Where the detail pane goes (default: beside the list from 72 columns, below it when narrower); Hidden hides it.

Source

pub fn preview_height(self, rows: usize) -> Self

Rows the detail pane takes when it is below the list (default 8).

Source

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

Source

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

Report the mouse (#476): rows, the mark column and the buttons click, and the wheel moves.

Source

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

Make keys do action (see approve_keymap) on this queue only; no keys unbinds it.

Source

pub fn require_reason(self, verdict: Verdict) -> Self

Ask for a reason whenever an item gets verdict (a rejection, say), and refuse an empty one.

Source

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

Whether a decision moves the cursor on to the next pending item (default on).

Source

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

Submit by itself as soon as nothing is pending (default off: Enter submits).

Source

pub fn decided( self, index: usize, verdict: Verdict, reason: Option<String>, ) -> Self

Start item index decided: a review picked up where it was left.

Source

pub fn items(&self) -> &[Item<T>]

Source

pub fn verdicts(&self) -> &[Verdict]

Each item’s verdict so far.

Source

pub fn reason(&self, index: usize) -> Option<&str>

Item index’s reason, if it has one.

Source

pub fn focused(&self) -> Option<usize>

The focused item’s index (none when the queue is empty).

Source

pub fn marked(&self) -> Vec<usize>

The items marked for a bulk decision.

Source

pub fn is_asking_reason(&self) -> bool

Whether a reason is being typed.

Source

pub fn approve_keymap(&self) -> &Keymap

The keys, with any rebinding.

Source

pub fn summary(&self) -> String

2 approved · 1 rejected · 0 skipped · 3 pending, so far.

Source§

impl<T: Clone> ApprovalQueue<T>

Source

pub fn report(&self) -> ApprovalReport<T>

The report as things stand: every item with its decision so far.

Trait Implementations§

Source§

impl<T: Clone> Component for ApprovalQueue<T>

Source§

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

The decisions as they stand: without a terminal and asked for defaults, nothing is decided.

Source§

type Output = ApprovalReport<T>

Source§

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

Handle one event. Ctrl+C never arrives here: the event loop ends the component with Outcome::Interrupted.
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 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 prompt( &mut self, io: &mut dyn LineIo, ) -> Result<Option<ApprovalReport<T>>, NotInteractive>

Ask for the value line by line, for when the terminal is not interactive and the policy asks for a prompt. The default says the component has no line-based form. Read more
Source§

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

Called once, before the component is first painted, with the terminal’s size: for work that needs it, such as rendering content at the width. Returning Done or Cancel finishes the component without waiting for an event. The default does nothing.
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<T> !Freeze for ApprovalQueue<T>

§

impl<T> !RefUnwindSafe for ApprovalQueue<T>

§

impl<T> !Sync for ApprovalQueue<T>

§

impl<T> !UnwindSafe for ApprovalQueue<T>

§

impl<T> Send for ApprovalQueue<T>
where Vec<Item<T>>: Send,

§

impl<T> Unpin for ApprovalQueue<T>
where Vec<Item<T>>: Unpin,

§

impl<T> UnsafeUnpin for ApprovalQueue<T>
where Vec<Item<T>>: UnsafeUnpin,

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.