Struct zerovec::maps::ZeroMap2dCursor
source · pub struct ZeroMap2dCursor<'l, 'a, K0, K1, V>{ /* private fields */ }
Expand description
An intermediate state of queries over ZeroMap2d
and ZeroMap2dBorrowed
.
Implementations§
source§impl<'l, 'a, K0, K1, V> ZeroMap2dCursor<'l, 'a, K0, K1, V>
impl<'l, 'a, K0, K1, V> ZeroMap2dCursor<'l, 'a, K0, K1, V>
sourcepub fn key0(&self) -> &'l K0::GetType
pub fn key0(&self) -> &'l K0::GetType
Returns the key0 corresponding to the cursor position.
use zerovec::ZeroMap2d;
let mut map = ZeroMap2d::new();
map.insert("one", &1u32, "foo");
assert_eq!(map.get0("one").unwrap().key0(), "one");
sourcepub fn iter1(
&self,
) -> impl Iterator<Item = (&'l <K1 as ZeroMapKV<'a>>::GetType, &'l <V as ZeroMapKV<'a>>::GetType)> + '_
pub fn iter1( &self, ) -> impl Iterator<Item = (&'l <K1 as ZeroMapKV<'a>>::GetType, &'l <V as ZeroMapKV<'a>>::GetType)> + '_
Borrow an ordered iterator over keys1 and values for a particular key0.
To get the values as copy types, see Self::iter1_copied
.
For an example, see ZeroMap2d::iter0()
.
source§impl<'l, 'a, K0, K1, V> ZeroMap2dCursor<'l, 'a, K0, K1, V>
impl<'l, 'a, K0, K1, V> ZeroMap2dCursor<'l, 'a, K0, K1, V>
sourcepub fn iter1_copied(
&self,
) -> impl Iterator<Item = (&'l <K1 as ZeroMapKV<'a>>::GetType, V)> + '_
pub fn iter1_copied( &self, ) -> impl Iterator<Item = (&'l <K1 as ZeroMapKV<'a>>::GetType, V)> + '_
Borrow an ordered iterator over keys1 and values for a particular key0.
The values are returned as copy types.
§Examples
use zerovec::ZeroMap2d;
let zm2d: ZeroMap2d<str, u8, usize> = [
("a", 0u8, 1usize),
("b", 1u8, 1000usize),
("b", 2u8, 2000usize),
]
.into_iter()
.collect();
let mut total_value = 0;
for cursor in zm2d.iter0() {
for (_, value) in cursor.iter1_copied() {
total_value += value;
}
}
assert_eq!(total_value, 3001);
source§impl<'l, 'a, K0, K1, V> ZeroMap2dCursor<'l, 'a, K0, K1, V>
impl<'l, 'a, K0, K1, V> ZeroMap2dCursor<'l, 'a, K0, K1, V>
sourcepub fn get1(&self, key1: &K1) -> Option<&'l V::GetType>
pub fn get1(&self, key1: &K1) -> Option<&'l V::GetType>
Gets the value for a key1 from this cursor, or None
if key1 is not in the map.
use zerovec::ZeroMap2d;
let mut map = ZeroMap2d::new();
map.insert("one", &1u32, "foo");
assert_eq!(map.get0("one").unwrap().get1(&1), Some("foo"));
assert_eq!(map.get0("one").unwrap().get1(&2), None);
sourcepub fn get1_by(
&self,
predicate: impl FnMut(&K1) -> Ordering,
) -> Option<&'l V::GetType>
pub fn get1_by( &self, predicate: impl FnMut(&K1) -> Ordering, ) -> Option<&'l V::GetType>
Gets the value for a predicate from this cursor, or None
if key1 is not in the map.
use zerovec::ZeroMap2d;
let mut map = ZeroMap2d::new();
map.insert("one", &1u32, "foo");
assert_eq!(map.get0("one").unwrap().get1_by(|v| v.cmp(&1)), Some("foo"));
assert_eq!(map.get0("one").unwrap().get1_by(|v| v.cmp(&2)), None);
source§impl<'l, 'a, K0, K1, V> ZeroMap2dCursor<'l, 'a, K0, K1, V>
impl<'l, 'a, K0, K1, V> ZeroMap2dCursor<'l, 'a, K0, K1, V>
sourcepub fn get1_copied(&self, key1: &K1) -> Option<V>
pub fn get1_copied(&self, key1: &K1) -> Option<V>
For cases when V
is fixed-size, obtain a direct copy of V
instead of V::ULE
use zerovec::ZeroMap2d;
let mut map: ZeroMap2d<u16, u16, u16> = ZeroMap2d::new();
map.insert(&1, &2, &3);
map.insert(&1, &4, &5);
map.insert(&6, &7, &8);
assert_eq!(map.get0(&6).unwrap().get1_copied(&7), Some(8));
Trait Implementations§
source§impl<'l, 'a, K0, K1, V> Debug for ZeroMap2dCursor<'l, 'a, K0, K1, V>
impl<'l, 'a, K0, K1, V> Debug for ZeroMap2dCursor<'l, 'a, K0, K1, V>
source§impl<'m, 'n, 'a, 'b, K0, K1, V> PartialEq<ZeroMap2dCursor<'n, 'b, K0, K1, V>> for ZeroMap2dCursor<'m, 'a, K0, K1, V>where
K0: for<'c> ZeroMapKV<'c> + ?Sized,
K1: for<'c> ZeroMapKV<'c> + ?Sized,
V: for<'c> ZeroMapKV<'c> + ?Sized,
<K0 as ZeroMapKV<'a>>::Slice: PartialEq<<K0 as ZeroMapKV<'b>>::Slice>,
<K1 as ZeroMapKV<'a>>::Slice: PartialEq<<K1 as ZeroMapKV<'b>>::Slice>,
<V as ZeroMapKV<'a>>::Slice: PartialEq<<V as ZeroMapKV<'b>>::Slice>,
impl<'m, 'n, 'a, 'b, K0, K1, V> PartialEq<ZeroMap2dCursor<'n, 'b, K0, K1, V>> for ZeroMap2dCursor<'m, 'a, K0, K1, V>where
K0: for<'c> ZeroMapKV<'c> + ?Sized,
K1: for<'c> ZeroMapKV<'c> + ?Sized,
V: for<'c> ZeroMapKV<'c> + ?Sized,
<K0 as ZeroMapKV<'a>>::Slice: PartialEq<<K0 as ZeroMapKV<'b>>::Slice>,
<K1 as ZeroMapKV<'a>>::Slice: PartialEq<<K1 as ZeroMapKV<'b>>::Slice>,
<V as ZeroMapKV<'a>>::Slice: PartialEq<<V as ZeroMapKV<'b>>::Slice>,
source§fn eq(&self, other: &ZeroMap2dCursor<'n, 'b, K0, K1, V>) -> bool
fn eq(&self, other: &ZeroMap2dCursor<'n, 'b, K0, K1, V>) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.Auto Trait Implementations§
impl<'l, 'a, K0, K1, V> Freeze for ZeroMap2dCursor<'l, 'a, K0, K1, V>
impl<'l, 'a, K0, K1, V> RefUnwindSafe for ZeroMap2dCursor<'l, 'a, K0, K1, V>where
<K0 as ZeroMapKV<'a>>::Slice: RefUnwindSafe,
<K1 as ZeroMapKV<'a>>::Slice: RefUnwindSafe,
<V as ZeroMapKV<'a>>::Slice: RefUnwindSafe,
K0: ?Sized,
K1: ?Sized,
V: ?Sized,
impl<'l, 'a, K0, K1, V> Send for ZeroMap2dCursor<'l, 'a, K0, K1, V>
impl<'l, 'a, K0, K1, V> Sync for ZeroMap2dCursor<'l, 'a, K0, K1, V>
impl<'l, 'a, K0, K1, V> Unpin for ZeroMap2dCursor<'l, 'a, K0, K1, V>
impl<'l, 'a, K0, K1, V> UnwindSafe for ZeroMap2dCursor<'l, 'a, K0, K1, V>where
<K0 as ZeroMapKV<'a>>::Slice: RefUnwindSafe,
<K1 as ZeroMapKV<'a>>::Slice: RefUnwindSafe,
<V as ZeroMapKV<'a>>::Slice: RefUnwindSafe,
K0: ?Sized,
K1: ?Sized,
V: ?Sized,
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