use serde::{Deserialize, Serialize};
#[cfg(not(feature = "std"))]
use alloc::{string::String, vec::Vec};
#[derive(Serialize, Deserialize, Debug, Clone)]
#[serde(rename_all = "camelCase")]
pub struct MprisPacket {
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
pub player_list: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
pub player: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
pub can_pause: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
pub can_play: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
pub can_go_next: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
pub can_go_previous: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
pub can_seek: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
pub is_playing: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
pub loop_status: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
pub shuffle: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
pub pos: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
pub album_art_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
pub artist: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
pub title: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
pub album: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
pub length: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
pub volume: Option<u8>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
pub support_album_art_payload: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
pub transferring_album_art: Option<bool>,
}
#[derive(Serialize, Deserialize, Debug, Clone)]
#[serde(rename_all = "camelCase")]
pub struct MprisRequestPacket {
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
pub player: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
pub request_now_playing: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
pub request_player_list: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
pub request_volume: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
#[serde(rename = "Seek")]
pub seek: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
pub set_loop_status: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
#[serde(rename = "SetPosition")]
pub set_position: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
pub set_shuffle: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
pub set_volume: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
pub action: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
pub album_art_url: Option<String>,
}