Skip to main content

surrealdb_sql/
api_method.rs

1use std::fmt::{self, Display};
2
3use surrealdb_types::{SqlFormat, SurrealValue, ToSql};
4
5/// REST API method.
6#[derive(SurrealValue, Clone, Copy, Debug, Default, Eq, PartialEq, PartialOrd, Hash)]
7#[surreal(crate = "surrealdb_types")]
8#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))]
9#[surreal(untagged, lowercase)]
10pub enum ApiMethod {
11	/// REST DELETE method.
12	Delete,
13	/// REST GET method.
14	#[default]
15	Get,
16	/// REST PATCH method.
17	Patch,
18	/// REST POST method.
19	Post,
20	/// REST PUT method.
21	Put,
22	/// REST TRACE method.
23	Trace,
24}
25
26impl Display for ApiMethod {
27	fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
28		match self {
29			Self::Delete => write!(f, "delete"),
30			Self::Get => write!(f, "get"),
31			Self::Patch => write!(f, "patch"),
32			Self::Post => write!(f, "post"),
33			Self::Put => write!(f, "put"),
34			Self::Trace => write!(f, "trace"),
35		}
36	}
37}
38
39impl ToSql for ApiMethod {
40	fn fmt_sql(&self, f: &mut String, fmt: SqlFormat) {
41		self.to_string().fmt_sql(f, fmt)
42	}
43}