pub fn entry<K>(&mut self, key: K) -> Result<Entry<'_, Ascii>, InvalidMetadataKey>
    where
        K: AsMetadataKey<Ascii>,
    {
        self.generic_entry::<Ascii, K>(key)
    }
Gets the given ascii key's corresponding entry in the map for in-place
manipulation. For binary keys, use `entry_bin`.

# Examples

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

let headers = &[
"content-length",
"x-hello",
"Content-Length",
"x-world",
];

for &header in headers {
let counter = map.entry(header).unwrap().or_insert("".parse().unwrap());
*counter = format!("{}{}", counter.to_str().unwrap(), "1").parse().unwrap();
}

assert_eq!(map.get("content-length").unwrap(), "11");
assert_eq!(map.get("x-hello").unwrap(), "1");

// Gracefully handles parting invalid key strings
assert!(!map.entry("a{}b").is_ok());

// 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.entry("host-bin").is_ok());
assert!(!map.entry("host-bin".to_string()).is_ok());
assert!(!map.entry(&("host-bin".to_string())).is_ok());

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