@@ -28,7 +28,7 @@ use ptr;
2828use rt:: global_heap:: { malloc_raw, realloc_raw} ;
2929use raw:: Slice ;
3030use slice:: { ImmutableEqVector , ImmutableVector , Items , MutItems , MutableVector } ;
31- use slice:: { MutableTotalOrdVector } ;
31+ use slice:: { MutableTotalOrdVector , Vector } ;
3232
3333/// An owned, growable vector.
3434///
@@ -534,22 +534,6 @@ impl<T> Vec<T> {
534534 self . len = len;
535535 }
536536
537- /// Work with `self` as a slice.
538- ///
539- /// # Example
540- ///
541- /// ```rust
542- /// fn foo(slice: &[int]) {}
543- ///
544- /// let vec = vec!(1, 2);
545- /// foo(vec.as_slice());
546- /// ```
547- #[ inline]
548- pub fn as_slice < ' a > ( & ' a self ) -> & ' a [ T ] {
549- let slice = Slice { data : self . ptr as * T , len : self . len } ;
550- unsafe { transmute ( slice) }
551- }
552-
553537 /// Work with `self` as a mutable slice.
554538 ///
555539 /// # Example
@@ -1172,6 +1156,24 @@ impl<T:Eq> Vec<T> {
11721156 }
11731157}
11741158
1159+ impl < T > Vector < T > for Vec < T > {
1160+ /// Work with `self` as a slice.
1161+ ///
1162+ /// # Example
1163+ ///
1164+ /// ```rust
1165+ /// fn foo(slice: &[int]) {}
1166+ ///
1167+ /// let vec = vec!(1, 2);
1168+ /// foo(vec.as_slice());
1169+ /// ```
1170+ #[ inline]
1171+ fn as_slice < ' a > ( & ' a self ) -> & ' a [ T ] {
1172+ let slice = Slice { data : self . ptr as * T , len : self . len } ;
1173+ unsafe { transmute ( slice) }
1174+ }
1175+ }
1176+
11751177/// Iterates over the `second` vector, copying each element and appending it to
11761178/// the `first`. Afterwards, the `first` is then returned for use again.
11771179///
0 commit comments