crosvm/serde_keyvalue
Alexandre Courbot aa81c96fd1 serde_keyvalue: make unquoted strings stop at the next bracket
In order to support tuples and enum variants, we need to add an extra
separator to specify the bounds of the tuple or enum. `[` and `]` are
good candidates since they are not often met in strings and are not
reserved by the shell, contrary to `(` and `)`.

BUG=b:248993755
TEST=cargo test -p serde_keyvalue
TEST=cargo test

Change-Id: I6743461f0cd3af0bce11e4978fa14776048170a5
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3915038
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Alexandre Courbot <acourbot@chromium.org>
2022-10-05 06:55:56 +00:00
..
serde_keyvalue_derive Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
src serde_keyvalue: make unquoted strings stop at the next bracket 2022-10-05 06:55:56 +00:00
Cargo.toml serde_keyvalue: use nom crate for parsing 2022-08-24 00:37:59 +00:00
README.md

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.