2 个稳定版本
3.0.0 | 2023 年 1 月 25 日 |
---|---|
2.0.0 | 2023 年 1 月 24 日 |
1.0.1 |
|
#19 in #limited
14KB
273 行
动态格式化 README
轻量级、动态、Python 风格的字符串格式化(仅支持 String
,{key}
模式)。它只需要 std
就可以工作。
转义如 {{
或 }}
。
安装
cargo add [email protected]
示例
use dyn_formatting::dynamic_format;
assert_eq!(
dynamic_format(
"I'm {name}. I'm {age} years old now.",
&[("name", "ABC"), ("age", "20")].into()
).unwrap(),
"I'm ABC. I'm 20 years old now.".to_string()
);
use dyn_formatting::dynamic_format;
use std::collections::HashMap;
let value_age = (15).to_string(); // Make lifetime long enough
let dictionary = HashMap::from([
("age", value_age.as_str()),
]);
assert_eq!(
dynamic_format("{{{age} }}{age}", &dictionary).unwrap(),
"{15 }15"
)
use dyn_formatting::dynamic_format;
assert!(
dynamic_format(
"I'm {name}. I'm {age} years old now.",
&[("name", "ABC")].into()
).is_err() // Key error
);
use dyn_formatting::dynamic_format;
assert!(
dynamic_format(
"I'm {name{name}}.",
&[("name", "ABC")].into()
).is_err() // Token error: '{' unmatched.
);