@@ -102,6 +102,8 @@ impl<'i, R: RuleType> Pair<'i, R> {
102
102
103
103
/// Returns the `Span` defined by the `Pair`, consuming it.
104
104
///
105
+ /// **Deprecated.** Please use `as_span` instead.
106
+ ///
105
107
/// # Examples
106
108
///
107
109
/// ```
@@ -122,7 +124,34 @@ impl<'i, R: RuleType> Pair<'i, R> {
122
124
/// assert_eq!(pair.into_span().as_str(), "ab");
123
125
/// ```
124
126
#[ inline]
127
+ #[ deprecated( since="2.0.0" , note="Please use `as_span` instead" ) ]
125
128
pub fn into_span ( self ) -> Span < ' i > {
129
+ self . as_span ( )
130
+ }
131
+
132
+ /// Returns the `Span` defined by the `Pair`, **without** consuming it.
133
+ ///
134
+ /// # Examples
135
+ ///
136
+ /// ```
137
+ /// # use std::rc::Rc;
138
+ /// # use pest;
139
+ /// # #[allow(non_camel_case_types)]
140
+ /// # #[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
141
+ /// enum Rule {
142
+ /// ab
143
+ /// }
144
+ ///
145
+ /// let input = "ab";
146
+ /// let pair = pest::state(input, |state| {
147
+ /// // generating Token pair with Rule::ab ...
148
+ /// # state.rule(Rule::ab, |s| s.match_string("ab"))
149
+ /// }).unwrap().next().unwrap();
150
+ ///
151
+ /// assert_eq!(pair.as_span().as_str(), "ab");
152
+ /// ```
153
+ #[ inline]
154
+ pub fn as_span ( & self ) -> Span < ' i > {
126
155
let start = self . pos ( self . start ) ;
127
156
let end = self . pos ( self . pair ( ) ) ;
128
157
@@ -207,7 +236,7 @@ impl<'i, R: RuleType> fmt::Debug for Pair<'i, R> {
207
236
f,
208
237
"Pair {{ rule: {:?}, span: {:?}, inner: {:?} }}" ,
209
238
self . as_rule( ) ,
210
- self . clone( ) . into_span ( ) ,
239
+ self . clone( ) . as_span ( ) ,
211
240
self . clone( ) . into_inner( )
212
241
)
213
242
}
0 commit comments