@@ -38,17 +38,17 @@ impl<T, I: Iterator<Item = T>> UnordItems<T, I> {
3838 }
3939
4040 #[ inline]
41- pub fn all < U , F : Fn ( T ) -> bool > ( mut self , f : F ) -> bool {
41+ pub fn all < F : Fn ( T ) -> bool > ( mut self , f : F ) -> bool {
4242 self . 0 . all ( f)
4343 }
4444
4545 #[ inline]
46- pub fn any < U , F : Fn ( T ) -> bool > ( mut self , f : F ) -> bool {
46+ pub fn any < F : Fn ( T ) -> bool > ( mut self , f : F ) -> bool {
4747 self . 0 . any ( f)
4848 }
4949
5050 #[ inline]
51- pub fn filter < U , F : Fn ( & T ) -> bool > ( self , f : F ) -> UnordItems < T , impl Iterator < Item = T > > {
51+ pub fn filter < F : Fn ( & T ) -> bool > ( self , f : F ) -> UnordItems < T , impl Iterator < Item = T > > {
5252 UnordItems ( self . 0 . filter ( f) )
5353 }
5454
@@ -96,6 +96,15 @@ impl<T, I: Iterator<Item = T>> UnordItems<T, I> {
9696 pub fn count ( self ) -> usize {
9797 self . 0 . count ( )
9898 }
99+
100+ #[ inline]
101+ pub fn flat_map < U , F , O > ( self , f : F ) -> UnordItems < O , impl Iterator < Item = O > >
102+ where
103+ U : IntoIterator < Item = O > ,
104+ F : Fn ( T ) -> U ,
105+ {
106+ UnordItems ( self . 0 . flat_map ( f) )
107+ }
99108}
100109
101110impl < ' a , T : Clone + ' a , I : Iterator < Item = & ' a T > > UnordItems < & ' a T , I > {
@@ -193,6 +202,11 @@ impl<V: Eq + Hash> UnordSet<V> {
193202 pub fn extend < I : Iterator < Item = V > > ( & mut self , items : UnordItems < V , I > ) {
194203 self . inner . extend ( items. 0 )
195204 }
205+
206+ #[ inline]
207+ pub fn clear ( & mut self ) {
208+ self . inner . clear ( ) ;
209+ }
196210}
197211
198212impl < V : Hash + Eq > Extend < V > for UnordSet < V > {
@@ -201,6 +215,12 @@ impl<V: Hash + Eq> Extend<V> for UnordSet<V> {
201215 }
202216}
203217
218+ impl < V : Hash + Eq > FromIterator < V > for UnordSet < V > {
219+ fn from_iter < T : IntoIterator < Item = V > > ( iter : T ) -> Self {
220+ UnordSet { inner : FxHashSet :: from_iter ( iter) }
221+ }
222+ }
223+
204224impl < HCX , V : Hash + Eq + HashStable < HCX > > HashStable < HCX > for UnordSet < V > {
205225 #[ inline]
206226 fn hash_stable ( & self , hcx : & mut HCX , hasher : & mut StableHasher ) {
0 commit comments