Thank you for Tags::parse(..).
We probably don't need/want any out-of-the box parsing for key-value pairs, since the separators... may vary. But how about
KeyValueMap::new(given_map: HashMap) that would take its ownership (especially since the current implementation is a wrapper), and optionally:
- a conversion function like
KeyValueMap::new(it: Iterator<Item = (impl String, impl String)>) -> Self? (Or implementing TryFrom, but something tells me that TryFrom is not a good way to go here.)