1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
use core::borrow::Borrow; use super::{CollectionMut, GetMut, Set}; pub trait SetMut<'a, V, Q>: Set<'a, V, Q> + CollectionMut + where &'a Self: 'a + IntoIterator<Item = &'a V>, &'a mut Self: 'a + IntoIterator<Item = &'a mut V>, V: 'a + ?Sized + Borrow<Q>, Q: 'a + ?Sized, {} impl<'a, V, Q, T> SetMut<'a, V, Q> for T where T: 'a + Set<'a, V, Q> + CollectionMut + GetMut<&'a Q, Output = V>, &'a T: 'a + IntoIterator<Item = &'a V>, &'a mut T: 'a + IntoIterator<Item = &'a mut V>, V: 'a + ?Sized + Borrow<Q>, Q: 'a + ?Sized, {}