about summary refs log tree commit diff
path: root/src/libstd/priority_queue.rs
diff options
context:
space:
mode:
authorDaniel Micay <danielmicay@gmail.com>2012-12-10 15:46:41 -0500
committerBrian Anderson <banderson@mozilla.com>2012-12-16 19:27:05 -0800
commit285496bd550817094c31167e7e49378a35560842 (patch)
tree1368d9211ba38431cb37cf7d8b7400c1ded081af /src/libstd/priority_queue.rs
parent757a2afb6b80cb4dbdcb8069f1af511ec42e8670 (diff)
downloadrust-285496bd550817094c31167e7e49378a35560842.tar.gz
rust-285496bd550817094c31167e7e49378a35560842.zip
priority_queue: make from_vec a static method
Diffstat (limited to 'src/libstd/priority_queue.rs')
-rw-r--r--src/libstd/priority_queue.rs21
1 files changed, 11 insertions, 10 deletions
diff --git a/src/libstd/priority_queue.rs b/src/libstd/priority_queue.rs
index 31d6e04ae62..b92f5f57a5f 100644
--- a/src/libstd/priority_queue.rs
+++ b/src/libstd/priority_queue.rs
@@ -91,6 +91,16 @@ impl <T: Copy Ord> PriorityQueue<T> {
         q.to_vec()
     }
 
+    static pub pure fn from_vec(xs: ~[T]) -> PriorityQueue<T> {
+        let mut q = PriorityQueue{data: xs,};
+        let mut n = q.len() / 2;
+        while n > 0 {
+            n -= 1;
+            unsafe { q.siftup(n) }; // purity-checking workaround
+        }
+        q
+    }
+
     priv fn siftdown(&mut self, startpos: uint, pos: uint) {
         let mut pos = pos;
         let newitem = self.data[pos];
@@ -133,20 +143,11 @@ impl <T: Copy Ord> PriorityQueue<T> {
     }
 }
 
-pub pure fn from_vec<T: Copy Ord>(xs: ~[T]) -> PriorityQueue<T> {
-    let mut q = PriorityQueue{data: xs,};
-    let mut n = q.len() / 2;
-    while n > 0 {
-        n -= 1;
-        unsafe { q.siftup(n) }; // purity-checking workaround
-    }
-    q
-}
-
 #[cfg(test)]
 mod tests {
     use sort::merge_sort;
     use core::cmp::le;
+    use PriorityQueue::from_vec;
 
     #[test]
     fn test_top_and_pop() {