6个版本

0.3.2 2023年9月24日
0.3.1 2023年9月24日
0.2.2 2023年9月24日

#194模板引擎

每月 29次下载

自定义许可

22KB
453

rust workflow

简介

此库在字符串中执行类似批处理的扩展,即把 %VAR% 扩展成某个上下文中的值。它类似于Windows版本的 shellexpand

除了上下文变量外,它还可以扩展数字参数(例如 %1%*)语法,通过用户提供的参数列表。

shellexpand 不同,不存在的变量将扩展为空字符串。

用法

请看下面的示例,了解如何定义上下文。该库还提供默认的 cmdexpand::env_context,可以扩展环境变量。

use cmdexpand::Expander;

fn mycontext(s: &str) -> Option<String> {
   match s {
       "NAME" => Some(String::from("Alice")),
       "HOBBY" => Some(String::from("coding")),
       _ => None,
   }
}

assert_eq!(Expander::new(r#"echo "%NAME%'s hobby is %HOBBY%""#)
              .add_context(&mycontext)
              .expand()
              .unwrap(),
           r#"echo "Alice's hobby is coding""#);

您也可以提供参数列表。

use cmdexpand::Expander;

assert_eq!(Expander::new("del %*")
            .add_args(&["a.txt", "b.txt"])
            .expand()
            .unwrap(), "del a.txt b.txt");

依赖关系

~1.1–1.8MB
~36K SLoC