drasi_core/evaluation/functions/
text.rs1#[cfg(test)]
16mod tests;
17mod text;
18
19use std::sync::Arc;
20
21use self::text::{
22 LTrim, Left, RTrim, Replace, Reverse, Right, Split, Substring, ToLower, ToString,
23 ToStringOrNull, ToUpper, Trim,
24};
25
26use super::{Function, FunctionRegistry};
27
28pub trait RegisterTextFunctions {
29 fn register_text_functions(&self);
30}
31
32impl RegisterTextFunctions for FunctionRegistry {
33 fn register_text_functions(&self) {
34 self.register_function("toUpper", Function::Scalar(Arc::new(ToUpper {})));
35 self.register_function("toLower", Function::Scalar(Arc::new(ToLower {})));
36 self.register_function("trim", Function::Scalar(Arc::new(Trim {})));
37 self.register_function("ltrim", Function::Scalar(Arc::new(LTrim {})));
38 self.register_function("rtrim", Function::Scalar(Arc::new(RTrim {})));
39 self.register_function("reverse", Function::Scalar(Arc::new(Reverse {})));
40 self.register_function("left", Function::Scalar(Arc::new(Left {})));
41 self.register_function("right", Function::Scalar(Arc::new(Right {})));
42 self.register_function("replace", Function::Scalar(Arc::new(Replace {})));
43 self.register_function("split", Function::Scalar(Arc::new(Split {})));
44 self.register_function("substring", Function::Scalar(Arc::new(Substring {})));
45 self.register_function("toString", Function::Scalar(Arc::new(ToString {})));
46 self.register_function(
47 "toStringOrNull",
48 Function::Scalar(Arc::new(ToStringOrNull {})),
49 );
50 }
51}