I'm wondering what is the simplest way to look up a value in a map-collection
Map<_, String> and use a string-literal (possibly the empty string) as a default. (For the purpose of this question, it doesn't matter whether the collection is
BTreeMap, or something else.)
The fundamental problem is that the value type,
&String, doesn't automatically deref to
&str in most attempts that I've tried.
The simplest working version I've found so far is:
h.get("baz").map_or("", |s| &s)
This looks weird to me, because
.get() already returns a reference, so the only purpose of the
|s| &s lambda is to trigger the
I am a bit surprised I couldn't find any existing threads (here or anywhere else on the internet) about this; it seems like it would be a fairly common use case (e.g. when implementing environment variables in a shell).