diff options
Diffstat (limited to 'src/libsyntax/opt_vec.rs')
| -rw-r--r-- | src/libsyntax/opt_vec.rs | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/libsyntax/opt_vec.rs b/src/libsyntax/opt_vec.rs index 22d69d89e81..340e2614d2e 100644 --- a/src/libsyntax/opt_vec.rs +++ b/src/libsyntax/opt_vec.rs @@ -31,6 +31,14 @@ pub fn with<T>(+t: T) -> OptVec<T> { Vec(~[t]) } +pub fn from<T>(+t: ~[T]) -> OptVec<T> { + if t.len() == 0 { + Empty + } else { + Vec(t) + } +} + impl<T> OptVec<T> { fn push(&mut self, +t: T) { match *self { @@ -70,12 +78,12 @@ impl<T> OptVec<T> { Vec(ref v) => v.len() } } +} - pure fn to_vec(self) -> ~[T] { - match self { - Empty => ~[], - Vec(v) => v - } +pub fn take_vec<T>(+v: OptVec<T>) -> ~[T] { + match v { + Empty => ~[], + Vec(v) => v } } |
