1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
//! Data types collected by the bib [`semantic`](super) model: regular entries,
//! `@string` definitions, and `@string` uses. The bib analog of
//! [`crate::semantic::label`] — plain records keyed by position in the model's
//! vectors, with the resolve-pass flags (`duplicate`, `resolved`) filled in by
//! [`super::builder`].
use TextRange;
use SmolStr;
/// A regular bibliographic entry (`@article{key, …}`). Entry type and key are
/// lowercased and as-authored respectively — `entry_type` is normalized (BibTeX is
/// case-insensitive), `key` keeps its source casing (cite keys are case-sensitive in
/// practice, though BibTeX folds them; we preserve and compare case-insensitively in
/// the resolver).
/// An `@string{ name = value }` macro definition.
/// A use of an `@string` macro — a bare (unquoted, unbraced) name inside a field
/// value.