about summary refs log tree commit diff
path: root/library/alloc
diff options
context:
space:
mode:
authorVlad Frolov <frolvlad@gmail.com>2021-02-20 15:22:48 +0200
committerVlad Frolov <frolvlad@gmail.com>2021-02-20 20:46:16 +0200
commit6233f3f4a391b9ef562e77dc4fb857ffaa4ca410 (patch)
treef73713bcee7f4a853a37e62fe483b56706252eb3 /library/alloc
parentda5f7f10936198bad22c370118bad1ac332d2f46 (diff)
downloadrust-6233f3f4a391b9ef562e77dc4fb857ffaa4ca410.tar.gz
rust-6233f3f4a391b9ef562e77dc4fb857ffaa4ca410.zip
alloc: Added `as_slice` method to `BinaryHeap` collection
Diffstat (limited to 'library/alloc')
-rw-r--r--library/alloc/src/collections/binary_heap.rs23
-rw-r--r--library/alloc/tests/lib.rs1
2 files changed, 24 insertions, 0 deletions
diff --git a/library/alloc/src/collections/binary_heap.rs b/library/alloc/src/collections/binary_heap.rs
index 8a36b2af765..7a43a3a868b 100644
--- a/library/alloc/src/collections/binary_heap.rs
+++ b/library/alloc/src/collections/binary_heap.rs
@@ -889,6 +889,29 @@ impl<T> BinaryHeap<T> {
         self.data.shrink_to(min_capacity)
     }
 
+    /// Returns a slice of all values in the underlying vector, in arbitrary
+    /// order.
+    ///
+    /// # Examples
+    ///
+    /// Basic usage:
+    ///
+    /// ```
+    /// #![feature(binary_heap_as_slice)]
+    /// use std::collections::BinaryHeap;
+    /// let heap = BinaryHeap::from(vec![1, 2, 3, 4, 5, 6, 7]);
+    /// let slice = heap.as_slice();
+    ///
+    /// // Will print in some order
+    /// for x in slice {
+    ///     println!("{}", x);
+    /// }
+    /// ```
+    #[unstable(feature = "binary_heap_as_slice", issue = "82331")]
+    pub fn as_slice(&self) -> &[T] {
+        self.data.as_slice()
+    }
+
     /// Consumes the `BinaryHeap` and returns the underlying vector
     /// in arbitrary order.
     ///
diff --git a/library/alloc/tests/lib.rs b/library/alloc/tests/lib.rs
index dd98f806451..4679121c929 100644
--- a/library/alloc/tests/lib.rs
+++ b/library/alloc/tests/lib.rs
@@ -15,6 +15,7 @@
 #![feature(binary_heap_drain_sorted)]
 #![feature(slice_ptr_get)]
 #![feature(binary_heap_retain)]
+#![feature(binary_heap_as_slice)]
 #![feature(inplace_iteration)]
 #![feature(iter_map_while)]
 #![feature(int_bits_const)]