【发布时间】:2017-10-20 17:36:25
【问题描述】:
我希望能够在 Foo 枚举中获得对 usize 的引用(不可变和可变):
use Foo::*;
#[derive(Debug, PartialEq, Clone)]
pub enum Foo {
Bar(usize)
}
impl Foo {
/* this works */
fn get_bar_ref(&self) -> &usize {
match *self {
Bar(ref n) => &n
}
}
/* this doesn't */
fn get_bar_ref_mut(&mut self) -> &mut usize {
match *self {
Bar(ref mut n) => &mut n
}
}
}
但我无法获得可变引用,因为:
n寿命不够长
我能够提供访问Foo 的其他内容的类似函数的两种变体Boxed - 为什么可变借用(以及为什么只有它)会因未装箱的原语而失败?
【问题讨论】:
标签: enums rust borrow-checker