UntilExt

Trait UntilExt 

Source
pub trait UntilExt<I, O, E> {
    // Provided methods
    fn until<O2, P>(self, p: P) -> Until<Self, P, O, O2>
       where I: Clone,
             O: Unpack,
             O2: HList,
             (Vec<O::Output>,): Extend<O2>,
             Self: Sized,
             P: Pipe<I, O2, E> { ... }
    fn no_more_until<O2, P>(self, p: P) -> NoMoreUntil<Self, P, O, O2>
       where I: Clone,
             O: Unpack,
             O2: HList,
             (Vec<O::Output>,): Extend<O2>,
             Self: Sized,
             P: Pipe<I, O2, E> { ... }
    fn repeat_until<O2, R, P>(self, r: R, p: P) -> RepeatUntil<Self, P, O, O2>
       where I: Clone,
             O: Unpack,
             O2: HList,
             R: TryInto<Repetition>,
             R::Error: Error,
             (Vec<O::Output>,): Extend<O2>,
             Self: Sized,
             P: Pipe<I, O2, E> { ... }
}
Expand description

Until combinator

Provided Methods§

Source

fn until<O2, P>(self, p: P) -> Until<Self, P, O, O2>
where I: Clone, O: Unpack, O2: HList, (Vec<O::Output>,): Extend<O2>, Self: Sized, P: Pipe<I, O2, E>,

Applies a Pipe until the 2nd succeeds

Source

fn no_more_until<O2, P>(self, p: P) -> NoMoreUntil<Self, P, O, O2>
where I: Clone, O: Unpack, O2: HList, (Vec<O::Output>,): Extend<O2>, Self: Sized, P: Pipe<I, O2, E>,

Applies self until p succeeds, self is applied 0 or more times

Source

fn repeat_until<O2, R, P>(self, r: R, p: P) -> RepeatUntil<Self, P, O, O2>
where I: Clone, O: Unpack, O2: HList, R: TryInto<Repetition>, R::Error: Error, (Vec<O::Output>,): Extend<O2>, Self: Sized, P: Pipe<I, O2, E>,

repeats self with the given repetition then applies p

Implementors§

Source§

impl<I, O, E, P: Pipe<I, O, E>> UntilExt<I, O, E> for P