@@ -207,28 +207,33 @@ impl Parser {
207
207
/// Converts content of a tag to a `Start` or an `Empty` event
208
208
///
209
209
/// # Parameters
210
- /// - `buf`: Content of a tag between `<` and `>`
211
- pub fn read_start < ' b > ( & mut self , buf : & ' b [ u8 ] ) -> Result < Event < ' b > > {
212
- let len = buf. len ( ) ;
213
- let name_end = buf. iter ( ) . position ( |& b| is_whitespace ( b) ) . unwrap_or ( len) ;
214
- if let Some ( & b'/' ) = buf. last ( ) {
210
+ /// - `content`: Content of a tag between `<` and `>`
211
+ pub fn read_start < ' b > ( & mut self , content : & ' b [ u8 ] ) -> Result < Event < ' b > > {
212
+ let len = content. len ( ) ;
213
+ let name_end = content
214
+ . iter ( )
215
+ . position ( |& b| is_whitespace ( b) )
216
+ . unwrap_or ( len) ;
217
+ if let Some ( & b'/' ) = content. last ( ) {
215
218
// This is self-closed tag `<something/>`
216
- let end = if name_end < len { name_end } else { len - 1 } ;
219
+ let name_len = if name_end < len { name_end } else { len - 1 } ;
220
+ let event = BytesStart :: wrap ( & content[ ..len - 1 ] , name_len) ;
221
+
217
222
if self . expand_empty_elements {
218
223
self . state = ParseState :: Empty ;
219
224
self . opened_starts . push ( self . opened_buffer . len ( ) ) ;
220
- self . opened_buffer . extend ( & buf [ ..end ] ) ;
221
- Ok ( Event :: Start ( BytesStart :: wrap ( & buf [ ..len - 1 ] , end ) ) )
225
+ self . opened_buffer . extend ( & content [ ..name_len ] ) ;
226
+ Ok ( Event :: Start ( event ) )
222
227
} else {
223
- Ok ( Event :: Empty ( BytesStart :: wrap ( & buf [ ..len - 1 ] , end ) ) )
228
+ Ok ( Event :: Empty ( event ) )
224
229
}
225
230
} else {
226
231
// #514: Always store names event when .check_end_names == false,
227
232
// because checks can be temporary disabled and when they would be
228
233
// enabled, we should have that information
229
234
self . opened_starts . push ( self . opened_buffer . len ( ) ) ;
230
- self . opened_buffer . extend ( & buf [ ..name_end] ) ;
231
- Ok ( Event :: Start ( BytesStart :: wrap ( buf , name_end) ) )
235
+ self . opened_buffer . extend ( & content [ ..name_end] ) ;
236
+ Ok ( Event :: Start ( BytesStart :: wrap ( content , name_end) ) )
232
237
}
233
238
}
234
239
0 commit comments