From de481bcd674d48edbeddbb00e7590c0f3f212433 Mon Sep 17 00:00:00 2001 From: Jeong YunWon Date: Sat, 18 Mar 2023 22:43:32 +0900 Subject: [PATCH] human readable PyIterIter::next --- vm/src/protocol/iter.rs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/vm/src/protocol/iter.rs b/vm/src/protocol/iter.rs index 1875d7fa2..30b97a7b1 100644 --- a/vm/src/protocol/iter.rs +++ b/vm/src/protocol/iter.rs @@ -234,11 +234,14 @@ where type Item = PyResult; fn next(&mut self) -> Option { - let obj = PyIter::new(self.obj.borrow()) - .next(self.vm) - .map(|iret| iret.into_result().ok()) - .transpose()?; - Some(obj.and_then(|obj| T::try_from_object(self.vm, obj))) + let imp = |next: PyResult| -> PyResult> { + let Some(obj) = next?.into_result().ok() else { + return Ok(None); + }; + Ok(Some(T::try_from_object(self.vm, obj)?)) + }; + let next = PyIter::new(self.obj.borrow()).next(self.vm); + imp(next).transpose() } #[inline]