]> git.lizzy.rs Git - rust.git/commitdiff
rm vec::uniq_len
authorDaniel Micay <danielmicay@gmail.com>
Sat, 15 Jun 2013 06:20:06 +0000 (02:20 -0400)
committerDaniel Micay <danielmicay@gmail.com>
Sun, 16 Jun 2013 02:16:21 +0000 (22:16 -0400)
12 files changed:
src/libextra/flatpipes.rs
src/libextra/net_tcp.rs
src/libextra/priority_queue.rs
src/libextra/sha1.rs
src/libextra/smallintmap.rs
src/libextra/test.rs
src/libstd/comm.rs
src/libstd/container.rs
src/libstd/io.rs
src/libstd/repr.rs
src/libstd/rt/io/extensions.rs
src/libstd/vec.rs

index c0f619c1b858d9d89c014a6f6cf75c240c02ab55..4ff67fc3f42c297580b9a3bef3f09402ffc63a7a 100644 (file)
@@ -583,12 +583,12 @@ pub struct PipeByteChan {
 
     impl BytePort for PipeBytePort {
         fn try_recv(&self, count: uint) -> Option<~[u8]> {
-            if vec::uniq_len(&const *self.buf) >= count {
+            if self.buf.len() >= count {
                 let mut bytes = ::core::util::replace(&mut *self.buf, ~[]);
                 *self.buf = bytes.slice(count, bytes.len()).to_owned();
                 bytes.truncate(count);
                 return Some(bytes);
-            } else if vec::uniq_len(&const *self.buf) > 0 {
+            } else if !self.buf.is_empty() {
                 let mut bytes = ::core::util::replace(&mut *self.buf, ~[]);
                 assert!(count > bytes.len());
                 match self.try_recv(count - bytes.len()) {
@@ -598,7 +598,7 @@ fn try_recv(&self, count: uint) -> Option<~[u8]> {
                     }
                     None => return None
                 }
-            } else if vec::uniq_len(&const *self.buf) == 0 {
+            } else /* empty */ {
                 match self.port.try_recv() {
                     Some(buf) => {
                         assert!(!buf.is_empty());
@@ -607,8 +607,6 @@ fn try_recv(&self, count: uint) -> Option<~[u8]> {
                     }
                     None => return None
                 }
-            } else {
-                ::core::util::unreachable()
             }
         }
     }
index d95807f2b91c49f9aa523d32b111977748ee6c09..28b3700399a6e5cb89e205e9c7dc259a3d33cf8c 100644 (file)
@@ -879,8 +879,7 @@ fn read(&self, buf: &mut [u8], len: uint) -> uint {
 
           // If possible, copy up to `len` bytes from the internal
           // `data.buf` into `buf`
-          let nbuffered = vec::uniq_len(&const self.data.buf) -
-                self.data.buf_off;
+          let nbuffered = self.data.buf.len() - self.data.buf_off;
           let needed = len - count;
             if nbuffered > 0 {
                 unsafe {
@@ -934,7 +933,7 @@ fn read(&self, buf: &mut [u8], len: uint) -> uint {
     }
     fn read_byte(&self) -> int {
         loop {
-          if vec::uniq_len(&const self.data.buf) > self.data.buf_off {
+          if self.data.buf.len() > self.data.buf_off {
             let c = self.data.buf[self.data.buf_off];
             self.data.buf_off += 1;
             return c as int
index 601b7685f3ca8993dbc7af0728cb30c621502644..efbf23f11b15c3ffb86c8ac3cd9068927fe8a5db 100644 (file)
@@ -35,10 +35,10 @@ fn size_hint(&self) -> Option<uint> { self.data.size_hint() }
 
 impl<T:Ord> Container for PriorityQueue<T> {
     /// Returns the length of the queue
-    fn len(&const self) -> uint { vec::uniq_len(&const self.data) }
+    fn len(&self) -> uint { self.data.len() }
 
     /// Returns true if a queue contains no elements
-    fn is_empty(&const self) -> bool { self.len() == 0 }
+    fn is_empty(&self) -> bool { self.len() == 0 }
 }
 
 impl<T:Ord> Mutable for PriorityQueue<T> {
index 908e497b9591b28f7a91fc3f5c5514457c48b51d..0c35630345b4dfbc2102f9e9ab692290904f717b 100644 (file)
@@ -93,7 +93,7 @@ fn add_input(st: &mut Sha1State, msg: &const [u8]) {
     }
     fn process_msg_block(st: &mut Sha1State) {
         assert_eq!(st.h.len(), digest_buf_len);
-        assert_eq!(vec::uniq_len(st.work_buf), work_buf_len);
+        assert_eq!(st.work_buf.len(), work_buf_len);
         let mut t: int; // Loop counter
         let w = st.work_buf;
 
index 7f566bc16e7321614a2f6930ed6cea5c57ad6b86..dae9113b3a9dabb1113277f2b2d13ec7950144ef 100644 (file)
@@ -32,9 +32,9 @@ pub struct SmallIntMap<T> {
 
 impl<V> Container for SmallIntMap<V> {
     /// Return the number of elements in the map
-    fn len(&const self) -> uint {
+    fn len(&self) -> uint {
         let mut sz = 0;
-        for uint::range(0, vec::uniq_len(&const self.v)) |i| {
+        for uint::range(0, self.v.len()) |i| {
             match self.v[i] {
                 Some(_) => sz += 1,
                 None => {}
@@ -44,7 +44,7 @@ fn len(&const self) -> uint {
     }
 
     /// Return true if the map contains no elements
-    fn is_empty(&const self) -> bool { self.len() == 0 }
+    fn is_empty(&self) -> bool { self.len() == 0 }
 }
 
 impl<V> Mutable for SmallIntMap<V> {
@@ -199,12 +199,12 @@ pub struct SmallIntSet {
 
 impl Container for SmallIntSet {
     /// Return the number of elements in the map
-    fn len(&const self) -> uint {
+    fn len(&self) -> uint {
         self.map.len()
     }
 
     /// Return true if the map contains no elements
-    fn is_empty(&const self) -> bool { self.len() == 0 }
+    fn is_empty(&self) -> bool { self.len() == 0 }
 }
 
 impl Mutable for SmallIntSet {
index 406dfb086eaceb8d334ac3a290c68adaefd05afa..a465cef09e6be68fac89b59c32e072283db802e3 100644 (file)
@@ -365,7 +365,7 @@ fn write_pretty(out: @io::Writer,
 fn print_failures(st: &ConsoleTestState) {
     st.out.write_line("\nfailures:");
     let mut failures = ~[];
-    for uint::range(0, vec::uniq_len(&const st.failures)) |i| {
+    for uint::range(0, st.failures.len()) |i| {
         let name = copy st.failures[i].name;
         failures.push(name.to_str());
     }
index f0c353c8d62b6a8c3d775531c46826cc991f664f..bcdd6cd0bfa60cd9faf7e1825c75ea16c82d41ea 100644 (file)
@@ -209,7 +209,7 @@ impl<T: Owned> Peekable<T> for PortSet<T> {
     fn peek(&self) -> bool {
         // It'd be nice to use self.port.each, but that version isn't
         // pure.
-        for uint::range(0, vec::uniq_len(&const self.ports)) |i| {
+        for uint::range(0, self.ports.len()) |i| {
             let port: &pipesy::Port<T> = &self.ports[i];
             if port.peek() {
                 return true;
index 065582e2e0d2e93e2c091ec1e90d27331d4bc34b..c1b656f1cd9e6bdc71d818d01f069053bef373d5 100644 (file)
 /// knowledge known is the number of elements contained within.
 pub trait Container {
     /// Return the number of elements in the container
-    fn len(&const self) -> uint;
+    fn len(&self) -> uint;
 
     /// Return true if the container contains no elements
-    fn is_empty(&const self) -> bool;
+    fn is_empty(&self) -> bool;
 }
 
 /// A trait to represent mutable containers
index 6f065d74fa2e6ff3574df62b41b94b88c8755d60..d3faa75e3b044f4b67bd0bd46545f313261b5955 100644 (file)
@@ -1667,7 +1667,7 @@ fn write(&self, v: &[u8]) {
 
     fn seek(&self, offset: int, whence: SeekStyle) {
         let pos = *self.pos;
-        let len = vec::uniq_len(&const *self.bytes);
+        let len = self.bytes.len();
         *self.pos = seek_in_buf(offset, pos, len, whence);
     }
 
index 46f69d020d1ec7155bc29040785da0aaae877b45..b7ff1acea139430ecec443e7783e81bf4fcc3c9c 100644 (file)
@@ -18,6 +18,7 @@
 
 use cast::transmute;
 use char;
+use container::Container;
 use intrinsic;
 use intrinsic::{TyDesc, TyVisitor, visit_tydesc};
 use intrinsic::Opaque;
@@ -502,7 +503,7 @@ fn visit_enum_variant_field(&self,
                                 _offset: uint,
                                 inner: *TyDesc)
                                 -> bool {
-        match self.var_stk[vec::uniq_len(&const *self.var_stk) - 1] {
+        match self.var_stk[self.var_stk.len() - 1] {
             Matched => {
                 if i != 0 {
                     self.writer.write_str(", ");
@@ -520,7 +521,7 @@ fn visit_leave_enum_variant(&self, _variant: uint,
                                 _disr_val: int,
                                 n_fields: uint,
                                 _name: &str) -> bool {
-        match self.var_stk[vec::uniq_len(&const *self.var_stk) - 1] {
+        match self.var_stk[self.var_stk.len() - 1] {
             Matched => {
                 if n_fields > 0 {
                     self.writer.write_char(')');
index 727ab13a4f6f727c4c4af8316ffa16f351496ea9..a5e68bcdac4cf2217b6d587608f430867562fd5c 100644 (file)
@@ -297,7 +297,8 @@ fn push_bytes(&mut self, buf: &mut ~[u8], len: uint) {
 
             do (|| {
                 while total_read < len {
-                    let slice = vec::mut_slice(*buf, start_len + total_read, buf.len());
+                    let len = buf.len();
+                    let slice = vec::mut_slice(*buf, start_len + total_read, len);
                     match self.read(slice) {
                         Some(nread) => {
                             total_read += nread;
index 211ee12c291059e2b7dbf76d8b13903410253029..44f3fc4c321219c7c6deb83e0cd3d9c9955c6633 100644 (file)
@@ -118,15 +118,6 @@ pub fn capacity<T>(v: &const ~[T]) -> uint {
     }
 }
 
-// A botch to tide us over until core and std are fully demuted.
-#[allow(missing_doc)]
-pub fn uniq_len<T>(v: &const ~[T]) -> uint {
-    unsafe {
-        let v: &~[T] = transmute(v);
-        as_const_buf(*v, |_p, len| len)
-    }
-}
-
 /**
  * Creates and initializes an owned vector.
  *
@@ -1767,19 +1758,32 @@ fn add(&self, rhs: & &'self const [T]) -> ~[T] {
     }
 }
 
-impl<'self,T> Container for &'self const [T] {
+impl<'self, T> Container for &'self const [T] {
     /// Returns true if a vector contains no elements
     #[inline]
-    fn is_empty(&const self) -> bool {
+    fn is_empty(&self) -> bool {
         as_const_buf(*self, |_p, len| len == 0u)
     }
 
     /// Returns the length of a vector
     #[inline]
-    fn len(&const self) -> uint {
+    fn len(&self) -> uint {
         as_const_buf(*self, |_p, len| len)
     }
+}
 
+impl<T> Container for ~[T] {
+    /// Returns true if a vector contains no elements
+    #[inline]
+    fn is_empty(&self) -> bool {
+        as_const_buf(*self, |_p, len| len == 0u)
+    }
+
+    /// Returns the length of a vector
+    #[inline]
+    fn len(&self) -> uint {
+        as_const_buf(*self, |_p, len| len)
+    }
 }
 
 #[allow(missing_doc)]