surrealdb/dbs/
notification.rs1use crate::sql::{Object, Uuid, Value};
2use serde::{Deserialize, Serialize};
3use std::fmt::{self, Debug, Display};
4
5#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
6#[serde(rename_all = "UPPERCASE")]
7pub enum Action {
8 Create,
9 Update,
10 Delete,
11}
12
13impl Display for Action {
14 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
15 match *self {
16 Action::Create => write!(f, "CREATE"),
17 Action::Update => write!(f, "UPDATE"),
18 Action::Delete => write!(f, "DELETE"),
19 }
20 }
21}
22
23#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)]
24pub struct Notification {
25 pub id: Uuid,
26 pub action: Action,
27 pub result: Value,
28}
29
30impl Display for Notification {
31 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
32 let obj: Object = map! {
33 "id".to_string() => self.id.to_string().into(),
34 "action".to_string() => self.action.to_string().into(),
35 "result".to_string() => self.result.clone(),
36 }
37 .into();
38 write!(f, "{}", obj)
39 }
40}