Trait Pattern

Source
pub trait Pattern<'a>: Debug + Clone {
    type Output;

    // Required method
    fn try_match(&self, input: &'a Term) -> Result<'a, Self::Output>;

    // Provided method
    fn unmatched(&self, input: &'a Term) -> Unmatch<'a>
       where Self: 'static { ... }
}

Required Associated Types§

Required Methods§

Source

fn try_match(&self, input: &'a Term) -> Result<'a, Self::Output>

Provided Methods§

Source

fn unmatched(&self, input: &'a Term) -> Unmatch<'a>
where Self: 'static,

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<'a> Pattern<'a> for &'static str

Source§

type Output = &'static str

Source§

fn try_match(&self, input: &'a Term) -> Result<'a, Self::Output>

Source§

impl<'a> Pattern<'a> for ()

Source§

type Output = ()

Source§

fn try_match(&self, input: &'a Term) -> Result<'a, Self::Output>

Source§

impl<'a, P0> Pattern<'a> for (P0,)
where P0: Pattern<'a> + 'static,

Source§

type Output = <P0 as Pattern<'a>>::Output

Source§

fn try_match(&self, input: &'a Term) -> Result<'a, Self::Output>

Source§

impl<'a, P0, P1> Pattern<'a> for (P0, P1)
where P0: Pattern<'a> + 'static, P1: Pattern<'a> + 'static,

Source§

type Output = (<P0 as Pattern<'a>>::Output, <P1 as Pattern<'a>>::Output)

Source§

fn try_match(&self, input: &'a Term) -> Result<'a, Self::Output>

Source§

impl<'a, P0, P1, P2> Pattern<'a> for (P0, P1, P2)
where P0: Pattern<'a> + 'static, P1: Pattern<'a> + 'static, P2: Pattern<'a> + 'static,

Source§

type Output = (<P0 as Pattern<'a>>::Output, <P1 as Pattern<'a>>::Output, <P2 as Pattern<'a>>::Output)

Source§

fn try_match(&self, input: &'a Term) -> Result<'a, Self::Output>

Source§

impl<'a, P0, P1, P2, P3> Pattern<'a> for (P0, P1, P2, P3)
where P0: Pattern<'a> + 'static, P1: Pattern<'a> + 'static, P2: Pattern<'a> + 'static, P3: Pattern<'a> + 'static,

Source§

type Output = (<P0 as Pattern<'a>>::Output, <P1 as Pattern<'a>>::Output, <P2 as Pattern<'a>>::Output, <P3 as Pattern<'a>>::Output)

Source§

fn try_match(&self, input: &'a Term) -> Result<'a, Self::Output>

Source§

impl<'a, P0, P1, P2, P3, P4> Pattern<'a> for (P0, P1, P2, P3, P4)
where P0: Pattern<'a> + 'static, P1: Pattern<'a> + 'static, P2: Pattern<'a> + 'static, P3: Pattern<'a> + 'static, P4: Pattern<'a> + 'static,

Source§

type Output = (<P0 as Pattern<'a>>::Output, <P1 as Pattern<'a>>::Output, <P2 as Pattern<'a>>::Output, <P3 as Pattern<'a>>::Output, <P4 as Pattern<'a>>::Output)

Source§

fn try_match(&self, input: &'a Term) -> Result<'a, Self::Output>

Source§

impl<'a, P0, P1, P2, P3, P4, P5> Pattern<'a> for (P0, P1, P2, P3, P4, P5)
where P0: Pattern<'a> + 'static, P1: Pattern<'a> + 'static, P2: Pattern<'a> + 'static, P3: Pattern<'a> + 'static, P4: Pattern<'a> + 'static, P5: Pattern<'a> + 'static,

Source§

type Output = (<P0 as Pattern<'a>>::Output, <P1 as Pattern<'a>>::Output, <P2 as Pattern<'a>>::Output, <P3 as Pattern<'a>>::Output, <P4 as Pattern<'a>>::Output, <P5 as Pattern<'a>>::Output)

Source§

fn try_match(&self, input: &'a Term) -> Result<'a, Self::Output>

Implementors§

Source§

impl<'a> Pattern<'a> for Ascii

Source§

impl<'a> Pattern<'a> for F32

Source§

impl<'a> Pattern<'a> for F64

Source§

impl<'a> Pattern<'a> for I8

Source§

impl<'a> Pattern<'a> for I16

Source§

impl<'a> Pattern<'a> for I32

Source§

impl<'a> Pattern<'a> for I64

Source§

impl<'a> Pattern<'a> for Int

Source§

impl<'a> Pattern<'a> for Nil

Source§

type Output = &'a [Term]

Source§

impl<'a> Pattern<'a> for U8

Source§

impl<'a> Pattern<'a> for U16

Source§

impl<'a> Pattern<'a> for U32

Source§

impl<'a> Pattern<'a> for U64

Source§

impl<'a> Pattern<'a> for Uint

Source§

impl<'a> Pattern<'a> for Unicode

Source§

impl<'a, C> Pattern<'a> for Str<C>
where C: Pattern<'a, Output = char> + 'static,

Source§

impl<'a, O> Pattern<'a> for Any<O>
where O: Debug + Clone + 'static, Term: TryAsRef<O>,

Source§

impl<'a, P0> Pattern<'a> for FixList<(P0,)>
where P0: Pattern<'a> + 'static,

Source§

type Output = <P0 as Pattern<'a>>::Output

Source§

impl<'a, P0, P1> Pattern<'a> for Cons<P0, P1>
where P0: Pattern<'a> + 'static, P1: Pattern<'a> + 'static,

Source§

type Output = (<P0 as Pattern<'a>>::Output, Vec<<P1 as Pattern<'a>>::Output>)

Source§

impl<'a, P0, P1> Pattern<'a> for FixList<(P0, P1)>
where P0: Pattern<'a> + 'static, P1: Pattern<'a> + 'static,

Source§

type Output = (<P0 as Pattern<'a>>::Output, <P1 as Pattern<'a>>::Output)

Source§

impl<'a, P0, P1> Pattern<'a> for Or<(P0, P1)>
where P0: Pattern<'a> + 'static, P1: Pattern<'a> + 'static,

Source§

type Output = Union2<<P0 as Pattern<'a>>::Output, <P1 as Pattern<'a>>::Output>

Source§

impl<'a, P0, P1, P2> Pattern<'a> for FixList<(P0, P1, P2)>
where P0: Pattern<'a> + 'static, P1: Pattern<'a> + 'static, P2: Pattern<'a> + 'static,

Source§

type Output = (<P0 as Pattern<'a>>::Output, <P1 as Pattern<'a>>::Output, <P2 as Pattern<'a>>::Output)

Source§

impl<'a, P0, P1, P2> Pattern<'a> for Or<(P0, P1, P2)>
where P0: Pattern<'a> + 'static, P1: Pattern<'a> + 'static, P2: Pattern<'a> + 'static,

Source§

type Output = Union3<<P0 as Pattern<'a>>::Output, <P1 as Pattern<'a>>::Output, <P2 as Pattern<'a>>::Output>

Source§

impl<'a, P0, P1, P2, P3> Pattern<'a> for FixList<(P0, P1, P2, P3)>
where P0: Pattern<'a> + 'static, P1: Pattern<'a> + 'static, P2: Pattern<'a> + 'static, P3: Pattern<'a> + 'static,

Source§

type Output = (<P0 as Pattern<'a>>::Output, <P1 as Pattern<'a>>::Output, <P2 as Pattern<'a>>::Output, <P3 as Pattern<'a>>::Output)

Source§

impl<'a, P0, P1, P2, P3> Pattern<'a> for Or<(P0, P1, P2, P3)>
where P0: Pattern<'a> + 'static, P1: Pattern<'a> + 'static, P2: Pattern<'a> + 'static, P3: Pattern<'a> + 'static,

Source§

type Output = Union4<<P0 as Pattern<'a>>::Output, <P1 as Pattern<'a>>::Output, <P2 as Pattern<'a>>::Output, <P3 as Pattern<'a>>::Output>

Source§

impl<'a, P0, P1, P2, P3, P4> Pattern<'a> for FixList<(P0, P1, P2, P3, P4)>
where P0: Pattern<'a> + 'static, P1: Pattern<'a> + 'static, P2: Pattern<'a> + 'static, P3: Pattern<'a> + 'static, P4: Pattern<'a> + 'static,

Source§

type Output = (<P0 as Pattern<'a>>::Output, <P1 as Pattern<'a>>::Output, <P2 as Pattern<'a>>::Output, <P3 as Pattern<'a>>::Output, <P4 as Pattern<'a>>::Output)

Source§

impl<'a, P0, P1, P2, P3, P4> Pattern<'a> for Or<(P0, P1, P2, P3, P4)>
where P0: Pattern<'a> + 'static, P1: Pattern<'a> + 'static, P2: Pattern<'a> + 'static, P3: Pattern<'a> + 'static, P4: Pattern<'a> + 'static,

Source§

type Output = Union5<<P0 as Pattern<'a>>::Output, <P1 as Pattern<'a>>::Output, <P2 as Pattern<'a>>::Output, <P3 as Pattern<'a>>::Output, <P4 as Pattern<'a>>::Output>

Source§

impl<'a, P0, P1, P2, P3, P4, P5> Pattern<'a> for FixList<(P0, P1, P2, P3, P4, P5)>
where P0: Pattern<'a> + 'static, P1: Pattern<'a> + 'static, P2: Pattern<'a> + 'static, P3: Pattern<'a> + 'static, P4: Pattern<'a> + 'static, P5: Pattern<'a> + 'static,

Source§

type Output = (<P0 as Pattern<'a>>::Output, <P1 as Pattern<'a>>::Output, <P2 as Pattern<'a>>::Output, <P3 as Pattern<'a>>::Output, <P4 as Pattern<'a>>::Output, <P5 as Pattern<'a>>::Output)

Source§

impl<'a, P0, P1, P2, P3, P4, P5> Pattern<'a> for Or<(P0, P1, P2, P3, P4, P5)>
where P0: Pattern<'a> + 'static, P1: Pattern<'a> + 'static, P2: Pattern<'a> + 'static, P3: Pattern<'a> + 'static, P4: Pattern<'a> + 'static, P5: Pattern<'a> + 'static,

Source§

type Output = Union6<<P0 as Pattern<'a>>::Output, <P1 as Pattern<'a>>::Output, <P2 as Pattern<'a>>::Output, <P3 as Pattern<'a>>::Output, <P4 as Pattern<'a>>::Output, <P5 as Pattern<'a>>::Output>

Source§

impl<'a, P> Pattern<'a> for VarList<P>
where P: Pattern<'a> + 'static,

Source§

type Output = Vec<<P as Pattern<'a>>::Output>