Skip to main content

surrealdb_expr/expr/convert/
module.rs

1//! `sql` -> `expr` conversions for [`crate::sql::module`].
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::expr;
7use crate::sql::module::*;
8
9impl From<expr::ModuleExecutable> for ModuleExecutable {
10	fn from(executable: expr::ModuleExecutable) -> Self {
11		match executable {
12			expr::ModuleExecutable::Surrealism(surrealism) => {
13				ModuleExecutable::Surrealism(surrealism.into())
14			}
15			expr::ModuleExecutable::Silo(silo) => ModuleExecutable::Silo(silo.into()),
16		}
17	}
18}
19
20impl From<ModuleExecutable> for expr::ModuleExecutable {
21	fn from(executable: ModuleExecutable) -> Self {
22		match executable {
23			ModuleExecutable::Surrealism(surrealism) => {
24				expr::ModuleExecutable::Surrealism(surrealism.into())
25			}
26			ModuleExecutable::Silo(silo) => expr::ModuleExecutable::Silo(silo.into()),
27		}
28	}
29}
30
31impl From<expr::SurrealismExecutable> for SurrealismExecutable {
32	fn from(executable: expr::SurrealismExecutable) -> Self {
33		Self(executable.0.into())
34	}
35}
36
37impl From<SurrealismExecutable> for expr::SurrealismExecutable {
38	fn from(executable: SurrealismExecutable) -> Self {
39		expr::SurrealismExecutable(executable.0.into())
40	}
41}
42
43impl From<expr::SiloExecutable> for SiloExecutable {
44	fn from(executable: expr::SiloExecutable) -> Self {
45		Self {
46			organisation: executable.organisation,
47			package: executable.package,
48			major: executable.major,
49			minor: executable.minor,
50			patch: executable.patch,
51		}
52	}
53}
54
55impl From<SiloExecutable> for expr::SiloExecutable {
56	fn from(executable: SiloExecutable) -> Self {
57		Self {
58			organisation: executable.organisation,
59			package: executable.package,
60			major: executable.major,
61			minor: executable.minor,
62			patch: executable.patch,
63		}
64	}
65}