Crate gullwing

Crate gullwing 

Source
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 parse package)

§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;

Modules§

error
Error types for the gullwing library.
format
Runtime string formatting with format specifications.
parse
Runtime string parsing using format specifications.
spec
Format specification parsing and types.
types
Value types for formatting and parsing.