Skip to main content

surrealdb_expr/
lib.rs

1//! The SurrealDB expression layer.
2//!
3//! `expr` holds the logical form of SurrealQL — [`expr::Expr`] and the
4//! statement types the engine plans and evaluates — and `val` holds the value
5//! model: [`val::Value`], its containers, and the scalar newtypes.
6//!
7//! This crate is an internal implementation detail of SurrealDB: its API is
8//! unstable and changes without notice. Depend on the `surrealdb` SDK or
9//! `surrealdb-core` instead.
10
11#[macro_use]
12extern crate surrealdb_collections;
13#[macro_use]
14extern crate tracing;
15
16pub mod expr;
17#[cfg(feature = "scripting")]
18pub mod js;
19pub use val::rnd;
20pub mod val;
21
22// The module tree spells intra-layer paths as `crate::<name>`; these aliases
23// keep those paths valid for the layers this crate sits on.
24pub(crate) use surrealdb_iam as iam;
25pub(crate) use surrealdb_sql as sql;
26pub(crate) use surrealdb_syn as syn;
27pub(crate) mod types {
28	//! The public type surface, re-exported with `Public` prefixes so internal
29	//! and public forms stay visually distinct at use sites.
30
31	#[allow(unused_imports)]
32	pub use surrealdb_types::{
33		Action as PublicAction, Array as PublicArray, Bytes as PublicBytes,
34		Datetime as PublicDatetime, Duration as PublicDuration, File as PublicFile,
35		Geometry as PublicGeometry, GeometryKind as PublicGeometryKind, Kind as PublicKind,
36		KindLiteral as PublicKindLiteral, Notification as PublicNotification,
37		Number as PublicNumber, Object as PublicObject, Range as PublicRange,
38		RecordId as PublicRecordId, RecordIdKey as PublicRecordIdKey,
39		RecordIdKeyRange as PublicRecordIdKeyRange, Set as PublicSet, SurrealValue,
40		Table as PublicTable, Uuid as PublicUuid, Value as PublicValue,
41		Variables as PublicVariables,
42	};
43}