pub struct Pair<R> { /* private fields */ }
Expand description
A matching pair of Token
s 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 Token
s between them can form such pairs as well.
This is similar to the brace matching problem in
editors.
Implementations§
Source§impl<R: RuleType> Pair<R>
impl<R: RuleType> Pair<R>
Sourcepub fn as_rule(&self) -> R
pub fn as_rule(&self) -> R
Returns the Rule
of the Pair
.
§Examples
enum Rule {
a
}
let input: Arc<str> = Arc::from("");
let pair = pest::state(input, |state| {
// generating Token pair with Rule::a ...
}).unwrap().next().unwrap();
assert_eq!(pair.as_rule(), Rule::a);
Sourcepub fn as_str(&self) -> &str
pub fn as_str(&self) -> &str
Captures a slice from the &str
defined by the token Pair
.
§Examples
enum Rule {
ab
}
let input: Arc<str> = Arc::from("ab");
let pair = pest::state(input, |state| {
// generating Token pair with Rule::ab ...
}).unwrap().next().unwrap();
assert_eq!(pair.as_str(), "ab");
Sourcepub fn into_span(self) -> Span
👎Deprecated since 2.0.0: Please use as_span
instead
pub fn into_span(self) -> Span
as_span
insteadReturns the Span
defined by the Pair
, consuming it.
§Examples
enum Rule {
ab
}
let input: Arc<str> = Arc::from("ab");
let pair = pest::state(input, |state| {
// generating Token pair with Rule::ab ...
}).unwrap().next().unwrap();
assert_eq!(pair.into_span().as_str(), "ab");
Sourcepub fn as_span(&self) -> Span
pub fn as_span(&self) -> Span
Returns the Span
defined by the Pair
, without consuming it.
§Examples
enum Rule {
ab
}
let input: Arc<str> = Arc::from("ab");
let pair = pest::state(input, |state| {
// generating Token pair with Rule::ab ...
}).unwrap().next().unwrap();
assert_eq!(pair.as_span().as_str(), "ab");
Sourcepub fn into_inner(self) -> Pairs<R> ⓘ
pub fn into_inner(self) -> Pairs<R> ⓘ
Returns the inner Pairs
between the Pair
, consuming it.
§Examples
enum Rule {
a
}
let input: Arc<str> = Arc::from("");
let pair = pest::state(input, |state| {
// generating Token pair with Rule::a ...
}).unwrap().next().unwrap();
assert!(pair.into_inner().next().is_none());
Sourcepub fn tokens(self) -> Tokens<R> ⓘ
pub fn tokens(self) -> Tokens<R> ⓘ
Returns the Tokens
for the Pair
.
§Examples
enum Rule {
a
}
let input: Arc<str> = Arc::from("");
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<R: Eq> Eq for Pair<R>
Auto Trait Implementations§
impl<R> Freeze for Pair<R>
impl<R> RefUnwindSafe for Pair<R>where
R: RefUnwindSafe,
impl<R> !Send for Pair<R>
impl<R> !Sync for Pair<R>
impl<R> Unpin for Pair<R>
impl<R> UnwindSafe for Pair<R>where
R: RefUnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more