Struct Then

Source
pub struct Then<P, F, E>(/* private fields */);
Expand description

A pattern for the then combinator, chaining a pattern on the end of another pattern regardless of its evaluation result.

This pattern is created by calling Pattern::then method.

Implementations§

Source§

impl<P, F, E> Then<P, F, E>

Source

pub fn unwrap(self) -> (P, F)

Trait Implementations§

Source§

impl<M: Matcher, P0, P1, F> AsyncMatch<M> for Then<P0, F, M::Error>
where P0: AsyncMatch<M>, P1: AsyncMatch<M>, F: FnOnce(Result<P0::Value, M::Error>) -> P1,

Source§

type Future = MatchThen<M, P0, P1, F>

The future type which will produce a value Self::Value by matching this pattern and a matcher M.
Source§

fn async_match(self, matcher: M) -> Self::Future

Creates a future which will produce a Self::Value by matching this pattern and the matcher.
Source§

impl<P: Debug, F: Debug, E: Debug> Debug for Then<P, F, E>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<P0, P1, F, E> Pattern for Then<P0, F, E>
where P0: Pattern, P1: Pattern, F: FnOnce(Result<P0::Value, E>) -> P1,

Source§

type Value = <P1 as Pattern>::Value

The value type associated to the pattern.
Source§

fn then<F, P, E>(self, f: F) -> Then<Self, F, E>
where F: FnOnce(Result<Self::Value, E>) -> P,

Takes a closure which maps a Result<Self::Value> to a pattern, and creates a pattern which calls that closure on the evaluation result of self.
Source§

fn and_then<F, P>(self, f: F) -> AndThen<Self, F>
where F: FnOnce(Self::Value) -> P,

Takes a closure which maps a value to a pattern, and creates a pattern which calls that closure if the evaluation of self was succeeded.
Source§

fn or_else<F, P, E>(self, f: F) -> OrElse<Self, F, E>
where F: FnOnce(E) -> P,

Takes a closure which maps an error to a pattern, and creates a pattern which calls that closure if the evaluation of self failed.
Source§

fn or<P>(self, other: P) -> Or<Self, P>
where P: Pattern<Value = Self::Value>,

Takes a pattern other which will be used if the evaluation of self is failed.
Source§

fn map<F, T>(self, f: F) -> Map<Self, F>
where F: FnOnce(Self::Value) -> T,

Takes a closure which maps a value to another value, and creates a pattern which calls that closure on the evaluated value of self.
Source§

fn chain<P>(self, other: P) -> Chain<Self, P>
where P: Pattern,

Takes two patterns and creates a new pattern over both in sequence. Read more
Source§

fn expect_eq(self, expected_value: Self::Value) -> Expect<Self>
where Self::Value: PartialEq,

Takes an expected value and creates a pattern which performs a pattern matching and validates that the matched value is equal to the expected one. Read more
Source§

fn boxed<M: Matcher>(self) -> BoxPattern<M, Self::Value>
where Self: AsyncMatch<M> + 'static, Self::Future: Send + 'static,

Returnes a boxed pattern to match with a matcher M.

Auto Trait Implementations§

§

impl<P, F, E> Freeze for Then<P, F, E>
where P: Freeze, F: Freeze,

§

impl<P, F, E> RefUnwindSafe for Then<P, F, E>

§

impl<P, F, E> Send for Then<P, F, E>
where P: Send, F: Send, E: Send,

§

impl<P, F, E> Sync for Then<P, F, E>
where P: Sync, F: Sync, E: Sync,

§

impl<P, F, E> Unpin for Then<P, F, E>
where P: Unpin, F: Unpin, E: Unpin,

§

impl<P, F, E> UnwindSafe for Then<P, F, E>
where P: UnwindSafe, F: UnwindSafe, E: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<R, T> ReadFrom<R> for T
where R: Read, T: AsyncMatch<PatternReader<R>>,

Source§

fn read_from(self, reader: R) -> ReadPattern<Self, R>

Creates a future instance to read a value of the pattern from reader. Read more
Source§

fn sync_read_from(self, reader: R) -> Result<Self::Value>

Synchronous version of the ReadFrom::read_from method.
Source§

fn into_stream(self, reader: R) -> ReadStream<R, Self>
where Self: Clone,

Consumes this pattern and the reader, returning a stream which will produce a sequence of read values. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<W, T> WriteInto<W> for T
where W: Write, T: AsyncMatch<PatternWriter<W>>,

Source§

fn write_into(self, writer: W) -> WritePattern<Self, W>

Creates a future instance to write a value of the pattern to writer. Read more
Source§

fn sync_write_into(self, writer: W) -> Result<Self::Value>

Synchronous version of the WriteInto::write_into method.