key1=val1 key2=val2 key3=val3...
There are a few additional constraints
- if the value is quoted, I'd like it to have the quotes stripped
- if the value has an equals sign in it, that's cool
- if the value is multiple words, that's fine even if it's not quoted. (I won't go so far as to say that unquoted space separated strings should be allowed to have equals signs embedded.)
I found a library on the net to do this: github.com/kr/logfmt.
Here is the code playing with it
Unfortunately, it had a few other ideas.
- a bare word (no equals sign attached) should be treated as a key with no value
- equals signs embedded in strings should be treated as separators
You can see these rules coming through in test cases 2 and 4 in the output
Ah well. It was an interesting attempt.
(one test case that's missing: does a number in quotes turn in to a number (float or int) or stay a string?)