#[non_exhaustive]pub struct SearchResult {
pub id: String,
pub content: String,
pub meta: Option<SessionMeta>,
pub similarity: Option<f64>,
pub snippet: Option<String>,
}Expand description
Result from a store search operation.
Contains the stored content along with its identifier and optional metadata.
Marked #[non_exhaustive] so future fields (e.g. snippet) can be added
in a non-breaking way — downstream code must use struct update syntax or
constructors rather than exhaustive field literals.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.id: StringUnique identifier for this entry.
content: StringThe stored content (command output).
meta: Option<SessionMeta>Optional metadata about this entry’s origin.
similarity: Option<f64>Optional similarity score (for semantic search backends).
snippet: Option<String>Optional bounded excerpt centered on the best match.
Populated by the FTS5 branch of SqliteStore::search via the
snippet() FTS5 function. None for the short-query LIKE fallback
and for backends without FTS5 (e.g. VipuneStore). Callers should
fall back to a client-side bounded prefix of content when this is
None. Note the snippet() window is bounded in tokens, so for
content containing arbitrarily long multi-byte tokens a Some snippet
can still exceed the display budget — display callers must apply their
own char cap (see recall_display::display_hit).