1use crate::field::Fields;
2use revision::revisioned;
3use serde::{Deserialize, Serialize};
4use std::fmt::{self, Display};
5
6#[derive(Clone, Debug, Eq, PartialEq, PartialOrd, Serialize, Deserialize, Hash)]
7#[revisioned(revision = 1)]
8pub enum Output {
9 None,
10 Null,
11 Diff,
12 After,
13 Before,
14 Fields(Fields),
15}
16
17impl Default for Output {
18 fn default() -> Self {
19 Self::None
20 }
21}
22
23impl Display for Output {
24 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
25 f.write_str("RETURN ")?;
26 match self {
27 Self::None => f.write_str("NONE"),
28 Self::Null => f.write_str("NULL"),
29 Self::Diff => f.write_str("DIFF"),
30 Self::After => f.write_str("AFTER"),
31 Self::Before => f.write_str("BEFORE"),
32 Self::Fields(v) => Display::fmt(v, f),
33 }
34 }
35}