pub struct Metadata {Show 18 fields
pub title: Option<String>,
pub subtitles: Vec<String>,
pub artists: Vec<String>,
pub composers: Vec<String>,
pub lyricists: Vec<String>,
pub album: Option<String>,
pub year: Option<String>,
pub key: Option<String>,
pub tempo: Option<String>,
pub time: Option<String>,
pub capo: Option<String>,
pub sort_title: Option<String>,
pub sort_artist: Option<String>,
pub arrangers: Vec<String>,
pub copyright: Option<String>,
pub duration: Option<String>,
pub tags: Vec<String>,
pub custom: Vec<(String, String)>,
}Expand description
Metadata extracted from well-known ChordPro directives.
These fields correspond to standard ChordPro meta-directives such as
{title}, {subtitle}, {artist}, {composer}, {album}, {year},
{key}, {tempo}, {time}, and {capo}.
Fields that can logically appear multiple times (e.g., subtitle, artist,
composer) are stored as Vec<String>. Fields that are expected to appear
at most once are stored as Option<String>.
Any meta-directive not covered by these fields can be stored in the
custom vector as key-value pairs.
Fields§
§title: Option<String>The song title, from {title} / {t}.
subtitles: Vec<String>Subtitles, from {subtitle} / {st}. May appear multiple times.
artists: Vec<String>Artist names, from {artist}.
composers: Vec<String>Composer names, from {composer}.
lyricists: Vec<String>Lyricist names, from {lyricist}.
album: Option<String>Album name, from {album}.
year: Option<String>Year or date, from {year}.
key: Option<String>Musical key, from {key}.
tempo: Option<String>Tempo indication, from {tempo}.
time: Option<String>Time signature, from {time}.
capo: Option<String>Capo position, from {capo}.
sort_title: Option<String>Sortable title, from {sorttitle}.
sort_artist: Option<String>Sortable artist name, from {sortartist}.
arrangers: Vec<String>Arranger names, from {arranger}. May appear multiple times.
copyright: Option<String>Copyright notice, from {copyright}.
duration: Option<String>Song duration, from {duration}.
Tags for categorization, from {tag}. May appear multiple times.
custom: Vec<(String, String)>Custom metadata directives not covered by the standard fields.
Each entry is a (name, value) pair.
All custom entries (from both unknown directives and unrecognized
{meta} keys) share a single size cap. Filling the vec with one
key prevents other keys from being stored.