在结构中存储引用

时间:2015-08-31 15:01:34

标签: struct rust borrow-checker

我正在尝试围绕gnuplot lib为Rust构建一个包装器结构。

我想在同一个2D轴对象中绘制多组线,因此我需要保持Axes2D

如何修复此结构? figureaxes字段的生存时间与plot结构本身一样长。

use gnuplot::{Axes2D, Figure, Caption, Color};

pub struct Plot {
    figure: Figure,
    axes: &mut Axes2D,
}

impl Plot {
    pub fn new() -> Plot {
        let fig = Figure::new();
        Plot {
            figure: fig,
            axes: fig.axes2d(),
        }
    }
}

这会因以下编译器错误而失败:

plot.rs:6:11: 6:22 error: missing lifetime specifier [E0106]
plot.rs:6     axes: &mut Axes2D,

我尝试在struct,field和impl中添加生命周期'a,但这给了我不同的错误。由于我不确定我在做什么,我想知道是否有人可以解释如何实现这一点。

0 个答案:

没有答案