如何借用rust中的可变指针?

如何借用rust中的可变指针?,rust,Rust,我有一个返回Result mut Result、->Result的函数,但我似乎无法理解所需的语法 我不断得到: 错误:无法将`~`-指针`***foo`的不可变解引用借用为可变的 应该是什么 完整的代码示例: macro\u规则!痕迹( ($($arg:tt)*)=>( {let x=::std::io::stdout()。写入行(格式参数!(::std::fmt::格式,$($arg)*));println!(“{}”,x);} ); ) #[导出(显示)] 结构Foo{ 值:int }

我有一个返回Result mut Result、->Result的函数,但我似乎无法理解所需的语法

我不断得到:

错误:无法将`~`-指针`***foo`的不可变解引用借用为可变的
应该是什么

完整的代码示例:

macro\u规则!痕迹(
($($arg:tt)*)=>(
{let x=::std::io::stdout()。写入行(格式参数!(::std::fmt::格式,$($arg)*));println!(“{}”,x);}
);
)
#[导出(显示)]
结构Foo{
值:int
}
impl-Foo{
fn公司(和mut self){
自我价值+=1;
}
}
#[导出(显示)]
结构条{
数据:选项
}
#[导出(显示)]
枚举巴雷尔{
不
}
注入棒{

fn借用结果问题在于引用不拥有数据,因此它们的可变性是继承的。不能将
&'a
转换为
&'a mut
,因为该引用下的数据是不可变的

您必须返回
Result(&'a mut self)->Result