mpd/
playlist.rs

1//! The module defines playlist data structures
2
3use crate::convert::FromMap;
4use crate::error::{Error, ProtoError};
5
6use std::collections::BTreeMap;
7
8/// Playlist
9#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
10#[derive(Clone, Debug, PartialEq)]
11pub struct Playlist {
12    /// name
13    pub name: String,
14    /// last modified
15    pub last_mod: String,
16}
17
18impl FromMap for Playlist {
19    fn from_map(map: BTreeMap<String, String>) -> Result<Playlist, Error> {
20        Ok(Playlist {
21            name: map.get("playlist").map(|v| v.to_owned()).ok_or(Error::Proto(ProtoError::NoField("playlist")))?,
22            last_mod: map.get("Last-Modified").map(|v| v.to_owned()).ok_or(Error::Proto(ProtoError::NoField("Last-Modified")))?,
23        })
24    }
25}