如何使用向量在结构上导出克隆和复制?

Lac*_*343 2 clone vector hashmap rust

我觉得这个问题可能需要一个简单的特征注释,但我被困住了。我想在程序的其他部分创建这些结构的克隆。

use std::collections::HashMap;

#[derive(Debug, Copy, Clone)]
struct NodeMap {
    map: HashMap<usize, Node>,
}

#[derive(Debug, Copy, Clone)]
struct Node {
    destinations: Vec<usize>,
    visits_left: usize,
}
Run Code Online (Sandbox Code Playgroud)

一切都应该是可克隆的。但它说Vec<usize>也不HashMap<usize, Node>是不执行Copy。我一定错过了一些东西,因为这似乎不应该成为问题。

Col*_*Two 5

HashMap并且Vec不实现Copy- 它们不能通过按位复制进行克隆。

这意味着你的结构也不能。

您可以在Clone没有Copy. 就这么做吧。