use std::collections::HashMap; use serde_json::{json, Value}; use crate::{ parameter::Parameter, Result, aerr }; #[derive(Debug, Clone, PartialEq)] pub struct Template { pub name: String, pub args: Vec, pub kwargs: HashMap, pub save: bool } impl Template { pub fn new(name: &str, kwargs: HashMap) -> Self { Self { name: name.to_string(), args: Vec::new(), kwargs, save: true } } pub fn unsaved(mut self) -> Self { self.save = false; self } pub fn empty(name: &str) -> Self { Self::new(name, HashMap::new()) } pub fn from_json(val: &Value) -> Result