From 3e18a6df6c5f26bf04b6383e00c8debb1b08b7e6 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Sun, 21 Feb 2016 19:57:54 +0100 Subject: [PATCH] doc: libimagutil: Add kv-split documentation --- doc/src/03000-lib-util.md | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/doc/src/03000-lib-util.md b/doc/src/03000-lib-util.md index ade2ac9c..d31eb4f5 100644 --- a/doc/src/03000-lib-util.md +++ b/doc/src/03000-lib-util.md @@ -9,11 +9,23 @@ used by all other libraries and/or binaries. It is explicitely not intended for module-use only, but for all other libraries. -## Datatypes {#sec:libutil:datatypes} +## Key-Value split {#sec:libutil:kvsplit} -_Nothing here yet_ +This helper implements functionality to split key-value string into two parts. +It was introduced to simplify commandline specification for header fields (see +@lst:kvsplit:headerspec). + +```{#lst:kvsplit:headerspec .bash .numberLines caption="Headerfield spec"} +imag store create --path /some.entry entry --header field=foo +# ^^^^^^^^^ +``` + +It is implemented by introducing a `KeyValue` type which is generic over Key +and Value. This type gets implemented `KeyValue for String` to +be able to split a `String` into two `String` objects, key and value +respectively. The implementation is realized via Regex. + +The `KeyValue` type implementes `Into<(K, V)>` for convenience. -## Functions {#sec:libutil:functions} -_Nothing here yet_