Crates.io | debcontrol_struct_derive |
lib.rs | debcontrol_struct_derive |
version | 0.3.1 |
source | src |
created_at | 2021-08-04 11:37:38.022527 |
updated_at | 2021-09-04 06:56:32.169101 |
description | Automatic Debian control file parsing for structs (proc macro). |
homepage | |
repository | https://github.com/MicroJoe/debcontrol_struct |
max_upload_size | |
id | 431474 |
size | 20,802 |
Automatic Debian control file parsing for structs.
In order to use this crate, you have to add the following dependencies into
your project's Cargo.toml
file:
[dependencies]
debcontrol_struct = "0.3.1"
After the crate is installed, you can enjoy the DebControl
derive!
By defining the following structure:
use debcontrol::{Paragraph, Field};
use debcontrol_struct::DebControl;
#[derive(DebControl)]
struct DerivedStruct {
first: String,
multiple_words: String,
optional: Option<String>,
}
You can then automatically parse the structure from a debcontrol Paragraph:
let input = &debcontrol::parse_str(
"First: Hello\n\
Multiple-Words: World\n"
).unwrap()[0];
let derived = DerivedStruct::from_paragraph(&input).unwrap();
assert_eq!("Hello", derived.first);
assert_eq!("World", derived.multiple_words);
assert_eq!(None, derived.optional);
Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.