pub struct ExtractIf<'a, K, V, F, A = Global>{ /* private fields */ }Expand description
A draining iterator over entries of a HashMap which don’t satisfy the predicate
f(&k, &mut v) in arbitrary order. The iterator element type is (K, V).
This struct is created by the extract_if method on HashMap. See its
documentation for more.
§Examples
use rune::alloc::HashMap;
let mut map: HashMap<i32, &str> = [(1, "a"), (2, "b"), (3, "c")].try_into()?;
let mut extract_if = map.extract_if(|k, _v| k % 2 != 0);
let mut vec = vec![extract_if.next(), extract_if.next()];
// The `ExtractIf` iterator produces items in arbitrary order, so the
// items must be sorted to test them against a sorted array.
vec.sort_unstable();
assert_eq!(vec, [Some((1, "a")),Some((3, "c"))]);
// It is fused iterator
assert_eq!(extract_if.next(), None);
assert_eq!(extract_if.next(), None);
drop(extract_if);
assert_eq!(map.len(), 1);Auto Trait Implementations§
impl<'a, K, V, F, A> Freeze for ExtractIf<'a, K, V, F, A>where
F: Freeze,
impl<'a, K, V, F, A> RefUnwindSafe for ExtractIf<'a, K, V, F, A>
impl<'a, K, V, F, A> Send for ExtractIf<'a, K, V, F, A>
impl<'a, K, V, F, A> Sync for ExtractIf<'a, K, V, F, A>
impl<'a, K, V, F, A> Unpin for ExtractIf<'a, K, V, F, A>where
F: Unpin,
impl<'a, K, V, F, A = Global> !UnwindSafe for ExtractIf<'a, K, V, F, A>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<I> IntoIterator for Iwhere
I: Iterator,
impl<I> IntoIterator for Iwhere
I: Iterator,
Source§impl<I> IteratorExt for Iwhere
I: Iterator,
impl<I> IteratorExt for Iwhere
I: Iterator,
Source§fn try_collect<B>(self) -> Result<B, Error>
fn try_collect<B>(self) -> Result<B, Error>
Transforms an iterator into a collection using fallible allocations.
Source§fn try_collect_in<B, A>(self, alloc: A) -> Result<B, Error>
fn try_collect_in<B, A>(self, alloc: A) -> Result<B, Error>
Transforms an iterator into a collection using fallible allocations.
Source§fn try_join_in<J, S, A>(self, sep: S, alloc: A) -> Result<J, Error>
fn try_join_in<J, S, A>(self, sep: S, alloc: A) -> Result<J, Error>
Try to join the given value.
Source§impl<I> IteratorRandom for Iwhere
I: Iterator,
impl<I> IteratorRandom for Iwhere
I: Iterator,
Source§fn choose_stable<R>(self, rng: &mut R) -> Option<Self::Item>
fn choose_stable<R>(self, rng: &mut R) -> Option<Self::Item>
Uniformly sample one element (stable) Read more