pub fn get_all<K>(&self, key: K) -> GetAll<'_, Ascii>
    where
        K: AsMetadataKey<Ascii>,
    {
        GetAll {
            inner: key.get_all(self),
            phantom: PhantomData,
        }
    }
Returns a view of all values associated with a key. This method is for
ascii metadata entries (those whose names don't end with "-bin"). For
binary entries, use get_all_bin.

The returned view does not incur any allocations and allows iterating
the values associated with the key.  See [`GetAll`] for more details.
Returns `None` if there are no values associated with the key.

[`GetAll`]: struct.GetAll.html

# Examples

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

map.insert("x-host", "hello".parse().unwrap());
map.append("x-host", "goodbye".parse().unwrap());

{
let view = map.get_all("x-host");

let mut iter = view.iter();
assert_eq!(&"hello", iter.next().unwrap());
assert_eq!(&"goodbye", iter.next().unwrap());
assert!(iter.next().is_none());
}

// Attempting to read a key of the wrong type fails by not
// finding anything.
map.append_bin("host-bin", MetadataValue::from_bytes(b"world"));
assert!(map.get_all("host-bin").iter().next().is_none());
assert!(map.get_all("host-bin".to_string()).iter().next().is_none());
assert!(map.get_all(&("host-bin".to_string())).iter().next().is_none());

// Attempting to read an invalid key string fails by not
// finding anything.
assert!(map.get_all("host{}").iter().next().is_none());
assert!(map.get_all("host{}".to_string()).iter().next().is_none());
assert!(map.get_all(&("host{}".to_string())).iter().next().is_none());
```
tonic/src/metadata/map.rs