caesura 0.26.0

An all-in-one command line tool to **transcode FLAC** audio files and **upload to gazelle** based indexers/trackers.
Documentation
use crate::commands::*;
use crate::utils::*;

use rogue_logging::Error;
use serde::{Deserialize, Serialize};

#[derive(Clone, Deserialize, Serialize)]
pub(crate) struct UploadStatus {
    /// Did the upload command succeed?
    pub success: bool,
    /// Uploaded formats
    #[serde(skip_serializing_if = "Option::is_none")]
    pub formats: Option<Vec<UploadFormatStatus>>,
    /// Time the transcode completed
    pub completed: TimeStamp,
    /// Error messages
    ///
    /// It is possible for [`UploadCommand`] to succeed while still having errors.
    /// For example `copy_transcode_to_content_dir` and `copy_torrent_to` are recoverable,
    /// so may error but the upload still proceeds successfully.
    #[serde(skip_serializing_if = "Option::is_none")]
    pub errors: Option<Vec<Error>>,
}

#[derive(Clone, Deserialize, Serialize)]
pub(crate) struct UploadFormatStatus {
    /// Transcode format
    pub format: TargetFormat,
    /// ID of the upload
    pub id: u32,
}