| 13 | |
| 14 | impl Function for If { |
| 15 | fn get_metadata(&self) -> FunctionMetadata { |
| 16 | FunctionMetadata { |
| 17 | name: "if".to_string(), |
| 18 | description: t!("functions.if.description").to_string(), |
| 19 | category: vec![FunctionCategory::Logical], |
| 20 | min_args: 3, |
| 21 | max_args: 3, |
| 22 | accepted_arg_ordered_types: vec![ |
| 23 | vec![FunctionArgKind::Boolean], |
| 24 | vec![FunctionArgKind::String, FunctionArgKind::Number, FunctionArgKind::Array, FunctionArgKind::Object], |
| 25 | vec![FunctionArgKind::String, FunctionArgKind::Number, FunctionArgKind::Array, FunctionArgKind::Object], |
| 26 | ], |
| 27 | remaining_arg_accepted_types: None, |
| 28 | return_types: vec![FunctionArgKind::String, FunctionArgKind::Number, FunctionArgKind::Array, FunctionArgKind::Object], |
| 29 | } |
| 30 | } |
| 31 | |
| 32 | fn invoke(&self, args: &[Value], _context: &Context) -> Result<Value, DscError> { |
| 33 | let Some(condition) = args[0].as_bool() else { |