Skip to content

Commit 2bd87ad

Browse files
committed
std: Add Default implementation for vecs
1 parent e6c1131 commit 2bd87ad

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

src/libstd/vec.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ use clone::{Clone, DeepClone};
104104
use container::{Container, Mutable};
105105
use cmp::{Eq, TotalOrd, Ordering, Less, Equal, Greater};
106106
use cmp;
107+
use default::Default;
107108
use iter::*;
108109
use libc::c_void;
109110
use num::{Integer, Zero, CheckedAdd, Saturating};
@@ -2236,6 +2237,19 @@ impl<A: DeepClone> DeepClone for ~[A] {
22362237
}
22372238
}
22382239

2240+
// This works because every lifetime is a sub-lifetime of 'static
2241+
impl<'self, A> Default for &'self [A] {
2242+
fn default() -> &'self [A] { &'self [] }
2243+
}
2244+
2245+
impl<A> Default for ~[A] {
2246+
fn default() -> ~[A] { ~[] }
2247+
}
2248+
2249+
impl<A> Default for @[A] {
2250+
fn default() -> @[A] { @[] }
2251+
}
2252+
22392253
// This works because every lifetime is a sub-lifetime of 'static
22402254
impl<'self, A> Zero for &'self [A] {
22412255
fn zero() -> &'self [A] { &'self [] }

0 commit comments

Comments
 (0)