Skip to main content

App

Struct App 

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

TUI state.

Implementations§

Source§

impl App

Source

pub fn new(states: Vec<RunState>) -> Self

Build from already-loaded runs. Used by the tests; App::load is what the binary calls.

Source

pub fn load() -> Self

Build by reading every run on disk.

Source

pub fn refresh(&mut self)

Re-read the run directory, keeping the cursor on the same run.

Only files whose mtime moved are parsed again: with a few hundred runs on disk, re-parsing all of them every second would be the most expensive thing magi does while sitting idle.

A run that fails to parse does not disappear. Dropping it would make a row blink out of a live view every time a load failed — and worse, a permanently unreadable run (a state file from a different schema) would be invisible here while magi list reports it as unreadable. So the last good snapshot is kept if there is one, and otherwise the run is counted and surfaced in the header.

Source

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

Indices into runs that pass the filter.

Source

pub fn selected(&self) -> Option<&RunState>

The selected run, if any.

Source

pub fn counts(&self) -> Counts

Status counts across everything on disk, filter-independent.

Source

pub fn next_run(&mut self)

Move the list cursor down.

Source

pub fn prev_run(&mut self)

Move the list cursor up.

Source

pub fn first_run(&mut self)

Jump to the newest run.

Source

pub fn last_run(&mut self)

Jump to the oldest run.

Source

pub fn scroll_by(&mut self, delta: i32)

Scroll the report pane, clamped to the range ratatui’s offset accepts.

Source

pub fn cycle_filter(&mut self)

Cycle the filter, keeping the cursor in range.

Source

pub fn toggle_focus(&mut self)

Swap which pane the movement keys drive.

Source

pub fn filter(&self) -> Filter

Current filter.

Source

pub fn focus(&self) -> Focus

Current focus.

Source

pub fn quitting(&self) -> bool

Should the loop exit?

Source

pub fn on_key(&mut self, key: KeyEvent)

Apply one key press.

Auto Trait Implementations§

§

impl Freeze for App

§

impl RefUnwindSafe for App

§

impl Send for App

§

impl Sync for App

§

impl Unpin for App

§

impl UnsafeUnpin for App

§

impl UnwindSafe for App

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

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

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more