surrealdb_expr/expr/convert/
operator.rs1use crate::sql::operator::*;
7
8impl From<PrefixOperator> for crate::expr::PrefixOperator {
9 fn from(value: PrefixOperator) -> Self {
10 match value {
11 PrefixOperator::Not => crate::expr::PrefixOperator::Not,
12 PrefixOperator::Positive => crate::expr::PrefixOperator::Positive,
13 PrefixOperator::Negate => crate::expr::PrefixOperator::Negate,
14 PrefixOperator::Range => crate::expr::PrefixOperator::Range,
15 PrefixOperator::RangeInclusive => crate::expr::PrefixOperator::RangeInclusive,
16 PrefixOperator::Cast(k) => crate::expr::PrefixOperator::Cast(k.into()),
17 }
18 }
19}
20
21impl From<crate::expr::PrefixOperator> for PrefixOperator {
22 fn from(value: crate::expr::PrefixOperator) -> Self {
23 match value {
24 crate::expr::PrefixOperator::Not => PrefixOperator::Not,
25 crate::expr::PrefixOperator::Positive => PrefixOperator::Positive,
26 crate::expr::PrefixOperator::Negate => PrefixOperator::Negate,
27 crate::expr::PrefixOperator::Range => PrefixOperator::Range,
28 crate::expr::PrefixOperator::RangeInclusive => PrefixOperator::RangeInclusive,
29 crate::expr::PrefixOperator::Cast(k) => PrefixOperator::Cast(k.into()),
30 }
31 }
32}
33
34impl From<PostfixOperator> for crate::expr::PostfixOperator {
35 fn from(value: PostfixOperator) -> Self {
36 match value {
37 PostfixOperator::Range => crate::expr::PostfixOperator::Range,
38 PostfixOperator::RangeSkip => crate::expr::PostfixOperator::RangeSkip,
39 PostfixOperator::MethodCall(name, x) => crate::expr::PostfixOperator::MethodCall(
40 name,
41 x.into_iter().map(From::from).collect(),
42 ),
43 PostfixOperator::Call(x) => {
44 crate::expr::PostfixOperator::Call(x.into_iter().map(From::from).collect())
45 }
46 }
47 }
48}
49
50impl From<crate::expr::PostfixOperator> for PostfixOperator {
51 fn from(value: crate::expr::PostfixOperator) -> Self {
52 match value {
53 crate::expr::PostfixOperator::Range => PostfixOperator::Range,
54 crate::expr::PostfixOperator::RangeSkip => PostfixOperator::RangeSkip,
55 crate::expr::PostfixOperator::MethodCall(name, args) => {
56 PostfixOperator::MethodCall(name, args.into_iter().map(From::from).collect())
57 }
58 crate::expr::PostfixOperator::Call(args) => {
59 PostfixOperator::Call(args.into_iter().map(From::from).collect())
60 }
61 }
62 }
63}
64
65impl From<MatchesOperator> for crate::expr::operator::MatchesOperator {
66 fn from(value: MatchesOperator) -> Self {
67 crate::expr::operator::MatchesOperator {
68 rf: value.rf,
69 operator: value
70 .operator
71 .map(From::from)
72 .unwrap_or(crate::expr::operator::BooleanOperator::And),
73 }
74 }
75}
76
77impl From<crate::expr::operator::MatchesOperator> for MatchesOperator {
78 fn from(value: crate::expr::operator::MatchesOperator) -> Self {
79 MatchesOperator {
80 rf: value.rf,
81 operator: Some(value.operator.into()),
82 }
83 }
84}
85
86impl From<BooleanOperator> for crate::expr::operator::BooleanOperator {
87 fn from(value: BooleanOperator) -> Self {
88 match value {
89 BooleanOperator::And => crate::expr::operator::BooleanOperator::And,
90 BooleanOperator::Or => crate::expr::operator::BooleanOperator::Or,
91 }
92 }
93}
94
95impl From<crate::expr::operator::BooleanOperator> for BooleanOperator {
96 fn from(value: crate::expr::operator::BooleanOperator) -> Self {
97 match value {
98 crate::expr::operator::BooleanOperator::And => BooleanOperator::And,
99 crate::expr::operator::BooleanOperator::Or => BooleanOperator::Or,
100 }
101 }
102}
103
104impl From<BinaryOperator> for crate::expr::BinaryOperator {
105 fn from(value: BinaryOperator) -> Self {
106 match value {
107 BinaryOperator::Subtract => crate::expr::BinaryOperator::Subtract,
108 BinaryOperator::Add => crate::expr::BinaryOperator::Add,
109 BinaryOperator::Multiply => crate::expr::BinaryOperator::Multiply,
110 BinaryOperator::Divide => crate::expr::BinaryOperator::Divide,
111 BinaryOperator::Remainder => crate::expr::BinaryOperator::Remainder,
112 BinaryOperator::Power => crate::expr::BinaryOperator::Power,
113 BinaryOperator::Equal => crate::expr::BinaryOperator::Equal,
114 BinaryOperator::ExactEqual => crate::expr::BinaryOperator::ExactEqual,
115 BinaryOperator::NotEqual => crate::expr::BinaryOperator::NotEqual,
116 BinaryOperator::AllEqual => crate::expr::BinaryOperator::AllEqual,
117 BinaryOperator::AnyEqual => crate::expr::BinaryOperator::AnyEqual,
118 BinaryOperator::Or => crate::expr::BinaryOperator::Or,
119 BinaryOperator::And => crate::expr::BinaryOperator::And,
120 BinaryOperator::NullCoalescing => crate::expr::BinaryOperator::NullCoalescing,
121 BinaryOperator::TenaryCondition => crate::expr::BinaryOperator::TenaryCondition,
122 BinaryOperator::LessThan => crate::expr::BinaryOperator::LessThan,
123 BinaryOperator::LessThanEqual => crate::expr::BinaryOperator::LessThanEqual,
124 BinaryOperator::MoreThan => crate::expr::BinaryOperator::MoreThan,
125 BinaryOperator::MoreThanEqual => crate::expr::BinaryOperator::MoreThanEqual,
126 BinaryOperator::Contain => crate::expr::BinaryOperator::Contain,
127 BinaryOperator::NotContain => crate::expr::BinaryOperator::NotContain,
128 BinaryOperator::ContainAll => crate::expr::BinaryOperator::ContainAll,
129 BinaryOperator::ContainAny => crate::expr::BinaryOperator::ContainAny,
130 BinaryOperator::ContainNone => crate::expr::BinaryOperator::ContainNone,
131 BinaryOperator::Inside => crate::expr::BinaryOperator::Inside,
132 BinaryOperator::NotInside => crate::expr::BinaryOperator::NotInside,
133 BinaryOperator::AllInside => crate::expr::BinaryOperator::AllInside,
134 BinaryOperator::AnyInside => crate::expr::BinaryOperator::AnyInside,
135 BinaryOperator::NoneInside => crate::expr::BinaryOperator::NoneInside,
136 BinaryOperator::Outside => crate::expr::BinaryOperator::Outside,
137 BinaryOperator::Intersects => crate::expr::BinaryOperator::Intersects,
138 BinaryOperator::Range => crate::expr::BinaryOperator::Range,
139 BinaryOperator::RangeInclusive => crate::expr::BinaryOperator::RangeInclusive,
140 BinaryOperator::RangeSkip => crate::expr::BinaryOperator::RangeSkip,
141 BinaryOperator::RangeSkipInclusive => crate::expr::BinaryOperator::RangeSkipInclusive,
142 BinaryOperator::Matches(m) => crate::expr::BinaryOperator::Matches(m.into()),
143 BinaryOperator::NearestNeighbor(n) => {
144 crate::expr::BinaryOperator::NearestNeighbor(Box::new((*n).into()))
145 }
146 }
147 }
148}
149
150impl From<crate::expr::BinaryOperator> for BinaryOperator {
151 fn from(value: crate::expr::BinaryOperator) -> Self {
152 match value {
153 crate::expr::BinaryOperator::Subtract => BinaryOperator::Subtract,
154 crate::expr::BinaryOperator::Add => BinaryOperator::Add,
155 crate::expr::BinaryOperator::Multiply => BinaryOperator::Multiply,
156 crate::expr::BinaryOperator::Divide => BinaryOperator::Divide,
157 crate::expr::BinaryOperator::Remainder => BinaryOperator::Remainder,
158 crate::expr::BinaryOperator::Power => BinaryOperator::Power,
159 crate::expr::BinaryOperator::Equal => BinaryOperator::Equal,
160 crate::expr::BinaryOperator::ExactEqual => BinaryOperator::ExactEqual,
161 crate::expr::BinaryOperator::NotEqual => BinaryOperator::NotEqual,
162 crate::expr::BinaryOperator::AllEqual => BinaryOperator::AllEqual,
163 crate::expr::BinaryOperator::AnyEqual => BinaryOperator::AnyEqual,
164 crate::expr::BinaryOperator::Or => BinaryOperator::Or,
165 crate::expr::BinaryOperator::And => BinaryOperator::And,
166 crate::expr::BinaryOperator::NullCoalescing => BinaryOperator::NullCoalescing,
167 crate::expr::BinaryOperator::TenaryCondition => BinaryOperator::TenaryCondition,
168 crate::expr::BinaryOperator::LessThan => BinaryOperator::LessThan,
169 crate::expr::BinaryOperator::LessThanEqual => BinaryOperator::LessThanEqual,
170 crate::expr::BinaryOperator::MoreThan => BinaryOperator::MoreThan,
171 crate::expr::BinaryOperator::MoreThanEqual => BinaryOperator::MoreThanEqual,
172 crate::expr::BinaryOperator::Contain => BinaryOperator::Contain,
173 crate::expr::BinaryOperator::NotContain => BinaryOperator::NotContain,
174 crate::expr::BinaryOperator::ContainAll => BinaryOperator::ContainAll,
175 crate::expr::BinaryOperator::ContainAny => BinaryOperator::ContainAny,
176 crate::expr::BinaryOperator::ContainNone => BinaryOperator::ContainNone,
177 crate::expr::BinaryOperator::Inside => BinaryOperator::Inside,
178 crate::expr::BinaryOperator::NotInside => BinaryOperator::NotInside,
179 crate::expr::BinaryOperator::AllInside => BinaryOperator::AllInside,
180 crate::expr::BinaryOperator::AnyInside => BinaryOperator::AnyInside,
181 crate::expr::BinaryOperator::NoneInside => BinaryOperator::NoneInside,
182 crate::expr::BinaryOperator::Outside => BinaryOperator::Outside,
183 crate::expr::BinaryOperator::Intersects => BinaryOperator::Intersects,
184 crate::expr::BinaryOperator::Range => BinaryOperator::Range,
185 crate::expr::BinaryOperator::RangeInclusive => BinaryOperator::RangeInclusive,
186 crate::expr::BinaryOperator::RangeSkip => BinaryOperator::RangeSkip,
187 crate::expr::BinaryOperator::RangeSkipInclusive => BinaryOperator::RangeSkipInclusive,
188 crate::expr::BinaryOperator::Matches(m) => BinaryOperator::Matches(m.into()),
189 crate::expr::BinaryOperator::NearestNeighbor(n) => {
190 BinaryOperator::NearestNeighbor(Box::new((*n).into()))
191 }
192 }
193 }
194}
195
196impl From<NearestNeighbor> for crate::expr::operator::NearestNeighbor {
197 fn from(value: NearestNeighbor) -> Self {
198 match value {
199 NearestNeighbor::K(k, d) => crate::expr::operator::NearestNeighbor::K(k, d),
200 NearestNeighbor::KTree(k) => crate::expr::operator::NearestNeighbor::KTree(k),
201 NearestNeighbor::Approximate(k, ef) => {
202 crate::expr::operator::NearestNeighbor::Approximate(k, ef)
203 }
204 }
205 }
206}
207
208impl From<crate::expr::operator::NearestNeighbor> for NearestNeighbor {
209 fn from(value: crate::expr::operator::NearestNeighbor) -> Self {
210 match value {
211 crate::expr::operator::NearestNeighbor::K(k, d) => NearestNeighbor::K(k, d),
212 crate::expr::operator::NearestNeighbor::KTree(k) => NearestNeighbor::KTree(k),
213 crate::expr::operator::NearestNeighbor::Approximate(k, ef) => {
214 NearestNeighbor::Approximate(k, ef)
215 }
216 }
217 }
218}
219
220impl From<AssignOperator> for crate::expr::AssignOperator {
221 fn from(value: AssignOperator) -> Self {
222 match value {
223 AssignOperator::Assign => crate::expr::AssignOperator::Assign,
224 AssignOperator::Add => crate::expr::AssignOperator::Add,
225 AssignOperator::Extend => crate::expr::AssignOperator::Extend,
226 AssignOperator::Subtract => crate::expr::AssignOperator::Subtract,
227 }
228 }
229}
230
231impl From<crate::expr::AssignOperator> for AssignOperator {
232 fn from(value: crate::expr::AssignOperator) -> Self {
233 match value {
234 crate::expr::AssignOperator::Assign => AssignOperator::Assign,
235 crate::expr::AssignOperator::Add => AssignOperator::Add,
236 crate::expr::AssignOperator::Extend => AssignOperator::Extend,
237 crate::expr::AssignOperator::Subtract => AssignOperator::Subtract,
238 }
239 }
240}