#[non_exhaustive]pub struct EntryInfo {
pub safekey: Safekey,
pub title: String,
pub year: Option<i32>,
pub fetched_at: Option<DateTime<Utc>>,
}Expand description
Brief summary of a stored entry; returned by
Store::list_recent / Store::search.
non_exhaustive so adding new summary fields (e.g. doi, authors) in a
later revision is non-breaking. Pattern-match with a wildcard arm.
Serialize enables list-recent --mode json / search --mode json
(#204) — the wire form is the obvious field-name JSON: {"safekey": "...", "title": "...", "year": 2024, "fetched_at": "2026-05-20T…Z"},
with null for absent optionals.
§Wire-format stability (post-#208 self-review §1)
Once a release ships with the [Serialize] derive, the field
names below become part of the public API: a downstream consumer
(CLI agent, MCP tool, BiblioFetch.jl, third-party script) MAY bind
to them. Renaming a field is then a semver minor bump and warrants
a CHANGELOG [BREAKING] note. Adding new fields is still safe
(per #[non_exhaustive]).
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.safekey: SafekeyThe safekey of the entry. See docs/SAFEKEY.md.
title: StringTitle from the entry’s reserved title field.
year: Option<i32>Year, if any, from the entry’s reserved year field.
fetched_at: Option<DateTime<Utc>>fetched_at from the [doiget] table, if any.