From d6a39419dbcb2e31ce0711440eab3e8155e69286 Mon Sep 17 00:00:00 2001 From: Tom Jakubowski Date: Mon, 9 Jun 2014 00:30:04 -0700 Subject: [PATCH] collections: Add missing Default impls Add Default impls for TreeMap, TreeSet, SmallIntMap, BitvSet, DList, PriorityQueue, RingBuf, TrieMap, and TrieSet. --- src/libcollections/bitv.rs | 6 ++++++ src/libcollections/dlist.rs | 6 ++++++ src/libcollections/priority_queue.rs | 6 ++++++ src/libcollections/ringbuf.rs | 6 ++++++ src/libcollections/smallintmap.rs | 6 ++++++ src/libcollections/treemap.rs | 11 +++++++++++ src/libcollections/trie.rs | 11 +++++++++++ 7 files changed, 52 insertions(+) diff --git a/src/libcollections/bitv.rs b/src/libcollections/bitv.rs index 42c81779770..e100baa1e3a 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; @@ -698,6 +699,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 5a231245691..ac8c5c5557e 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 @@ fn pop_back(&mut self) -> Option { } } +impl Default for DList { + #[inline] + fn default() -> DList { DList::new() } +} + impl DList { /// Create an empty DList #[inline] diff --git a/src/libcollections/priority_queue.rs b/src/libcollections/priority_queue.rs index ea3e7d17471..f25864933f2 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; @@ -37,6 +38,11 @@ impl Mutable for PriorityQueue { fn clear(&mut self) { self.data.truncate(0) } } +impl Default for PriorityQueue { + #[inline] + fn default() -> PriorityQueue { PriorityQueue::new() } +} + impl PriorityQueue { /// An iterator visiting all values in underlying vector, in /// arbitrary order. diff --git a/src/libcollections/ringbuf.rs b/src/libcollections/ringbuf.rs index addf73d67a8..ae1925126ca 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 @@ fn push_back(&mut self, t: T) { } } +impl Default for RingBuf { + #[inline] + fn default() -> RingBuf { RingBuf::new() } +} + impl RingBuf { /// Create an empty RingBuf pub fn new() -> RingBuf { diff --git a/src/libcollections/smallintmap.rs b/src/libcollections/smallintmap.rs index cc901864ab5..6b4982de082 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; @@ -114,6 +115,11 @@ fn pop(&mut self, key: &uint) -> Option { } } +impl Default for SmallIntMap { + #[inline] + fn default() -> SmallIntMap { SmallIntMap::new() } +} + impl SmallIntMap { /// Create an empty SmallIntMap pub fn new() -> SmallIntMap { SmallIntMap{v: vec!()} } diff --git a/src/libcollections/treemap.rs b/src/libcollections/treemap.rs index 489fe60cebf..1f4ee52008c 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; @@ -135,6 +136,11 @@ fn pop(&mut self, key: &K) -> Option { } } +impl Default for TreeMap { + #[inline] + fn default() -> TreeMap { TreeMap::new() } +} + impl TreeMap { /// Create an empty TreeMap pub fn new() -> TreeMap { TreeMap{root: None, length: 0} } @@ -633,6 +639,11 @@ fn insert(&mut self, value: T) -> bool { self.map.insert(value, ()) } fn remove(&mut self, value: &T) -> bool { self.map.remove(value) } } +impl Default for TreeSet { + #[inline] + fn default() -> TreeSet { TreeSet::new() } +} + impl TreeSet { /// Create an empty TreeSet #[inline] diff --git a/src/libcollections/trie.rs b/src/libcollections/trie.rs index 6e99d6054a5..3f4fdd66b80 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; @@ -105,6 +106,11 @@ fn pop(&mut self, key: &uint) -> Option { } } +impl Default for TrieMap { + #[inline] + fn default() -> TrieMap { TrieMap::new() } +} + impl TrieMap { /// Create an empty TrieMap #[inline] @@ -332,6 +338,11 @@ fn remove(&mut self, value: &uint) -> bool { } } +impl Default for TrieSet { + #[inline] + fn default() -> TrieSet { TrieSet::new() } +} + impl TrieSet { /// Create an empty TrieSet #[inline] -- GitLab