diff options
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/vec.rs | 14 |
1 files changed, 14 insertions, 0 deletions
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}; @@ -2237,6 +2238,19 @@ impl<A: DeepClone> 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<A> Default for ~[A] { + fn default() -> ~[A] { ~[] } +} + +impl<A> 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 [] } fn is_zero(&self) -> bool { self.is_empty() } |
