From 106be5746d7b264fba8056d9e382f8594334e346 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Sat, 26 Oct 2019 16:33:05 +0200 Subject: [PATCH] Revert "Add extension traits for handling Result, E> conversion" This reverts commit d810b63886f4006d01bca894982bbc867616f37c. As resiter v0.4.0 does provide this extension now, we don't need it in the codebase anymore. --- lib/core/libimagerror/src/iter.rs | 46 ----------------------------- lib/core/libimagerror/src/lib.rs | 1 - lib/core/libimagerror/src/result.rs | 38 ------------------------ 3 files changed, 85 deletions(-) delete mode 100644 lib/core/libimagerror/src/result.rs diff --git a/lib/core/libimagerror/src/iter.rs b/lib/core/libimagerror/src/iter.rs index 1e7dbff9..5a288321 100644 --- a/lib/core/libimagerror/src/iter.rs +++ b/lib/core/libimagerror/src/iter.rs @@ -128,49 +128,3 @@ impl TraceIterator for I where I: Iterator> {} - -/// Extension trait for doing -/// -/// ```ignore -/// Iterator, E>> -> Iterator> -/// ``` -/// -pub trait IterInnerOkOrElse - where T: Sized, - E: Sized, - Self: Iterator, E>> + Sized, - F: Fn() -> E, -{ - fn map_inner_ok_or_else(self, f: F) -> IterInnerOkOrElseImpl; -} - -pub struct IterInnerOkOrElseImpl(I, F) - where I: Iterator, E>> + Sized, - T: Sized, - E: Sized, - F: Fn() -> E; - -impl IterInnerOkOrElse for I - where I: Iterator, E>> + Sized, - T: Sized, - E: Sized, - F: Fn() -> E, -{ - fn map_inner_ok_or_else(self, f: F) -> IterInnerOkOrElseImpl { - IterInnerOkOrElseImpl(self, f) - } -} - -impl Iterator for IterInnerOkOrElseImpl - where I: Iterator, E>> + Sized, - T: Sized, - E: Sized, - F: Fn() -> E, -{ - type Item = Result; - - fn next(&mut self) -> Option { - self.0.next().map(|e| e.and_then(|opt| opt.ok_or_else(|| (self.1)()))) - } -} - diff --git a/lib/core/libimagerror/src/lib.rs b/lib/core/libimagerror/src/lib.rs index 9b5e8407..22391142 100644 --- a/lib/core/libimagerror/src/lib.rs +++ b/lib/core/libimagerror/src/lib.rs @@ -44,7 +44,6 @@ pub mod errors; pub mod exit; pub mod io; pub mod iter; -pub mod result; pub mod str; pub mod trace; diff --git a/lib/core/libimagerror/src/result.rs b/lib/core/libimagerror/src/result.rs deleted file mode 100644 index 0dcb5333..00000000 --- a/lib/core/libimagerror/src/result.rs +++ /dev/null @@ -1,38 +0,0 @@ -// -// imag - the personal information management suite for the commandline -// Copyright (C) 2015-2019 the imag contributors -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; version -// 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -// - -/// Extension trait for doing `Result, E> -> Result` -pub trait ResultOptionExt - where T: Sized, - E: Sized, - F: FnOnce() -> E -{ - fn inner_ok_or_else(self, f: F) -> Result; -} - -impl ResultOptionExt for Result, E> - where T: Sized, - E: Sized, - F: FnOnce() -> E -{ - fn inner_ok_or_else(self, f: F) -> Result { - self.and_then(|opt| opt.ok_or_else(f)) - } -} -