我有以下函数来解析Rust中的邮件。
fn read_mail(fname: &Path) -> Result<mailparse::ParsedMail, mailparse::MailParseError> {
let mut f = File::open(fname).unwrap();
let mut buf = String::new();
let _ = f.read_to_string(&mut buf);
mailparse::parse_mail(buf.as_bytes())
}
此处buf
仅存在,直到函数返回并且parse_mail
借用它。这不会编译,因为返回值会比它的借用更长。
如何判断Rust buf
在返回值被销毁之前可以有更长的生命周期?