pub enum Action {
Show 23 variants
Quit,
Dismiss,
MoveUp,
MoveDown,
MoveTop,
MoveBottom,
PageUp,
PageDown,
OpenDetail,
NewVar,
EditVar,
DeleteVar,
LinkVar,
CopyValue,
ViewValue,
ToggleSecretVisibility,
RunInProject,
StartFuzzy,
SwitchProfile,
NextView,
ToggleHelp,
Refresh,
Noop,
}Expand description
High-level UI intent.
Action decouples view code from crossterm internals. Every
keybinding lives in exactly one place (Action::from_key) so the
keymap is auditable and testable without a terminal.
Unknown / unbound keys translate to Action::Noop so callers can
route them to view-local handlers (e.g. a text-input widget).
Help overlay parity: every binding here must have a matching
row in crate::views::help. The two tables are maintained by
hand; keep them in sync when adding or renaming keys.
Variants§
Quit
Request the program to exit immediately.
Dismiss
Close the topmost overlay, or quit if none is open.
MoveUp
Move selection up by one row.
MoveDown
Move selection down by one row.
MoveTop
Jump to the first row.
MoveBottom
Jump to the last row.
PageUp
Scroll one viewport up.
PageDown
Scroll one viewport down.
OpenDetail
Open the detail view for the selected row.
NewVar
Start the “new variable” flow.
EditVar
Edit the selected variable.
DeleteVar
Delete the selected variable (with confirm).
LinkVar
Link the selected variable to a project.
CopyValue
Copy the selected variable’s value to the clipboard.
ViewValue
Reveal the selected variable’s value in a centered modal.
ToggleSecretVisibility
Toggle showing / masking secret values.
RunInProject
Open the run-in-project form.
StartFuzzy
Open the fuzzy-search overlay.
SwitchProfile
Switch the active profile.
NextView
Move to the next top-level view.
ToggleHelp
Toggle the help overlay.
Refresh
Re-read data from the provider.
Noop
Unbound / unrecognised key.
Implementations§
Source§impl Action
impl Action
Sourcepub fn from_key(key: KeyEvent) -> Self
pub fn from_key(key: KeyEvent) -> Self
Translate a KeyEvent into the corresponding Action.
Filters out non-Press events so Windows — which reports
Press and Release for every key — does not fire each
action twice. Keys with no binding return Action::Noop.
§Examples
use evault_tui::Action;
use ratatui::crossterm::event::{KeyCode, KeyEvent, KeyEventKind, KeyModifiers};
let press = KeyEvent::new(KeyCode::Char('q'), KeyModifiers::NONE);
assert_eq!(Action::from_key(press), Action::Quit);Trait Implementations§
impl Copy for Action
impl Eq for Action
impl StructuralPartialEq for Action
Auto Trait Implementations§
impl Freeze for Action
impl RefUnwindSafe for Action
impl Send for Action
impl Sync for Action
impl Unpin for Action
impl UnsafeUnpin for Action
impl UnwindSafe for Action
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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