Skip to main content

ffizer/cfg/
script_cfg.rs

1use super::transform_values::TransformsValues;
2use crate::Result;
3use schemars::JsonSchema;
4
5#[derive(Deserialize, Serialize, Debug, Default, Clone, PartialEq, JsonSchema)]
6pub(crate) struct ScriptCfg {
7    /// message to display
8    pub(crate) message: Option<String>,
9    /// command to execute
10    pub(crate) cmd: Option<String>,
11    /// default answer for confirmation of execution
12    pub(crate) default_confirm_answer: Option<String>,
13}
14
15impl TransformsValues for ScriptCfg {
16    /// transforms default_value & ignore
17    fn transforms_values<F>(&self, render: &F) -> Result<Self>
18    where
19        F: Fn(&str) -> String,
20    {
21        let message = self.message.transforms_values(render)?;
22        let cmd = self.cmd.transforms_values(render)?;
23        let default_confirm_answer = self.default_confirm_answer.transforms_values(render)?;
24        Ok(ScriptCfg {
25            message,
26            cmd,
27            default_confirm_answer,
28        })
29    }
30}