框和数组是可复制的,为什么这不能编译?
#[derive(Debug, Copy, Clone)]
enum Octree{
Branch(Box<[Octree; 8]>),
Filled,
Empty,
}
编译错误:
main.rs:3:17: 3:21 error: the trait `Copy` may not be implemented for this type; variant `Branch` does not implement `Copy` [E0205]
编辑:好的,所以我不希望Octree
可以复制。但是我如何让它变得可变?我希望能够更改节点的子节点。
答案 0 :(得分:6)
复制仅适用于可轻松复制的类型。 Box不是复制,因为仅复制指针会违反单一所有权原则。
您想在此处使用克隆及其克隆方法。