Rust克隆/拷贝问题



试图把我的头围绕如何做一些简单的绘图在egui。我在myapp结构中有一个数据成员,它是Vec::

是否有一种方法可以将其传递到Points::new(Values::from_values(data.to_vec())而无需创建值的副本?示例通常是动态生成的,但从磁盘读取并解析每帧的文本数据感觉有点过度。

struct MyApp {
data: Vec<Value>,
}
myplot.show(ui, |plot_ui| {
let points = Points::new(Values::from_values(data.to_vec())); 
plot_ui.points(points);

但是从磁盘读取并解析每帧的文本数据感觉有点过分。

你不必(也不应该)每一帧都这样做。解析它一次,并将结果存储在一个持久结构中,并在show闭包期间从那里复制。

也就是说,看起来你需要每帧创建一个新的Points对象,因为plot_ui.points按值取点对象。您现在所使用的方法—存储一个Vec<Value>并每帧克隆它—可能是您将要得到的最好的方法。

最新更新