7个稳定版本
1.1.3 | 2021年4月26日 |
---|---|
1.1.2 | 2021年4月21日 |
1.1.1 | 2021年4月20日 |
1.0.2 | 2021年4月17日 |
1.0.0 | 2021年4月15日 |
#199 在 值格式化
12KB
165 行
一个crate,用于使用嵌入式Rust表达式格式化和打印字符串,类似于Python中的f-string格式化。
示例
使用:?
修饰符。
use expression_format::ex_format;
let v = vec![1, 2, 3];
assert_eq!(ex_format!("v = {:?v}"), "v = [1, 2, 3]");
使用其他修饰符(详情请见std:fmt
)。
use expression_format::ex_format;
// Space after format specs if it doesn't ends in ?
assert_eq!(ex_format!(r#"Hello {:-<5 "x"}!"#), "Hello x----!");
assert_eq!(ex_format!("{:.5 12.3}"), "12.30000");
assert_eq!(ex_format!("{:#010x 27}!"), "0x0000001b!");
不支持*
和$
参数。
打印字段内容。
use expression_format::ex_format;
let arg = ["ipsum", "sit"];
assert_eq!(ex_format!("lorem {arg[0]} dolor {arg[1]} amet"), "lorem ipsum dolor sit amet");
使用复杂表达式简化的ex_format!
版本。
use expression_format::short::exf;
assert_eq!(
exf!(r#"Hello { { // Space after the first { since {{ is an escape sequence.
let first = "Wo";
let second = "rld";
let mut result = String::from(first);
result.push_str(second);
result
}}!"#),
"Hello World!"
);
输出到标准输出并换行。
use expression_format::short::expl; // Short name version of ex_println!
#[derive(Debug)]
struct Point {x: i32, y: i32}
expl!("value of point = {:?Point {x: 1 + 2, y: 3 * 4 }}");
// stdout: value of point = Point { x: 3, y: 12 }
使用{{
和}}
转义括号。
use expression_format::short::exf;
let value = 10;
assert_eq!(exf!("{{value}} = {value}"), "{value} = 10");
依赖项
约2.2–3MB
约54K SLoC