提交 d6a39419 编写于 作者: T Tom Jakubowski 提交者: Alex Crichton

collections: Add missing Default impls

Add Default impls for TreeMap, TreeSet, SmallIntMap, BitvSet, DList,
PriorityQueue, RingBuf, TrieMap, and TrieSet.
上级 810ddfd6
......@@ -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 {
......
......@@ -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<T> {
}
}
impl<T> Default for DList<T> {
#[inline]
fn default() -> DList<T> { DList::new() }
}
impl<T> DList<T> {
/// Create an empty DList
#[inline]
......
......@@ -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<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.
......
......@@ -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<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> {
......
......@@ -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<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!()} }
......
......@@ -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<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} }
......@@ -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<T: Ord> Default for TreeSet<T> {
#[inline]
fn default() -> TreeSet<T> { TreeSet::new() }
}
impl<T: Ord> TreeSet<T> {
/// Create an empty TreeSet
#[inline]
......
......@@ -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<T> {
}
}
impl<T> Default for TrieMap<T> {
#[inline]
fn default() -> TrieMap<T> { TrieMap::new() }
}
impl<T> TrieMap<T> {
/// 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]
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册