surrealdb_expr/expr/
closure.rs1use std::cmp::Ordering;
2
3use surrealdb_types::{SqlFormat, ToSql};
4
5use crate::expr::{Expr, Kind, Param};
6
7#[derive(Clone, Debug, Eq, PartialEq, Hash)]
8pub struct ClosureExpr {
9 pub args: Vec<(Param, Kind)>,
10 pub returns: Option<Kind>,
11 pub body: Expr,
12}
13
14impl PartialOrd for ClosureExpr {
15 fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
16 Some(self.cmp(other))
17 }
18}
19impl Ord for ClosureExpr {
20 fn cmp(&self, _: &Self) -> Ordering {
21 Ordering::Equal
22 }
23}
24
25impl ToSql for ClosureExpr {
26 fn fmt_sql(&self, f: &mut String, sql_fmt: SqlFormat) {
27 let closure: crate::sql::Closure = self.clone().into();
28 closure.fmt_sql(f, sql_fmt);
29 }
30}