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.
 
    