usage/docs/markdown/
arg.rs

1use crate::docs::markdown::renderer::MarkdownRenderer;
2use crate::docs::models::SpecArg;
3use crate::error::UsageErr;
4
5impl MarkdownRenderer {
6    pub fn render_arg(&self, arg: &crate::SpecArg) -> Result<String, UsageErr> {
7        let mut arg = SpecArg::from(arg);
8        arg.render_md(self);
9        let mut ctx = self.clone();
10        ctx.insert("arg", &arg);
11        ctx.render("arg_template.md.tera")
12    }
13}
14
15#[cfg(test)]
16mod tests {
17    use crate::docs::markdown::renderer::MarkdownRenderer;
18    use crate::spec;
19    use insta::assert_snapshot;
20
21    #[test]
22    fn test_render_markdown_arg() {
23        let spec = spec! { r#"arg "arg1" help="arg1 description""# }.unwrap();
24        let ctx = MarkdownRenderer::new(spec.clone());
25        assert_snapshot!(ctx.render_arg(&spec.cmd.args[0]).unwrap(), @"arg1 description");
26    }
27}