Expand description
A crate for parsing Debian control files.
§Parse complete input
The parse_str function will parse a complete control file into a vec of
Paragraph values:
let paragraphs = parse_str("
a-field: with a value
another-field: with a...
 ...continuation
")?;
assert_eq!(paragraphs, vec![Paragraph {
    fields: vec![
        Field { name: "a-field", value: String::from("with a value") },
        Field { name: "another-field", value: String::from("with a...\n...continuation") }
    ]
}]);§Parse streaming input
The parse_streaming and parse_finish
functions can be used to parse a control file incrementally:
let result = parse_streaming("field: value")?;
assert_eq!(result, Streaming::Incomplete);
let result = parse_streaming("field: value\n\n")?;
assert_eq!(result, Streaming::Item(("", Paragraph {
    fields: vec![
        Field { name: "field", value: String::from("value") }
    ]
})));
let result = parse_finish("remaining: input")?;
assert_eq!(result, Some(Paragraph {
    fields: vec![
        Field { name: "remaining", value: String::from("input") }
    ]
}));Structs§
- BufParse
 - A streaming control file parser that buffers input internally.
 - Field
 - A single field in a control file.
 - Paragraph
 - A paragraph in a control file.
 - Syntax
Error  - A parsing syntax error.
 
Enums§
- BufParse
Error  - An error type returned by 
BufParse. - Streaming
 - A return value from the streaming parser.
 
Traits§
- BufParse
Input  - A helper trait for stream input.
 
Functions§
- parse_
finish  - Finish parsing the streaming input and return the final remaining paragraph, if any.
 - parse_
str  - Parse the given complete control file into paragraphs.
 - parse_
streaming  - Attempt to parse a paragraph from the given input.