dataflow_rs/engine/functions/
config.rs1use crate::engine::functions::map::MapConfig;
2use crate::engine::functions::validation::ValidationConfig;
3use serde::Deserialize;
4use serde_json::Value;
5
6#[derive(Debug, Clone, Deserialize)]
9#[serde(untagged)]
10pub enum FunctionConfig {
11 Map {
12 name: MapName,
13 input: MapConfig,
14 },
15 Validation {
16 name: ValidationName,
17 input: ValidationConfig,
18 },
19 Custom {
21 name: String,
22 input: Value,
23 },
24}
25
26#[derive(Debug, Clone, Deserialize)]
27#[serde(rename_all = "lowercase")]
28pub enum MapName {
29 Map,
30}
31
32#[derive(Debug, Clone, Deserialize, PartialEq)]
33#[serde(rename_all = "lowercase")]
34pub enum ValidationName {
35 Validation,
36 Validate,
37}
38
39impl FunctionConfig {
40 pub fn function_name(&self) -> &str {
42 match self {
43 FunctionConfig::Map { .. } => "map",
44 FunctionConfig::Validation { .. } => "validate",
45 FunctionConfig::Custom { name, .. } => name,
46 }
47 }
48}