1pub mod condition;
2pub mod prelude;
3pub mod primitives;
4
5pub use vantage_expressions;
8pub(crate) mod types;
9
10#[cfg(any(feature = "sqlite", feature = "postgres", feature = "mysql"))]
11mod set_writes;
12#[cfg(any(feature = "sqlite", feature = "postgres", feature = "mysql"))]
13mod sql_exec;
14#[cfg(any(feature = "sqlite", feature = "postgres", feature = "mysql"))]
15mod sql_tx;
16#[cfg(all(
17 feature = "vista",
18 any(feature = "sqlite", feature = "postgres", feature = "mysql")
19))]
20mod sql_vista;
21#[cfg(any(feature = "sqlite", feature = "postgres", feature = "mysql"))]
22mod table_writes;
23
24#[cfg(feature = "sqlite")]
25pub mod sqlite;
26
27#[cfg(feature = "postgres")]
28pub mod postgres;
29
30#[cfg(feature = "mysql")]
31pub mod mysql;
32
33#[cfg(feature = "rhai")]
34pub mod rhai_engine;
35
36pub(crate) fn like_pattern_str(text: &str) -> String {
41 let escaped = text
42 .replace('$', "$$")
43 .replace('%', "$%")
44 .replace('_', "$_");
45 format!("%{escaped}%")
46}
47
48#[cfg(feature = "vista")]
50pub(crate) fn like_pattern(value: &ciborium::Value) -> String {
51 like_pattern_str(&vantage_vista::operand_text(value))
52}