common_function/scalars/
json.rs1use std::sync::Arc;
16pub mod json_get;
17mod json_is;
18mod json_path_exists;
19mod json_path_match;
20mod json_to_string;
21mod parse_json;
22
23use json_get::{JsonGetBool, JsonGetFloat, JsonGetInt, JsonGetString};
24use json_is::{
25 JsonIsArray, JsonIsBool, JsonIsFloat, JsonIsInt, JsonIsNull, JsonIsObject, JsonIsString,
26};
27use json_to_string::JsonToStringFunction;
28use parse_json::ParseJsonFunction;
29
30use crate::function_registry::FunctionRegistry;
31
32pub(crate) struct JsonFunction;
33
34impl JsonFunction {
35 pub fn register(registry: &FunctionRegistry) {
36 registry.register(Arc::new(JsonToStringFunction));
37 registry.register(Arc::new(ParseJsonFunction));
38
39 registry.register(Arc::new(JsonGetInt));
40 registry.register(Arc::new(JsonGetFloat));
41 registry.register(Arc::new(JsonGetString));
42 registry.register(Arc::new(JsonGetBool));
43
44 registry.register(Arc::new(JsonIsNull));
45 registry.register(Arc::new(JsonIsInt));
46 registry.register(Arc::new(JsonIsFloat));
47 registry.register(Arc::new(JsonIsString));
48 registry.register(Arc::new(JsonIsBool));
49 registry.register(Arc::new(JsonIsArray));
50 registry.register(Arc::new(JsonIsObject));
51
52 registry.register(Arc::new(json_path_exists::JsonPathExistsFunction));
53 registry.register(Arc::new(json_path_match::JsonPathMatchFunction));
54 }
55}