延长范围局部变量的借用寿命

时间:2016-12-05 18:48:14

标签: rust

我有以下函数来解析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在返回值被销毁之前可以有更长的生命周期?

0 个答案:

没有答案