Expand description
§gullwing
Runtime formatting and parsing with Python’s Format Specification Mini-Language.
This library provides two main capabilities:
- Formatting: Format values using runtime format strings (like Python’s
format()) - Parsing: Extract structured data from strings using format patterns (like Python’s
parsepackage)
§Format Specification Mini-Language
The format specification follows Python’s syntax:
[[fill]align][sign][z][#][0][width][grouping][.precision][type]See the Python documentation for complete details.
§Quick Start
§Formatting
use gullwing::{Formatter, Value};
use std::collections::HashMap;
let formatter = Formatter::new("{name:>10} {value:05d}").unwrap();
let mut values = HashMap::new();
values.insert("name".to_string(), Value::from("Alice"));
values.insert("value".to_string(), Value::from(42));
let output = formatter.format_map(&values).unwrap();
assert_eq!(output, " Alice 00042");§Parsing
use gullwing::Parser;
let parser = Parser::new("{name} is {age:d} years old").unwrap();
let result = parser.parse("Alice is 30 years old").unwrap().unwrap();
assert_eq!(result.get("name").unwrap().as_str(), Some("Alice"));
assert_eq!(result.get("age").unwrap().as_int(), Some(30));Re-exports§
pub use error::Error;pub use error::Result;pub use format::Formatter;pub use parse::ParseResult;pub use parse::Parser;pub use spec::Alignment;pub use spec::FormatSpec;pub use spec::Grouping;pub use spec::Sign;pub use spec::TypeSpec;pub use types::Value;