Skip to main content

surrealdb_expr/expr/convert/statements/define/
field.rs

1//! `sql` -> `expr` conversions for [`crate::sql::statements::define::field`].
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::statements::define::field::*;
7
8impl From<DefineDefault> for crate::expr::statements::define::DefineDefault {
9	fn from(value: DefineDefault) -> Self {
10		match value {
11			DefineDefault::None => crate::expr::statements::define::DefineDefault::None,
12			DefineDefault::Always(expr) => {
13				crate::expr::statements::define::DefineDefault::Always(expr.into())
14			}
15			DefineDefault::Set(expr) => {
16				crate::expr::statements::define::DefineDefault::Set(expr.into())
17			}
18		}
19	}
20}
21
22impl From<crate::expr::statements::define::DefineDefault> for DefineDefault {
23	fn from(value: crate::expr::statements::define::DefineDefault) -> Self {
24		match value {
25			crate::expr::statements::define::DefineDefault::None => DefineDefault::None,
26			crate::expr::statements::define::DefineDefault::Always(expr) => {
27				DefineDefault::Always(expr.into())
28			}
29			crate::expr::statements::define::DefineDefault::Set(expr) => {
30				DefineDefault::Set(expr.into())
31			}
32		}
33	}
34}
35
36impl From<DefineFieldStatement> for crate::expr::statements::DefineFieldStatement {
37	fn from(v: DefineFieldStatement) -> Self {
38		Self {
39			kind: v.kind.into(),
40			name: v.name.into(),
41			what: v.what.into(),
42			readonly: v.readonly,
43			inline: v.inline,
44			field_kind: v.field_kind.map(Into::into),
45			flexible: v.flexible,
46			value: v.value.map(Into::into),
47			assert: v.assert.map(Into::into),
48			computed: v.computed.map(Into::into),
49			default: v.default.into(),
50			permissions: v.permissions.into(),
51			comment: v.comment.into(),
52			reference: v.reference.map(Into::into),
53			graphql_alias: v.graphql_alias,
54			graphql_deprecated: v.graphql_deprecated,
55		}
56	}
57}
58
59#[allow(clippy::fallible_impl_from)]
60impl From<crate::expr::statements::DefineFieldStatement> for DefineFieldStatement {
61	fn from(v: crate::expr::statements::DefineFieldStatement) -> Self {
62		Self {
63			kind: v.kind.into(),
64			name: v.name.into(),
65			what: v.what.into(),
66			readonly: v.readonly,
67			inline: v.inline,
68			field_kind: v.field_kind.map(Into::into),
69			flexible: v.flexible,
70			value: v.value.map(Into::into),
71			assert: v.assert.map(Into::into),
72			computed: v.computed.map(Into::into),
73			default: v.default.into(),
74			permissions: v.permissions.into(),
75			comment: v.comment.into(),
76			reference: v.reference.map(Into::into),
77			graphql_alias: v.graphql_alias,
78			graphql_deprecated: v.graphql_deprecated,
79		}
80	}
81}