pub struct FilterApp {
pub pattern_editor: Editor,
pub options: FilterOptions,
pub lines: Vec<String>,
pub json_extracted: Option<Vec<Option<String>>>,
pub matched: Vec<usize>,
pub match_spans: Vec<Vec<Range<usize>>>,
pub selected: usize,
pub scroll: usize,
pub error: Option<String>,
pub should_quit: bool,
pub outcome: Outcome,
/* private fields */
}Fields§
§pattern_editor: Editor§options: FilterOptions§lines: Vec<String>§json_extracted: Option<Vec<Option<String>>>Optional per-line extracted strings when the user passed --json.
Same length as lines. None at index i means line i should be
skipped (JSON parse failure, missing path, or non-string value). When
json_extracted is None, matching runs against the raw lines.
matched: Vec<usize>Indices of lines that currently match the pattern.
match_spans: Vec<Vec<Range<usize>>>Byte ranges within each matched input that the pattern matched.
In --json mode these are spans within the extracted string, not the
raw line. Length equals matched.len(); empty per-line in invert mode.
selected: usizeSelected index into matched for the cursor in the match list.
scroll: usizeScroll offset (first visible index into matched).
error: Option<String>Compilation error from the last recompute, if any.
should_quit: boolWhether to quit the event loop on next tick.
outcome: OutcomeOutcome decided by the user: emit the filtered output, or discard.
Implementations§
Source§impl FilterApp
impl FilterApp
pub fn new( lines: Vec<String>, initial_pattern: &str, options: FilterOptions, ) -> Self
Sourcepub fn with_json_extracted(
lines: Vec<String>,
extracted: Vec<Option<String>>,
initial_pattern: &str,
options: FilterOptions,
) -> Self
pub fn with_json_extracted( lines: Vec<String>, extracted: Vec<Option<String>>, initial_pattern: &str, options: FilterOptions, ) -> Self
Construct a filter app whose matching runs against pre-extracted JSON
field values (from the --json flag). extracted[i] is Some(s) when
line i parsed and yielded a string value; None otherwise.
pub fn pattern(&self) -> &str
pub fn recompute(&mut self)
pub fn select_next(&mut self)
pub fn select_prev(&mut self)
pub fn toggle_case_insensitive(&mut self)
pub fn toggle_invert(&mut self)
Auto Trait Implementations§
impl Freeze for FilterApp
impl !RefUnwindSafe for FilterApp
impl Send for FilterApp
impl Sync for FilterApp
impl Unpin for FilterApp
impl UnsafeUnpin for FilterApp
impl !UnwindSafe for FilterApp
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> 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