diff --git a/CHANGELOG.md b/CHANGELOG.md index 7ec5966b63..dcfc3d015b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -45,6 +45,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ### Changed - Changed `stable_deref_trait` to a platform-dependent dependency. +- Changed `SortedLinkedList::pop` return type from `Result` to `Option` to match `std::vec::pop`. ### Fixed diff --git a/src/sorted_linked_list.rs b/src/sorted_linked_list.rs index 9f37ff3c6e..fbabcbf52f 100644 --- a/src/sorted_linked_list.rs +++ b/src/sorted_linked_list.rs @@ -390,10 +390,10 @@ where /// *find += 1000; /// find.finish(); /// - /// assert_eq!(ll.pop(), Ok(1002)); - /// assert_eq!(ll.pop(), Ok(3)); - /// assert_eq!(ll.pop(), Ok(1)); - /// assert_eq!(ll.pop(), Err(())); + /// assert_eq!(ll.pop(), Some(1002)); + /// assert_eq!(ll.pop(), Some(3)); + /// assert_eq!(ll.pop(), Some(1)); + /// assert_eq!(ll.pop(), None); /// ``` pub fn find_mut(&mut self, mut f: F) -> Option> where @@ -491,16 +491,15 @@ where /// ll.push(1).unwrap(); /// ll.push(2).unwrap(); /// - /// assert_eq!(ll.pop(), Ok(2)); - /// assert_eq!(ll.pop(), Ok(1)); - /// assert_eq!(ll.pop(), Err(())); + /// assert_eq!(ll.pop(), Some(2)); + /// assert_eq!(ll.pop(), Some(1)); + /// assert_eq!(ll.pop(), None); /// ``` - #[allow(clippy::result_unit_err)] - pub fn pop(&mut self) -> Result { + pub fn pop(&mut self) -> Option { if !self.is_empty() { - Ok(unsafe { self.pop_unchecked() }) + Some(unsafe { self.pop_unchecked() }) } else { - Err(()) + None } } @@ -652,9 +651,9 @@ where /// let mut find = ll.find_mut(|v| *v == 2).unwrap(); /// find.pop(); /// - /// assert_eq!(ll.pop(), Ok(3)); - /// assert_eq!(ll.pop(), Ok(1)); - /// assert_eq!(ll.pop(), Err(())); + /// assert_eq!(ll.pop(), Some(3)); + /// assert_eq!(ll.pop(), Some(1)); + /// assert_eq!(ll.pop(), None); /// ``` #[inline] pub fn pop(mut self) -> T { @@ -685,10 +684,10 @@ where /// *find += 1000; /// find.finish(); // Will resort, we accessed (and updated) the value. /// - /// assert_eq!(ll.pop(), Ok(1002)); - /// assert_eq!(ll.pop(), Ok(3)); - /// assert_eq!(ll.pop(), Ok(1)); - /// assert_eq!(ll.pop(), Err(())); + /// assert_eq!(ll.pop(), Some(1002)); + /// assert_eq!(ll.pop(), Some(3)); + /// assert_eq!(ll.pop(), Some(1)); + /// assert_eq!(ll.pop(), None); /// ``` #[inline] pub fn finish(self) {