2个版本

0.1.1 2022年12月4日
0.1.0 2021年11月20日

#124#argument


scanfmt 中使用

MIT/Apache

15KB
391

Scanfmt

此crate提供了解析文本的宏。

该宏接受一个格式字符串和要解析到的参数的名称。

格式字符串字面量的语法与format!宏家族非常相似

format_string := text [ maybe_format text ] *
maybe_format := '{' '{' | '}' '}' | format
format := '{' [ argument ] [ ':' format_spec ] '}'
argument := integer | identifier

format_spec := 'o' | 'x' | 'X' | 'b'

在上面的语法中,text不能包含任何'{''}'字符。

用法

use scanfmt::{scanfmt, ScanError};
fn my_format(s: &str) -> Result<(u16, u32), ScanError> {
    let a;
    let b;
    scanfmt!(s, "a: {}, b: {}", a, b);
    Ok((a, b))
}

请注意,scanfmt!需要函数返回一个结果以确保变量始终被初始化。

依赖项

~1.5MB
~35K SLoC