mpris_server/
playlist_ordering.rs1use std::fmt;
2
3use serde::Deserialize;
4use zbus::zvariant::{Type, Value};
5
6#[derive(Debug, Clone, Copy, PartialEq, Eq, Deserialize, Type)]
16#[zvariant(signature = "s")]
17#[doc(alias = "Playlist_Ordering")]
18pub enum PlaylistOrdering {
19 #[serde(rename = "Alphabetical")]
21 Alphabetical,
22 #[serde(rename = "Created")]
24 CreationDate,
25 #[serde(rename = "Modified")]
27 ModifiedDate,
28 #[serde(rename = "Played")]
30 LastPlayDate,
31 #[serde(rename = "User")]
33 UserDefined,
34}
35
36impl PlaylistOrdering {
37 pub fn as_str(&self) -> &'static str {
39 match self {
40 Self::Alphabetical => "Alphabetical",
41 Self::CreationDate => "Created",
42 Self::ModifiedDate => "Modified",
43 Self::LastPlayDate => "Played",
44 Self::UserDefined => "User",
45 }
46 }
47}
48
49impl fmt::Display for PlaylistOrdering {
50 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
51 f.write_str(self.as_str())
52 }
53}
54
55impl From<PlaylistOrdering> for Value<'_> {
56 fn from(status: PlaylistOrdering) -> Self {
57 Value::new(status.as_str())
58 }
59}