use serde::{Deserialize, Serialize};
use serde_json::Value;
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct TransformNode {
pub transform: TransformType,
#[serde(default = "default_input")]
pub input: Value,
}
fn default_input() -> Value {
Value::Object(serde_json::Map::new())
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum TransformType {
Identity,
FieldMapping(FieldMappingSpec),
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct FieldMappingSpec {
pub mappings: Vec<FieldMapping>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct FieldMapping {
pub from: String,
pub to: String,
}