Extract a string argument at `idx`, returning `None` for null/missing.
(args: &[Value], idx: usize)
| 6 | |
| 7 | /// Extract a string argument at `idx`, returning `None` for null/missing. |
| 8 | pub fn str_arg(args: &[Value], idx: usize) -> Option<String> { |
| 9 | match args.get(idx)? { |
| 10 | Value::String(s) => Some(s.clone()), |
| 11 | Value::Uuid(s) | Value::Ulid(s) | Value::Regex(s) => Some(s.clone()), |
| 12 | Value::DateTime(dt) | Value::NaiveDateTime(dt) => Some(dt.to_iso8601()), |
| 13 | Value::Duration(d) => Some(d.to_human()), |
| 14 | _ => None, |
| 15 | } |
| 16 | } |
| 17 | |
| 18 | /// Extract a numeric argument with bool coercion. |
| 19 | pub fn num_arg(args: &[Value], idx: usize) -> Option<f64> { |