6个版本
0.3.2 | 2023年9月24日 |
---|---|
0.3.1 | 2023年9月24日 |
0.2.2 | 2023年9月24日 |
#194 在 模板引擎
每月 29次下载
22KB
453 行
简介
此库在字符串中执行类似批处理的扩展,即把 %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