socketio_rs/
event.rs

1/// An `Event` in `socket.io` could either (`Message`, `Error`) or custom.
2#[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}