Enum Entry

enum Entry<'a, T: 'a>

A view into a single location in a HeaderMap, which may be vacant or occupied.

Variants

Occupied(OccupiedEntry<'a, T>)

An occupied entry

Vacant(VacantEntry<'a, T>)

A vacant entry

Implementations

impl<'a, T> Entry<'a, T>

fn or_insert(self: Self, default: T) -> &'a mut T

Ensures a value is in the entry by inserting the default if empty.

Returns a mutable reference to the first value in the entry.

Panics

This method panics if capacity exceeds max HeaderMap capacity

Examples

# use http::HeaderMap;
let mut map: HeaderMap<u32> = HeaderMap::default();

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

for &header in headers {
    let counter = map.entry(header)
        .or_insert(0);
    *counter += 1;
}

assert_eq!(map["content-length"], 2);
assert_eq!(map["x-hello"], 1);
fn or_try_insert(self: Self, default: T) -> Result<&'a mut T, MaxSizeReached>

Ensures a value is in the entry by inserting the default if empty.

Returns a mutable reference to the first value in the entry.

Errors

This function may return an error if HeaderMap exceeds max capacity

Examples

# use http::HeaderMap;
let mut map: HeaderMap<u32> = HeaderMap::default();

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

for &header in headers {
    let counter = map.entry(header)
        .or_try_insert(0)
        .unwrap();
    *counter += 1;
}

assert_eq!(map["content-length"], 2);
assert_eq!(map["x-hello"], 1);
fn or_insert_with<F: FnOnce() -> T>(self: Self, default: F) -> &'a mut T

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 http::HeaderMap;
let mut map = HeaderMap::new();

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

assert_eq!(res, "world");

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

# use http::HeaderMap;
# use http::header::HOST;
let mut map = HeaderMap::new();
map.try_insert(HOST, "world".parse().unwrap()).unwrap();

let res = map.try_entry("host")
    .unwrap()
    .or_try_insert_with(|| unreachable!())
    .unwrap();


assert_eq!(res, "world");
fn or_try_insert_with<F: FnOnce() -> T>(self: Self, default: F) -> Result<&'a mut T, MaxSizeReached>

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 http::HeaderMap;
let mut map = HeaderMap::new();

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

assert_eq!(res, "world");

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

# use http::HeaderMap;
# use http::header::HOST;
let mut map = HeaderMap::new();
map.try_insert(HOST, "world".parse().unwrap()).unwrap();

let res = map.try_entry("host")
    .unwrap()
    .or_try_insert_with(|| unreachable!())
    .unwrap();


assert_eq!(res, "world");
fn key(self: &Self) -> &HeaderName

Returns a reference to the entry's key

Examples

# use http::HeaderMap;
let mut map = HeaderMap::new();

assert_eq!(map.entry("x-hello").key(), "x-hello");

impl<'a, T> Freeze for Entry<'a, T>

impl<'a, T> RefUnwindSafe for Entry<'a, T>

impl<'a, T> Send for Entry<'a, T>

impl<'a, T> Sync for Entry<'a, T>

impl<'a, T> Unpin for Entry<'a, T>

impl<'a, T> UnsafeUnpin for Entry<'a, T>

impl<'a, T> UnwindSafe for Entry<'a, T>

impl<'a, T: $crate::fmt::Debug + 'a> Debug for Entry<'a, T>

fn fmt(self: &Self, f: &mut Formatter<'_>) -> Result

impl<T> Any for Entry<'a, T>

fn type_id(self: &Self) -> TypeId

impl<T> Borrow for Entry<'a, T>

fn borrow(self: &Self) -> &T

impl<T> BorrowMut for Entry<'a, T>

fn borrow_mut(self: &mut Self) -> &mut T

impl<T> From for Entry<'a, T>

fn from(t: T) -> T

Returns the argument unchanged.

impl<T, U> Into for Entry<'a, T>

fn into(self: Self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

impl<T, U> TryFrom for Entry<'a, T>

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

impl<T, U> TryInto for Entry<'a, T>

fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>