crosvm/serde_keyvalue
Alexandre Courbot 7e0206ee4a serde_keyvalue: use nom crate for parsing
Use the nom crate for parsing. This will arguably be both simpler to
read and more reliable than our current ad-hoc parser.

Add a few extra tests to enforce the new rules that the new parser is
supposed to enforce.

BUG=b:218223240
TEST=cargo test -p serde_keyvalues -p crosvm
TEST=ARCVM starts successfully.

Change-Id: I4ea188ffe8aee872071c900793c50127855403ec
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3822428
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Tested-by: Alexandre Courbot <acourbot@chromium.org>
Commit-Queue: Alexandre Courbot <acourbot@chromium.org>
2022-08-24 00:37:59 +00:00
..
serde_keyvalue_derive Reformat imports 2022-07-28 00:15:50 +00:00
src serde_keyvalue: use nom crate for parsing 2022-08-24 00:37:59 +00:00
Cargo.toml serde_keyvalue: use nom crate for parsing 2022-08-24 00:37:59 +00:00
README.md add serde_keyvalue crate 2022-03-24 01:33:21 +00:00

Serde deserializer from key=value strings

A lightweight serde deserializer for strings containing key-value pairs separated by commas, as commonly found in command-line parameters.

Say your program takes a command-line option of the form:

--foo type=bar,active,nb_threads=8

This crate provides a from_key_values function that deserializes these key-values into a configuration structure. Since it uses serde, the same configuration structure can also be created from any other supported source (such as a TOML or YAML configuration file) that uses the same keys.

Integration with the argh command-line parser is also provided via the argh_derive feature.

See the inline documentation for examples and more details.