From bf3aefeba0bc72d1e26d36a7d88e2995e460bc1d Mon Sep 17 00:00:00 2001 From: Lukas Kalbertodt Date: Thu, 14 Apr 2016 16:07:53 +0200 Subject: Add `contains` to `VecDeque` and `LinkedList` (+ tests) --- src/libcollections/linked_list.rs | 10 ++++++++++ src/libcollections/vec_deque.rs | 11 +++++++++++ 2 files changed, 21 insertions(+) (limited to 'src/libcollections') diff --git a/src/libcollections/linked_list.rs b/src/libcollections/linked_list.rs index 85a4fa82e2a..17d3dbc10c4 100644 --- a/src/libcollections/linked_list.rs +++ b/src/libcollections/linked_list.rs @@ -401,6 +401,16 @@ impl LinkedList { *self = LinkedList::new() } + /// Returns `true` if the `LinkedList` contains an element equal to the + /// given value. + #[unstable(feature = "linked_list_contains", reason = "recently added", + issue = "32630")] + pub fn contains(&self, x: &T) -> bool + where T: PartialEq + { + self.iter().any(|e| e == x) + } + /// Provides a reference to the front element, or `None` if the list is /// empty. /// diff --git a/src/libcollections/vec_deque.rs b/src/libcollections/vec_deque.rs index 9e2b25d178f..45b4f0c958b 100644 --- a/src/libcollections/vec_deque.rs +++ b/src/libcollections/vec_deque.rs @@ -872,6 +872,17 @@ impl VecDeque { self.drain(..); } + /// Returns `true` if the `VecDeque` contains an element equal to the + /// given value. + #[unstable(feature = "vec_deque_contains", reason = "recently added", + issue = "32630")] + pub fn contains(&self, x: &T) -> bool + where T: PartialEq + { + let (a, b) = self.as_slices(); + a.contains(x) || b.contains(x) + } + /// Provides a reference to the front element, or `None` if the sequence is /// empty. /// -- cgit 1.4.1-3-g733a5