From 2bd87ad432901f3baeab2fc1f2aa8aa328f04ea7 Mon Sep 17 00:00:00 2001 From: Erick Tryzelaar Date: Mon, 9 Sep 2013 19:32:56 -0700 Subject: std: Add Default implementation for vecs --- src/libstd/vec.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/libstd') diff --git a/src/libstd/vec.rs b/src/libstd/vec.rs index 55b8e3769ea..b91384f0ba5 100644 --- a/src/libstd/vec.rs +++ b/src/libstd/vec.rs @@ -104,6 +104,7 @@ use clone::{Clone, DeepClone}; use container::{Container, Mutable}; use cmp::{Eq, TotalOrd, Ordering, Less, Equal, Greater}; use cmp; +use default::Default; use iter::*; use libc::c_void; use num::{Integer, Zero, CheckedAdd, Saturating}; @@ -2236,6 +2237,19 @@ impl DeepClone for ~[A] { } } +// This works because every lifetime is a sub-lifetime of 'static +impl<'self, A> Default for &'self [A] { + fn default() -> &'self [A] { &'self [] } +} + +impl Default for ~[A] { + fn default() -> ~[A] { ~[] } +} + +impl Default for @[A] { + fn default() -> @[A] { @[] } +} + // This works because every lifetime is a sub-lifetime of 'static impl<'self, A> Zero for &'self [A] { fn zero() -> &'self [A] { &'self [] } -- cgit 1.4.1-3-g733a5