Trait splitmut::SplitMut
[−]
[src]
pub trait SplitMut<K, V> { fn get1_mut(&mut self, k1: K) -> Option<&mut V>; unsafe fn get1_unchecked_mut(&mut self, k1: K) -> &mut V; fn get2_mut(&mut self, k1: K, k2: K) -> (Result<&mut V, SplitMutError>, Result<&mut V, SplitMutError>) { ... } fn get3_mut(&mut self, k1: K, k2: K, k3: K) -> (Result<&mut V, SplitMutError>, Result<&mut V, SplitMutError>, Result<&mut V, SplitMutError>) { ... } fn get4_mut(&mut self, k1: K, k2: K, k3: K, k4: K) -> (Result<&mut V, SplitMutError>, Result<&mut V, SplitMutError>, Result<&mut V, SplitMutError>, Result<&mut V, SplitMutError>) { ... } unsafe fn get2_unchecked_mut(&mut self, k1: K, k2: K) -> (&mut V, &mut V) { ... } unsafe fn get3_unchecked_mut(&mut self, k1: K, k2: K, k3: K) -> (&mut V, &mut V, &mut V) { ... } unsafe fn get4_unchecked_mut(&mut self, k1: K, k2: K, k3: K, k4: K) -> (&mut V, &mut V, &mut V, &mut V) { ... } }
Just add use splitmut::SplitMut;
to have these methods working on
mutable slices, Vec, VecDeque, HashMap and BTreeMap.
In case you want to implement SplitMut
for your own collection, just
implement get1_mut
and get1_unchecked_mut
and the other methods will
be provided for you.
Required Methods
fn get1_mut(&mut self, k1: K) -> Option<&mut V>
Wrapper for get_mut, used internally.
unsafe fn get1_unchecked_mut(&mut self, k1: K) -> &mut V
Wrapper for get_unchecked_mut, used internally.
Undefined behaviour
It is undefined behaviour to call this with a key that does not correspond to a value. You have been warned.
Provided Methods
fn get2_mut(&mut self, k1: K, k2: K) -> (Result<&mut V, SplitMutError>, Result<&mut V, SplitMutError>)
Returns two mutable references to two distinct values within the same collection.
fn get3_mut(&mut self, k1: K, k2: K, k3: K) -> (Result<&mut V, SplitMutError>, Result<&mut V, SplitMutError>, Result<&mut V, SplitMutError>)
Returns three mutable references to three distinct values within the same collection.
fn get4_mut(&mut self, k1: K, k2: K, k3: K, k4: K) -> (Result<&mut V, SplitMutError>, Result<&mut V, SplitMutError>, Result<&mut V, SplitMutError>, Result<&mut V, SplitMutError>)
Returns four mutable references to four distinct values within the same collection.
unsafe fn get2_unchecked_mut(&mut self, k1: K, k2: K) -> (&mut V, &mut V)
Returns two mutable references to two distinct values within the same collection.
Undefined behaviour
It is undefined behaviour to call this with a key that does not correspond to a value, or with keys pointing to the same value. You have been warned.
unsafe fn get3_unchecked_mut(&mut self, k1: K, k2: K, k3: K) -> (&mut V, &mut V, &mut V)
Returns three mutable references to three distinct values within the same collection.
Undefined behaviour
It is undefined behaviour to call this with a key that does not correspond to a value, or with any two keys pointing to the same value. You have been warned.
unsafe fn get4_unchecked_mut(&mut self, k1: K, k2: K, k3: K, k4: K) -> (&mut V, &mut V, &mut V, &mut V)
Returns four mutable references to four distinct values within the same collection.
Undefined behaviour
It is undefined behaviour to call this with a key that does not correspond to a value, or with any two keys pointing to the same value. You have been warned.