surrealdb/dbs/
notification.rs

1use 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}