[][src]Struct pest::iterators::Pair

pub struct Pair<'i, R> { /* fields omitted */ }

A matching pair of Tokens and everything between them.

A matching Token pair is formed by a Token::Start and a subsequent Token::End with the same Rule, with the condition that all Tokens between them can form such pairs as well. This is similar to the brace matching problem in editors.

Methods

impl<'i, R: RuleType> Pair<'i, R>
[src]

Returns the Rule of the Pair.

Examples

enum Rule {
    a
}

let input = "";
let pair = pest::state(input, |state| {
    // generating Token pair with Rule::a ...
}).unwrap().next().unwrap();

assert_eq!(pair.as_rule(), Rule::a);

Captures a slice from the &str defined by the token Pair.

Examples

enum Rule {
    ab
}

let input = "ab";
let pair = pest::state(input, |state| {
    // generating Token pair with Rule::ab ...
}).unwrap().next().unwrap();

assert_eq!(pair.as_str(), "ab");

Deprecating in 2.0.0

: Please use as_span instead

Returns the Span defined by the Pair, consuming it.

Examples

enum Rule {
    ab
}

let input = "ab";
let pair = pest::state(input, |state| {
    // generating Token pair with Rule::ab ...
}).unwrap().next().unwrap();

assert_eq!(pair.into_span().as_str(), "ab");

Returns the Span defined by the Pair, without consuming it.

Examples

enum Rule {
    ab
}

let input = "ab";
let pair = pest::state(input, |state| {
    // generating Token pair with Rule::ab ...
}).unwrap().next().unwrap();

assert_eq!(pair.as_span().as_str(), "ab");

Important traits for Pairs<'i, R>

Returns the inner Pairs between the Pair, consuming it.

Examples

enum Rule {
    a
}

let input = "";
let pair = pest::state(input, |state| {
    // generating Token pair with Rule::a ...
}).unwrap().next().unwrap();

assert!(pair.into_inner().next().is_none());

Important traits for Tokens<'i, R>

Returns the Tokens for the Pair.

Examples

enum Rule {
    a
}

let input = "";
let pair = pest::state(input, |state| {
    // generating Token pair with Rule::a ...
}).unwrap().next().unwrap();
let tokens: Vec<_> = pair.tokens().collect();

assert_eq!(tokens.len(), 2);

Trait Implementations

impl<'i, R: PartialEq> PartialEq<Pair<'i, R>> for Pair<'i, R>
[src]

This method tests for !=.

impl<'i, R: Clone> Clone for Pair<'i, R>
[src]

Performs copy-assignment from source. Read more

impl<'i, R: Eq> Eq for Pair<'i, R>
[src]

impl<'i, R: RuleType> Display for Pair<'i, R>
[src]

impl<'i, R: RuleType> Debug for Pair<'i, R>
[src]

impl<'i, R: Hash> Hash for Pair<'i, R>
[src]

Feeds a slice of this type into the given [Hasher]. Read more

Auto Trait Implementations

impl<'i, R> !Send for Pair<'i, R>

impl<'i, R> !Sync for Pair<'i, R>

Blanket Implementations

impl<T> From for T
[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom for T where
    T: From<U>, 
[src]

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Any for T where
    T: 'static + ?Sized
[src]