1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#[allow(dead_code)]

/**
 An enum of all the officially available notification sounds in Pushover. 
 **/
pub enum PushoverSound {
    PUSHOVER,
    BIKE,
    BUGLE,
    CASHREGISTER,
    CLASSICAL,
    COSMIC,
    FALLING,
    GAMELAN,
    INCOMING,
    INTERMISSION,
    MAGIC,
    MECHANICAL,
    PIANOBAR,
    SIREN,
    SPACEALARM,
    TUGBOAT,
    ALIEN,
    CLIMB,
    PERSISTENT,
    ECHO,
    UPDOWN,
    VIBRATE,
    NONE,
}

// Enables PushoverSound::[SOUNDNAME].to_string();
impl std::fmt::Display for PushoverSound {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let name: &str = match *self {
            PushoverSound::PUSHOVER => "pushover",
            PushoverSound::BIKE => "bike",
            PushoverSound::BUGLE => "bugle",
            PushoverSound::CASHREGISTER => "cashregister",
            PushoverSound::CLASSICAL => "classical",
            PushoverSound::COSMIC => "cosmic",
            PushoverSound::FALLING => "falling",
            PushoverSound::GAMELAN => "gamelan",
            PushoverSound::INCOMING => "incoming",
            PushoverSound::INTERMISSION => "intermission",
            PushoverSound::MAGIC => "magic",
            PushoverSound::MECHANICAL => "mechanical",
            PushoverSound::PIANOBAR => "pianobar",
            PushoverSound::SIREN => "siren",
            PushoverSound::SPACEALARM => "spacealarm",
            PushoverSound::TUGBOAT => "tugboat",
            PushoverSound::ALIEN => "alien",
            PushoverSound::CLIMB => "climb",
            PushoverSound::PERSISTENT => "persistent",
            PushoverSound::ECHO => "echo",
            PushoverSound::UPDOWN => "updown",
            PushoverSound::VIBRATE => "vibrate",
            PushoverSound::NONE => "none",
        };

        write!(f, "{}", name)
    }
}