rust - How to declare a lifetime for a closure argument -
i declare lifetime closure in rust, can't find way add lifetime declaration.
this closure now:
let nt = |t: &'a mut splitwhitespace| t.next().ok_or(missing_token(line_number));
complete sample code on playground.
how can declare lifetime 'a
closure?
the &mut splitwhitespace
&'b mut splitwhitespace<'a>
. relevant lifetime here 'a
, specifies how long string slices next
returns live. since applied split_whitespace
function on line
argument, need set 'a
same lifetime line
argument has.
so first step add lifetime line
:
fn process_string<'a>(line: &'a str, line_number: usize) -> result<(), parsererror> {
and add lifetime type in closure:
let nt = |t: &mut splitwhitespace<'a>| t.next().ok_or(missing_token(line_number));
note while answers question, correct solution problem @a.b.'s solution.
Comments
Post a Comment