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,