Struct Chain

Source
pub struct Chain<P0, P1>(/* private fields */);
Expand description

A pattern for the chain combinator, chaining values of the two pattern P0 and P1 as a tuple value.

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

Implementations§

Source§

impl<P0, P1> Chain<P0, P1>

Source

pub fn unwrap(self) -> (P0, P1)

Trait Implementations§

Source§

impl<P0: Clone, P1: Clone> Clone for Chain<P0, P1>

Source§

fn clone(&self) -> Chain<P0, P1>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<P0: Debug, P1: Debug> Debug for Chain<P0, P1>

Source§

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

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

impl<P0, P1> Pattern for Chain<P0, P1>
where P0: Pattern, P1: Pattern,

Source§

type Value = (<P0 as Pattern>::Value, <P1 as Pattern>::Value)

The value type associated to the pattern.
Source§

fn then<F, P>(self, f: F) -> Then<Self, F>
where F: FnOnce(Result<Self::Value>) -> 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>(self, f: F) -> OrElse<Self, F>
where F: FnOnce(Error) -> 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 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 repeat(self) -> Repeat<Self>
where Self: Clone,

Creates Repeat pattern to represent an infinite stream of this pattern.
Source§

impl<R: Read, P0, P1> ReadFrom<R> for Chain<P0, P1>
where P0: ReadFrom<R>, P1: ReadFrom<R>,

Source§

type Future = ReadChain<R, P0, P1>

The future to read a value of the pattern from R.
Source§

fn lossless_read_from(self, reader: R) -> Self::Future

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

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

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>

Scynchronously reading a value of the pattern from reader. Read more
Source§

fn boxed(self) -> BoxReadFrom<R, Self::Value>
where Self: Send + 'static, Self::Future: Send + 'static,

Returns the boxed version of this pattern.
Source§

impl<W: Write, P0, P1> WriteTo<W> for Chain<P0, P1>
where P0: WriteTo<W>, P1: WriteTo<W>,

Source§

type Future = WriteChain<W, P0, P1>

The future to write a value of the pattern to W.
Source§

fn lossless_write_to(self, writer: W) -> Self::Future

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

fn write_to(self, writer: W) -> LossyWriteTo<W, Self::Future>

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

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

Scynchronously writing a value of the pattern to writer. Read more
Source§

fn boxed(self) -> BoxWriteTo<W, Self::Value>
where Self: Send + 'static, Self::Future: Send + 'static,

Returns the boxed version of this pattern.

Auto Trait Implementations§

§

impl<P0, P1> Freeze for Chain<P0, P1>
where P0: Freeze, P1: Freeze,

§

impl<P0, P1> RefUnwindSafe for Chain<P0, P1>

§

impl<P0, P1> Send for Chain<P0, P1>
where P0: Send, P1: Send,

§

impl<P0, P1> Sync for Chain<P0, P1>
where P0: Sync, P1: Sync,

§

impl<P0, P1> Unpin for Chain<P0, P1>
where P0: Unpin, P1: Unpin,

§

impl<P0, P1> UnwindSafe for Chain<P0, P1>
where P0: UnwindSafe, P1: 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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. 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.