35 releases

0.1.40 Nov 16, 2024
0.1.38 Oct 7, 2024
0.1.13 Jul 16, 2024
0.1.8 Feb 22, 2024
0.1.1 Jun 16, 2023

#2294 in Parser implementations

Download history 3166/week @ 2024-09-08 1334/week @ 2024-09-15 2174/week @ 2024-09-22 1282/week @ 2024-09-29 1016/week @ 2024-10-06 1021/week @ 2024-10-13 614/week @ 2024-10-20 635/week @ 2024-10-27 768/week @ 2024-11-03 2363/week @ 2024-11-10 1298/week @ 2024-11-17 647/week @ 2024-11-24 485/week @ 2024-12-01 601/week @ 2024-12-08 682/week @ 2024-12-15 547/week @ 2024-12-22

2,368 downloads per month
Used in 8 crates (7 directly)

Apache-2.0

1MB
8K SLoC

Lossless parser for Debian Control files

This crate provides a parser for Debian control files. It is lossless, meaning that it will preserve the original formatting of the file. It also provides a way to serialize the parsed data back to a string.

use debian_control::{Control, Priority};
use std::fs::File;

let mut control = Control::new();
let mut source = control.add_source("hello");
source.set_section("rust");

let mut binary = control.add_binary("hello");
binary.set_architecture("amd64");
binary.set_priority(Priority::Optional);
binary.set_description("Hello, world!");

assert_eq!(control.to_string(), r#"Source: hello
Section: rust

Package: hello
Architecture: amd64
Priority: optional
Description: Hello, world!
"#);

lib.rs:

Parser for Debian control files.

This crate provides a parser for Debian control files.

Example

use debian_control::lossy::Control;
use debian_control::fields::Priority;
use std::fs::File;

let mut control = Control::new();
let mut source = &mut control.source;
source.name = "hello".to_string();
source.section = Some("rust".to_string());

let mut binary = control.add_binary("hello");
binary.architecture = Some("amd64".to_string());
binary.priority = Some(Priority::Optional);
binary.description = Some("Hello, world!".to_string());

assert_eq!(control.to_string(), r#"Source: hello
Section: rust

Package: hello
Architecture: amd64
Priority: optional
Description: Hello, world!
"#);

See the lossless module for a parser that preserves all comments and formatting, and as well as allowing inline errors.

Dependencies

~6–9MB
~155K SLoC