From 8a04a7c3c2d667407febe00187ab669d3dec7562 Mon Sep 17 00:00:00 2001 From: Adam Gutglick Date: Fri, 14 Feb 2025 14:44:32 +0000 Subject: [PATCH] . --- vortex-error/src/ext.rs | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/vortex-error/src/ext.rs b/vortex-error/src/ext.rs index a1e2ee5befc..b75b3861b45 100644 --- a/vortex-error/src/ext.rs +++ b/vortex-error/src/ext.rs @@ -2,8 +2,8 @@ use crate::VortexResult; /// Extension trait for VortexResult pub trait ResultExt: private::Sealed { - /// Flatten a nested [`VortexResult`]. Helper function until is stabilized. - fn flatten(self) -> VortexResult; + /// Unnest a nested [`VortexResult`]. Helper function until is stabilized. + fn unnest(self) -> VortexResult; } mod private { @@ -15,10 +15,23 @@ mod private { } impl ResultExt for VortexResult> { - fn flatten(self) -> VortexResult { + fn unnest(self) -> VortexResult { match self { Ok(Ok(v)) => Ok(v), Ok(Err(e)) | Err(e) => Err(e), } } } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn basic_example() { + let r: VortexResult> = Ok(Ok(5_usize)); + + // Only need to unwrap once! + assert_eq!(5, r.unnest().unwrap()); + } +}