pub struct ManifestEntry {Show 15 fields
pub path: String,
pub format: AudioFormat,
pub meta_hash: String,
pub art_hash: String,
pub embedded_lyrics_hash: String,
pub size: u64,
pub preserve: bool,
pub cover_jpg: Option<ArtifactState>,
pub cover_webp: Option<ArtifactState>,
pub details_txt: Option<ArtifactState>,
pub lyrics_txt: Option<ArtifactState>,
pub lrc: Option<ArtifactState>,
pub synced_lyrics: Option<SyncedLyricsCheck>,
pub video_mp4: Option<ArtifactState>,
pub stems: BTreeMap<String, ArtifactState>,
}Expand description
One manifest record: the prior known state of a single downloaded clip.
Fields§
§path: StringRelative path of the audio file under the account root.
format: AudioFormatFormat the file was written in.
meta_hash: StringHash of the clip’s tag-bearing metadata, for detecting retag needs.
art_hash: StringHash of the embedded cover art, for detecting art drift.
embedded_lyrics_hash: StringFingerprint of the aligned lyrics currently embedded in the audio tag
(the FLAC LYRICS / MP3 USLT / ALAC ©lyr frame), or empty when none
are embedded. Tracked separately from meta_hash
because the embedded text is Suno’s fetched alignment, not clip.lyrics,
so a drift here re-tags to back-fill the embed (#354). Its value is the
content hash of the .lrc body the embed was rendered from, mirroring how
lrc tracks the sidecar. Additive: old manifests load with
"" and the common no-embed case is omitted from the serialised object.
size: u64Size of the file in bytes when last written.
preserve: boolWhen set, this clip is held by a copy or archive source, or is private, so it must never be deleted as an orphan no matter the current selection. The caller writes this marker; the reconcile engine only reads it.
cover_jpg: Option<ArtifactState>Prior state of the external cover.jpg sidecar, when one was written.
cover_webp: Option<ArtifactState>Prior state of the external cover.webp sidecar, when one was written.
details_txt: Option<ArtifactState>Prior state of the plain-text .details.txt sidecar, when one was written.
lyrics_txt: Option<ArtifactState>Prior state of the plain-text .lyrics.txt sidecar, when one was written.
lrc: Option<ArtifactState>Prior state of the synced .lrc sidecar, when one was written. Its hash
is the content hash of the rendered .lrc body, so an alignment or
renderer change rewrites it.
synced_lyrics: Option<SyncedLyricsCheck>The synced-lyrics resolution marker, gating whether the clip’s alignment is re-fetched. Present once the clip has been resolved (written or empty).
video_mp4: Option<ArtifactState>Prior state of the standalone .mp4 music video, when one was written.
stems: BTreeMap<String, ArtifactState>Prior state of each downloaded stem, keyed by a stable per-stem key (the server stem id, falling back to its label). Unlike the single-slot sidecars above, a clip owns a set of stems, so this is a keyed map: individual stems are added, rewritten, or removed without disturbing the others (no whole-folder deletes). Empty and omitted from older manifests, so the growth is purely additive.
Trait Implementations§
Source§impl Clone for ManifestEntry
impl Clone for ManifestEntry
Source§fn clone(&self) -> ManifestEntry
fn clone(&self) -> ManifestEntry
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ManifestEntry
impl Debug for ManifestEntry
Source§impl Default for ManifestEntry
impl Default for ManifestEntry
Source§fn default() -> ManifestEntry
fn default() -> ManifestEntry
Source§impl<'de> Deserialize<'de> for ManifestEntrywhere
ManifestEntry: Default,
impl<'de> Deserialize<'de> for ManifestEntrywhere
ManifestEntry: Default,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for ManifestEntry
Source§impl PartialEq for ManifestEntry
impl PartialEq for ManifestEntry
Source§fn eq(&self, other: &ManifestEntry) -> bool
fn eq(&self, other: &ManifestEntry) -> bool
self and other values to be equal, and is used by ==.