scylla_cql/frame/
server_event_type.rs1use std::fmt;
2use std::str::FromStr;
3
4use super::frame_errors::CqlEventParseError;
5
6pub enum EventType {
7 TopologyChange,
8 StatusChange,
9 SchemaChange,
10}
11
12impl fmt::Display for EventType {
13 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
14 let s = match &self {
15 Self::TopologyChange => "TOPOLOGY_CHANGE",
16 Self::StatusChange => "STATUS_CHANGE",
17 Self::SchemaChange => "SCHEMA_CHANGE",
18 };
19
20 write!(f, "{}", s)
21 }
22}
23
24impl FromStr for EventType {
25 type Err = CqlEventParseError;
26
27 fn from_str(s: &str) -> Result<Self, Self::Err> {
28 match s {
29 "TOPOLOGY_CHANGE" => Ok(Self::TopologyChange),
30 "STATUS_CHANGE" => Ok(Self::StatusChange),
31 "SCHEMA_CHANGE" => Ok(Self::SchemaChange),
32 _ => Err(CqlEventParseError::UnknownEventType(s.to_string())),
33 }
34 }
35}