diff --git a/src/libcollections/bitv.rs b/src/libcollections/bitv.rs index 79e0c2ffea877..0079d92c3cf8a 100644 --- a/src/libcollections/bitv.rs +++ b/src/libcollections/bitv.rs @@ -13,6 +13,7 @@ use core::prelude::*; use core::cmp; +use core::default::Default; use core::fmt; use core::iter::{Enumerate, Repeat, Map, Zip}; use core::ops; @@ -697,6 +698,11 @@ pub struct BitvSet { bitv: BigBitv } +impl Default for BitvSet { + #[inline] + fn default() -> BitvSet { BitvSet::new() } +} + impl BitvSet { /// Creates a new bit vector set with initially no contents pub fn new() -> BitvSet { diff --git a/src/libcollections/dlist.rs b/src/libcollections/dlist.rs index 9d0e8e83698d8..63f3dcde6ca89 100644 --- a/src/libcollections/dlist.rs +++ b/src/libcollections/dlist.rs @@ -24,6 +24,7 @@ use core::prelude::*; use alloc::owned::Box; +use core::default::Default; use core::fmt; use core::iter; use core::mem; @@ -262,6 +263,11 @@ impl<T> Deque<T> for DList<T> { } } +impl<T> Default for DList<T> { + #[inline] + fn default() -> DList<T> { DList::new() } +} + impl<T> DList<T> { /// Create an empty DList #[inline] diff --git a/src/libcollections/priority_queue.rs b/src/libcollections/priority_queue.rs index 34d6bbbb66567..07ae675ce58fb 100644 --- a/src/libcollections/priority_queue.rs +++ b/src/libcollections/priority_queue.rs @@ -14,6 +14,7 @@ use core::prelude::*; +use core::default::Default; use core::mem::{zeroed, replace, swap}; use core::ptr; @@ -36,6 +37,11 @@ impl<T: Ord> Mutable for PriorityQueue<T> { fn clear(&mut self) { self.data.truncate(0) } } +impl<T: Ord> Default for PriorityQueue<T> { + #[inline] + fn default() -> PriorityQueue<T> { PriorityQueue::new() } +} + impl<T: Ord> PriorityQueue<T> { /// An iterator visiting all values in underlying vector, in /// arbitrary order. diff --git a/src/libcollections/ringbuf.rs b/src/libcollections/ringbuf.rs index ce4195789fab6..509ed92caddd7 100644 --- a/src/libcollections/ringbuf.rs +++ b/src/libcollections/ringbuf.rs @@ -16,6 +16,7 @@ use core::prelude::*; use core::cmp; +use core::default::Default; use core::fmt; use core::iter::RandomAccessIterator; @@ -112,6 +113,11 @@ impl<T> Deque<T> for RingBuf<T> { } } +impl<T> Default for RingBuf<T> { + #[inline] + fn default() -> RingBuf<T> { RingBuf::new() } +} + impl<T> RingBuf<T> { /// Create an empty RingBuf pub fn new() -> RingBuf<T> { diff --git a/src/libcollections/smallintmap.rs b/src/libcollections/smallintmap.rs index 45584dd4b28ba..12365ae048b9d 100644 --- a/src/libcollections/smallintmap.rs +++ b/src/libcollections/smallintmap.rs @@ -17,6 +17,7 @@ use core::prelude::*; +use core::default::Default; use core::fmt; use core::iter::{Enumerate, FilterMap}; use core::mem::replace; @@ -113,6 +114,11 @@ impl<V> MutableMap<uint, V> for SmallIntMap<V> { } } +impl<V> Default for SmallIntMap<V> { + #[inline] + fn default() -> SmallIntMap<V> { SmallIntMap::new() } +} + impl<V> SmallIntMap<V> { /// Create an empty SmallIntMap pub fn new() -> SmallIntMap<V> { SmallIntMap{v: vec!()} } diff --git a/src/libcollections/treemap.rs b/src/libcollections/treemap.rs index def1c353bc132..9a2c592d99e1b 100644 --- a/src/libcollections/treemap.rs +++ b/src/libcollections/treemap.rs @@ -15,6 +15,7 @@ use core::prelude::*; use alloc::owned::Box; +use core::default::Default; use core::fmt; use core::fmt::Show; use core::iter::Peekable; @@ -134,6 +135,11 @@ impl<K: Ord, V> MutableMap<K, V> for TreeMap<K, V> { } } +impl<K: Ord, V> Default for TreeMap<K,V> { + #[inline] + fn default() -> TreeMap<K, V> { TreeMap::new() } +} + impl<K: Ord, V> TreeMap<K, V> { /// Create an empty TreeMap pub fn new() -> TreeMap<K, V> { TreeMap{root: None, length: 0} } @@ -632,6 +638,11 @@ impl<T: Ord> MutableSet<T> for TreeSet<T> { fn remove(&mut self, value: &T) -> bool { self.map.remove(value) } } +impl<T: Ord> Default for TreeSet<T> { + #[inline] + fn default() -> TreeSet<T> { TreeSet::new() } +} + impl<T: Ord> TreeSet<T> { /// Create an empty TreeSet #[inline] diff --git a/src/libcollections/trie.rs b/src/libcollections/trie.rs index c15a6e9e5bf48..3f6577049cd43 100644 --- a/src/libcollections/trie.rs +++ b/src/libcollections/trie.rs @@ -13,6 +13,7 @@ use core::prelude::*; use alloc::owned::Box; +use core::default::Default; use core::mem::zeroed; use core::mem; use core::uint; @@ -104,6 +105,11 @@ impl<T> MutableMap<uint, T> for TrieMap<T> { } } +impl<T> Default for TrieMap<T> { + #[inline] + fn default() -> TrieMap<T> { TrieMap::new() } +} + impl<T> TrieMap<T> { /// Create an empty TrieMap #[inline] @@ -331,6 +337,11 @@ impl MutableSet<uint> for TrieSet { } } +impl Default for TrieSet { + #[inline] + fn default() -> TrieSet { TrieSet::new() } +} + impl TrieSet { /// Create an empty TrieSet #[inline]