1#[derive(Debug, PartialEq, PartialOrd, Clone, Eq, Hash)]
3pub enum Event {
4 Message,
5 Error,
6 Custom(String),
7 Connect,
8 Close,
9}
10
11impl From<String> for Event {
12 fn from(string: String) -> Self {
13 match &string.to_lowercase()[..] {
14 "message" => Event::Message,
15 "error" => Event::Error,
16 "open" => Event::Connect,
17 "close" => Event::Close,
18 _ => Event::Custom(string),
19 }
20 }
21}
22
23impl From<&str> for Event {
24 fn from(string: &str) -> Self {
25 Event::from(String::from(string))
26 }
27}
28
29impl From<Event> for String {
30 fn from(event: Event) -> Self {
31 match event {
32 Event::Message => Self::from("message"),
33 Event::Connect => Self::from("open"),
34 Event::Close => Self::from("close"),
35 Event::Error => Self::from("error"),
36 Event::Custom(string) => string,
37 }
38 }
39}