1
use serde::{Deserialize, Serialize};
2

            
3
// See https://github.com/MusicPlayerDaemon/MPD/blob/7774c3369e1484dc5dec6d7d9572e0a57e9c5302/src/command/AllCommands.cxx#L67-L209
4
pub type Response = Result<(), MpdError>;
5

            
6
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
7
pub enum ErrorCode {
8
    NotList = 1,
9
    Arg = 2,
10
    Password = 3,
11
    Permission = 4,
12
    Unknown = 5,
13

            
14
    NoExist = 50,
15
    PlaylistMax = 51,
16
    System = 52,
17
    PlaylistLoad = 53,
18
    UpdateAlready = 54,
19
    PlayerSync = 55,
20
    Exist = 56,
21
}
22

            
23
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
24
pub struct MpdError {
25
    code: ErrorCode,
26
    command: String,
27
    message: String,
28
    command_list_num: usize,
29
}