ftd/
condition.rs

1#[derive(Debug, PartialEq, Clone, serde::Serialize, serde::Deserialize)]
2pub struct Condition {
3    pub variable: String,
4    pub value: serde_json::Value,
5}
6
7impl Condition {
8    pub fn is_true(&self, data: &ftd::DataDependenciesMap) -> bool {
9        if let Some(ftd::Data { value, .. }) = data.get(self.variable.as_str()) {
10            let v = value.to_string().replace('\"', "");
11            return if self.value.eq("$IsNull$") {
12                v.is_empty() || value.eq(&serde_json::Value::Null)
13            } else if self.value.eq("$IsNotNull$") {
14                !v.is_empty() && !value.eq(&serde_json::Value::Null)
15            } else {
16                self.value.eq(value)
17            };
18        }
19
20        true
21    }
22}