Crates.io | scanfmt |
lib.rs | scanfmt |
version | 0.2.1 |
source | src |
created_at | 2021-11-20 13:40:50.210569 |
updated_at | 2022-12-04 05:33:54.943906 |
description | Scanfmt: easy to use macro for parsing a string |
homepage | |
repository | https://github.com/fee1-dead/scanfmt |
max_upload_size | |
id | 484908 |
size | 10,926 |
This crate offers a macro for parsing text.
The macro accepts a format string, and the name of arguments to parse into.
The syntax of the format string literal is quite similar to the format!
macro family:
format_string := text [ maybe_format text ] *
maybe_format := '{' '{' | '}' '}' | format
format := '{' [ argument ] [ ':' format_spec ] '}'
argument := integer | identifier
format_spec := 'o' | 'x' | 'X' | 'b'
In the above grammar, text
must not contain any '{'
or '}'
characters.
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))
}
Note that scanfmt! requires the function to return a result to ensure that variables are always initialized.