fix retain doc test

This commit is contained in:
Rob Ede 2023-01-01 20:35:01 +00:00
parent 427fc41b31
commit f700780003
No known key found for this signature in database
GPG Key ID: 97C636207D3EF933
1 changed files with 5 additions and 8 deletions

View File

@ -562,24 +562,21 @@ impl HeaderMap {
/// # use actix_http::header::{self, HeaderMap, HeaderValue}; /// # use actix_http::header::{self, HeaderMap, HeaderValue};
/// let mut map = HeaderMap::new(); /// let mut map = HeaderMap::new();
/// ///
/// let mut iter = map.keys();
/// assert!(iter.next().is_none());
///
/// map.append(header::HOST, HeaderValue::from_static("duck.com")); /// map.append(header::HOST, HeaderValue::from_static("duck.com"));
/// map.append(header::SET_COOKIE, HeaderValue::from_static("one=1")); /// map.append(header::SET_COOKIE, HeaderValue::from_static("one=1"));
/// map.append(header::SET_COOKIE, HeaderValue::from_static("two=2")); /// map.append(header::SET_COOKIE, HeaderValue::from_static("two=2"));
/// ///
/// let keys = map.keys().cloned().collect::<Vec<_>>(); /// map.retain(|name, val| val.as_bytes().starts_with(b"one"));
/// assert_eq!(keys.len(), 2); ///
/// assert!(keys.contains(&header::HOST)); /// assert_eq!(map.len(), 1);
/// assert!(keys.contains(&header::SET_COOKIE)); /// assert!(map.contains_key(&header::SET_COOKIE));
/// ``` /// ```
pub fn retain<F>(&mut self, mut retain_fn: F) pub fn retain<F>(&mut self, mut retain_fn: F)
where where
F: FnMut(&HeaderName, &mut HeaderValue) -> bool, F: FnMut(&HeaderName, &mut HeaderValue) -> bool,
{ {
self.inner.retain(|name, vals| { self.inner.retain(|name, vals| {
vals.inner.retain(|val| retain_fn(&name, val)); vals.inner.retain(|val| retain_fn(name, val));
// invariant: make sure newly empty value lists are removed // invariant: make sure newly empty value lists are removed
!vals.is_empty() !vals.is_empty()