pub struct BibEntry {
pub citekey: String,
pub title: Option<String>,
pub authors: Vec<String>,
pub year: Option<i32>,
pub doi: Option<String>,
pub arxiv_id: Option<String>,
pub pubmed_id: Option<String>,
pub openalex_id: Option<String>,
pub note: Option<String>,
pub keywords: Vec<String>,
pub file: Option<String>,
pub extra: HashMap<String, String>,
}Expand description
Intermediate record extracted from one .bib entry. Owns its
data — no lifetimes tied to the source buffer.
Fields§
§citekey: StringThe citekey as written in the source file (@article{<this>,...}).
title: Option<String>Authors normalized to "Family, Given" — matches the storage
format the rest of scitadel (search results, OpenAlex ingest)
uses.
year: Option<i32>§doi: Option<String>DOI normalized: lowercased, https://doi.org/ / doi: prefixes stripped.
arxiv_id: Option<String>§pubmed_id: Option<String>§openalex_id: Option<String>§note: Option<String>Zotero: free-text note carried in note = {...}. Step 4 maps
this to an annotation with source="bibtex-import".
keywords: Vec<String>Zotero: keywords = {a,b,c} → paper tags (step 4).
file: Option<String>Zotero: file = {...}. Dropped with a --verbose log line in
step 4; kept here so the import summary can count dropped files.
extra: HashMap<String, String>Every other field we didn’t specifically extract, for the
merge-strategy step 3 to reason about (note= / keywords=
are scitadel-non-owned and win on merge).
Trait Implementations§
impl Eq for BibEntry
impl StructuralPartialEq for BibEntry
Auto Trait Implementations§
impl Freeze for BibEntry
impl RefUnwindSafe for BibEntry
impl Send for BibEntry
impl Sync for BibEntry
impl Unpin for BibEntry
impl UnsafeUnpin for BibEntry
impl UnwindSafe for BibEntry
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§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.