pub trait ListPanelSpec {
type Row: SearchRow + Clone + Send + Sync + 'static;
const TITLE: &'static str;
const HAS_FILTER: bool = true;
const BORDERED_INPUT: bool = false;
const LOCAL_FILTER: bool = true;
// Required methods
fn submit(row: &Self::Row, tx: &AppTx);
fn hints() -> Vec<(String, String)>;
// Provided method
fn context_event(_row: &Self::Row) -> Option<AppEvent> { ... }
}Expand description
What varies between list-shaped drawer views. The panel is the depth; each view is a thin adapter of this seam.
Required Associated Constants§
Provided Associated Constants§
Sourceconst HAS_FILTER: bool = true
const HAS_FILTER: bool = true
Whether the top row is a typed filter input (true: every key goes
to the list engine; false: only navigation keys reach the list —
plain letters stay free for the host, e.g. LINKS’ b/o/u).
Sourceconst BORDERED_INPUT: bool = false
const BORDERED_INPUT: bool = false
When true, the filter is drawn as a bordered search box (like the note
finder) with a right-aligned result/loading status, and the results area
shows a dimmed “Searching…/No results” message. Suits server-backed views
(semantic search) where the query round-trips over the network and the
input deserves visual separation from the results. Default false: a
bare one-row filter for the compact local drawer views (TAGS/LINKS/
OUTLINE), whose behavior is unchanged.
Sourceconst LOCAL_FILTER: bool = true
const LOCAL_FILTER: bool = true
Whether the typed query ALSO fuzzy-filters the loaded rows locally
(true, default). Set false for server-backed sources whose load
already applies the query (semantic search): the server returns ranked,
conceptually-relevant notes that rarely contain the query words verbatim,
so a local fuzzy pass over their titles would wrongly discard nearly all
of them. false keeps the input (it drives the server reload) but shows
every returned row in server rank order.
Required Associated Types§
Required Methods§
Provided Methods§
Sourcefn context_event(_row: &Self::Row) -> Option<AppEvent>
fn context_event(_row: &Self::Row) -> Option<AppEvent>
The event a right-click on a row fires (rows that are real notes
open the file-ops menu). None = right-click selects only.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".