From fd0082fd2c55698906d3887d47fd83fc1155479e Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Mon, 7 Jul 2025 00:37:44 +0000 Subject: [PATCH] Add ready_try_skip_while() to stream utils. Signed-off-by: Jason Volk --- src/core/utils/stream/try_ready.rs | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/core/utils/stream/try_ready.rs b/src/core/utils/stream/try_ready.rs index 287fa1e1..53183ec8 100644 --- a/src/core/utils/stream/try_ready.rs +++ b/src/core/utils/stream/try_ready.rs @@ -3,7 +3,10 @@ use futures::{ future::{Ready, ready}, - stream::{AndThen, TryFilterMap, TryFold, TryForEach, TryStream, TryStreamExt, TryTakeWhile}, + stream::{ + AndThen, TryFilterMap, TryFold, TryForEach, TrySkipWhile, TryStream, TryStreamExt, + TryTakeWhile, + }, }; use crate::Result; @@ -57,6 +60,13 @@ where where F: FnMut(S::Ok) -> Result<(), E>; + fn ready_try_skip_while( + self, + f: F, + ) -> TrySkipWhile>, impl FnMut(&S::Ok) -> Ready>> + where + F: Fn(&S::Ok) -> Result; + fn ready_try_take_while( self, f: F, @@ -130,6 +140,17 @@ where self.try_for_each(move |t| ready(f(t))) } + #[inline] + fn ready_try_skip_while( + self, + f: F, + ) -> TrySkipWhile>, impl FnMut(&S::Ok) -> Ready>> + where + F: Fn(&S::Ok) -> Result, + { + self.try_skip_while(move |t| ready(f(t))) + } + #[inline] fn ready_try_take_while( self,