This is my tokenizer.rs
:
pub struct Tokenizer<'a> {
string: &'a String,
cursor: usize,
}
impl<'a> Tokenizer<'a> {
pub fn new(string: &'a String) -> Self {
Tokenizer { string, cursor: 0 }
}
}
The following is parser.rs
,
pub struct Parser {
string: String,
tokenizer: Tokenizer,
}
impl Parser {
pub fn new(string: String) -> Self {
Parser {
string,
tokenizer: Tokenizer::new(&string),
}
}
}
The error I get in parser.rs
for field tokenizer
in struct Parser
is,
consider introducing a named lifetime parameter: `<'a>`, `<'a>`
Why is it complaining? I already passed a reference to the string. Why do I need to specify lifetime for Tokenizer
? And how do I specify it? I am not so sure of the syntax either.