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.