openvpn_mgmt_codec/
client_event.rs1use std::fmt;
2
3#[derive(Debug, Clone, PartialEq, Eq)]
5pub enum ClientEvent {
6 Connect,
8
9 Reauth,
11
12 Established,
14
15 Disconnect,
17
18 Custom(String),
20}
21
22impl ClientEvent {
23 pub(crate) fn parse(s: &str) -> Self {
25 match s {
26 "CONNECT" => Self::Connect,
27 "REAUTH" => Self::Reauth,
28 "ESTABLISHED" => Self::Established,
29 "DISCONNECT" => Self::Disconnect,
30 other => Self::Custom(other.to_string()),
31 }
32 }
33}
34
35impl fmt::Display for ClientEvent {
36 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
37 match self {
38 Self::Connect => f.write_str("CONNECT"),
39 Self::Reauth => f.write_str("REAUTH"),
40 Self::Established => f.write_str("ESTABLISHED"),
41 Self::Disconnect => f.write_str("DISCONNECT"),
42 Self::Custom(s) => f.write_str(s),
43 }
44 }
45}