@@ -176,11 +176,11 @@ impl Part {
176176}
177177
178178// Ref: https://wicg.github.io/urlpattern/#pattern-parser
179- struct PatternParser < F >
179+ struct PatternParser < ' a , F >
180180where
181181 F : Fn ( & str ) -> Result < String , Error > ,
182182{
183- token_list : Vec < Token > ,
183+ token_list : Vec < Token < ' a > > ,
184184 encoding_callback : F ,
185185 segment_wildcard_regexp : String ,
186186 part_list : Vec < Part > ,
@@ -189,12 +189,12 @@ where
189189 next_numeric_name : usize ,
190190}
191191
192- impl < F > PatternParser < F >
192+ impl < ' a , F > PatternParser < ' a , F >
193193where
194194 F : Fn ( & str ) -> Result < String , Error > ,
195195{
196196 // Ref: https://wicg.github.io/urlpattern/#try-to-consume-a-token
197- fn try_consume_token ( & mut self , kind : TokenType ) -> Option < Token > {
197+ fn try_consume_token ( & mut self , kind : TokenType ) -> Option < Token < ' a > > {
198198 assert ! ( self . index < self . token_list. len( ) ) ;
199199 let next_token = self . token_list [ self . index ] . clone ( ) ;
200200 if next_token. kind != kind {
@@ -210,7 +210,7 @@ where
210210 fn try_consume_regexp_or_wildcard_token (
211211 & mut self ,
212212 name_token_is_none : bool ,
213- ) -> Option < Token > {
213+ ) -> Option < Token < ' a > > {
214214 let token = self . try_consume_token ( TokenType :: Regexp ) ;
215215 if name_token_is_none && token. is_none ( ) {
216216 self . try_consume_token ( TokenType :: Asterisk )
@@ -221,7 +221,7 @@ where
221221
222222 // Ref: https://wicg.github.io/urlpattern/#try-to-consume-a-modifier-token
223223 #[ inline]
224- fn try_consume_modifier_token ( & mut self ) -> Option < Token > {
224+ fn try_consume_modifier_token ( & mut self ) -> Option < Token < ' a > > {
225225 self
226226 . try_consume_token ( TokenType :: OtherModifier )
227227 . or_else ( || self . try_consume_token ( TokenType :: Asterisk ) )
@@ -306,7 +306,7 @@ where
306306
307307 let mut name = String :: new ( ) ;
308308 if let Some ( name_token) = name_token {
309- name = name_token. value ;
309+ name = name_token. value . to_owned ( ) ;
310310 } else if regexp_or_wildcard_token. is_some ( ) {
311311 name = self . next_numeric_name . to_string ( ) ;
312312 self . next_numeric_name += 1 ;
@@ -359,7 +359,7 @@ where
359359 Error :: Parser ( ParserError :: ExpectedToken (
360360 kind,
361361 self . token_list [ self . index ] . kind . clone ( ) ,
362- self . token_list [ self . index ] . value . clone ( ) ,
362+ self . token_list [ self . index ] . value . to_owned ( ) ,
363363 ) )
364364 } )
365365 }
0 commit comments