Skip to main content

surrealdb_expr/expr/convert/
order.rs

1//! `sql` -> `expr` conversions for [`crate::sql::order`].
2//!
3//! Lives in core rather than beside the AST: `surrealdb-sql` sits below
4//! core, so it cannot name `expr` types.
5
6use crate::sql::order::*;
7
8impl From<Ordering> for crate::expr::order::Ordering {
9	fn from(v: Ordering) -> Self {
10		match v {
11			Ordering::Random => Self::Random,
12			Ordering::Order(list) => Self::Order(list.into()),
13		}
14	}
15}
16
17impl From<crate::expr::order::Ordering> for Ordering {
18	fn from(v: crate::expr::order::Ordering) -> Self {
19		match v {
20			crate::expr::order::Ordering::Random => Self::Random,
21			crate::expr::order::Ordering::Order(list) => Self::Order(list.into()),
22		}
23	}
24}
25
26impl From<OrderList> for crate::expr::order::OrderList {
27	fn from(v: OrderList) -> Self {
28		Self(v.0.into_iter().map(Into::into).collect())
29	}
30}
31
32impl From<crate::expr::order::OrderList> for OrderList {
33	fn from(v: crate::expr::order::OrderList) -> Self {
34		Self(v.0.into_iter().map(Into::into).collect())
35	}
36}
37
38impl From<Order> for crate::expr::order::Order {
39	fn from(v: Order) -> Self {
40		Self {
41			value: v.value.into(),
42			collate: v.collate,
43			numeric: v.numeric,
44			direction: v.direction,
45		}
46	}
47}
48
49impl From<crate::expr::order::Order> for Order {
50	fn from(v: crate::expr::order::Order) -> Self {
51		Self {
52			value: v.value.into(),
53			collate: v.collate,
54			numeric: v.numeric,
55			direction: v.direction,
56		}
57	}
58}