pub fn or_insert_with<F: FnOnce() -> MetadataValue<VE>>(
        self,
        default: F,
    ) -> &'a mut MetadataValue<VE> {
        use self::Entry::*;

        match self {
            Occupied(e) => e.into_mut(),
            Vacant(e) => e.insert(default()),
        }
    }
Ensures a value is in the entry by inserting the result of the default
function if empty.

The default function is not called if the entry exists in the map.
Returns a mutable reference to the **first** value in the entry.

# Examples

Basic usage.

```
# use tonic::metadata::*;
let mut map = MetadataMap::new();

let res = map.entry("x-hello").unwrap()
.or_insert_with(|| "world".parse().unwrap());

assert_eq!(res, "world");
```

The default function is not called if the entry exists in the map.

```
# use tonic::metadata::*;
let mut map = MetadataMap::new();
map.insert("host", "world".parse().unwrap());

let res = map.entry("host")
.expect("host is a valid string")
.or_insert_with(|| unreachable!());


assert_eq!(res, "world");
```
tonic/src/metadata/map.rs