Skip to content

Commit f3fef15

Browse files
committed
collections: Add missing Default impls
Add Default impls for TreeMap, TreeSet, SmallIntMap, BitvSet, DList, PriorityQueue, RingBuf, TrieMap, and TrieSet.
1 parent 61d65cd commit f3fef15

File tree

7 files changed

+52
-0
lines changed

7 files changed

+52
-0
lines changed

src/libcollections/bitv.rs

+6
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
use core::prelude::*;
1414

1515
use core::cmp;
16+
use core::default::Default;
1617
use core::fmt;
1718
use core::iter::{Enumerate, Repeat, Map, Zip};
1819
use core::ops;
@@ -697,6 +698,11 @@ pub struct BitvSet {
697698
bitv: BigBitv
698699
}
699700

701+
impl Default for BitvSet {
702+
#[inline]
703+
fn default() -> BitvSet { BitvSet::new() }
704+
}
705+
700706
impl BitvSet {
701707
/// Creates a new bit vector set with initially no contents
702708
pub fn new() -> BitvSet {

src/libcollections/dlist.rs

+6
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
use core::prelude::*;
2525

2626
use alloc::owned::Box;
27+
use core::default::Default;
2728
use core::fmt;
2829
use core::iter;
2930
use core::mem;
@@ -262,6 +263,11 @@ impl<T> Deque<T> for DList<T> {
262263
}
263264
}
264265

266+
impl<T> Default for DList<T> {
267+
#[inline]
268+
fn default() -> DList<T> { DList::new() }
269+
}
270+
265271
impl<T> DList<T> {
266272
/// Create an empty DList
267273
#[inline]

src/libcollections/priority_queue.rs

+6
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
use core::prelude::*;
1616

17+
use core::default::Default;
1718
use core::mem::{zeroed, replace, swap};
1819
use core::ptr;
1920

@@ -36,6 +37,11 @@ impl<T: Ord> Mutable for PriorityQueue<T> {
3637
fn clear(&mut self) { self.data.truncate(0) }
3738
}
3839

40+
impl<T: Ord> Default for PriorityQueue<T> {
41+
#[inline]
42+
fn default() -> PriorityQueue<T> { PriorityQueue::new() }
43+
}
44+
3945
impl<T: Ord> PriorityQueue<T> {
4046
/// An iterator visiting all values in underlying vector, in
4147
/// arbitrary order.

src/libcollections/ringbuf.rs

+6
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
use core::prelude::*;
1717

1818
use core::cmp;
19+
use core::default::Default;
1920
use core::fmt;
2021
use core::iter::RandomAccessIterator;
2122

@@ -112,6 +113,11 @@ impl<T> Deque<T> for RingBuf<T> {
112113
}
113114
}
114115

116+
impl<T> Default for RingBuf<T> {
117+
#[inline]
118+
fn default() -> RingBuf<T> { RingBuf::new() }
119+
}
120+
115121
impl<T> RingBuf<T> {
116122
/// Create an empty RingBuf
117123
pub fn new() -> RingBuf<T> {

src/libcollections/smallintmap.rs

+6
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
use core::prelude::*;
1919

20+
use core::default::Default;
2021
use core::fmt;
2122
use core::iter::{Enumerate, FilterMap};
2223
use core::mem::replace;
@@ -113,6 +114,11 @@ impl<V> MutableMap<uint, V> for SmallIntMap<V> {
113114
}
114115
}
115116

117+
impl<V> Default for SmallIntMap<V> {
118+
#[inline]
119+
fn default() -> SmallIntMap<V> { SmallIntMap::new() }
120+
}
121+
116122
impl<V> SmallIntMap<V> {
117123
/// Create an empty SmallIntMap
118124
pub fn new() -> SmallIntMap<V> { SmallIntMap{v: vec!()} }

src/libcollections/treemap.rs

+11
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
use core::prelude::*;
1616

1717
use alloc::owned::Box;
18+
use core::default::Default;
1819
use core::fmt;
1920
use core::fmt::Show;
2021
use core::iter::Peekable;
@@ -134,6 +135,11 @@ impl<K: Ord, V> MutableMap<K, V> for TreeMap<K, V> {
134135
}
135136
}
136137

138+
impl<K: Ord, V> Default for TreeMap<K,V> {
139+
#[inline]
140+
fn default() -> TreeMap<K, V> { TreeMap::new() }
141+
}
142+
137143
impl<K: Ord, V> TreeMap<K, V> {
138144
/// Create an empty TreeMap
139145
pub fn new() -> TreeMap<K, V> { TreeMap{root: None, length: 0} }
@@ -632,6 +638,11 @@ impl<T: Ord> MutableSet<T> for TreeSet<T> {
632638
fn remove(&mut self, value: &T) -> bool { self.map.remove(value) }
633639
}
634640

641+
impl<T: Ord> Default for TreeSet<T> {
642+
#[inline]
643+
fn default() -> TreeSet<T> { TreeSet::new() }
644+
}
645+
635646
impl<T: Ord> TreeSet<T> {
636647
/// Create an empty TreeSet
637648
#[inline]

src/libcollections/trie.rs

+11
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
use core::prelude::*;
1414

1515
use alloc::owned::Box;
16+
use core::default::Default;
1617
use core::mem::zeroed;
1718
use core::mem;
1819
use core::uint;
@@ -104,6 +105,11 @@ impl<T> MutableMap<uint, T> for TrieMap<T> {
104105
}
105106
}
106107

108+
impl<T> Default for TrieMap<T> {
109+
#[inline]
110+
fn default() -> TrieMap<T> { TrieMap::new() }
111+
}
112+
107113
impl<T> TrieMap<T> {
108114
/// Create an empty TrieMap
109115
#[inline]
@@ -331,6 +337,11 @@ impl MutableSet<uint> for TrieSet {
331337
}
332338
}
333339

340+
impl Default for TrieSet {
341+
#[inline]
342+
fn default() -> TrieSet { TrieSet::new() }
343+
}
344+
334345
impl TrieSet {
335346
/// Create an empty TrieSet
336347
#[inline]

0 commit comments

Comments
 (0)