pub fn append<K>(&mut self, key: K, value: MetadataValue<Ascii>) -> bool
    where
        K: IntoMetadataKey<Ascii>,
    {
        key.append(self, value)
    }
Inserts an ascii key-value pair into the map. To insert a binary entry,
use `append_bin`.

This method panics when the given key is a string and it cannot be
converted to a `MetadataKey<Ascii>`.

If the map did not previously have this key present, then `false` is
returned.

If the map did have this key present, the new value is pushed to the end
of the list of values currently associated with the key. The key is not
updated, though; this matters for types that can be `==` without being
identical.

# Examples

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

map.append("x-host", "earth".parse().unwrap());

let values = map.get_all("x-host");
let mut i = values.iter();
assert_eq!("world", *i.next().unwrap());
assert_eq!("earth", *i.next().unwrap());
```

```should_panic
# use tonic::metadata::*;
let mut map = MetadataMap::new();
// Trying to append a key that is not valid panics.
map.append("x{}host", "world".parse().unwrap()); // This line panics!
```

```should_panic
# use tonic::metadata::*;
let mut map = MetadataMap::new();
// Trying to append a key that is binary panics (use append_bin).
map.append("x-host-bin", "world".parse().unwrap()); // This line panics!
```
tonic/src/metadata/map.rs