为什么包含Box的枚举不可复制?

Joo*_*zan 3 rust

盒子和数组是可复制的,为什么这不能编译?

#[derive(Debug, Copy, Clone)]
enum Octree{
    Branch(Box<[Octree; 8]>),
    Filled,
    Empty,
}
Run Code Online (Sandbox Code Playgroud)

编译错误:

main.rs:3:17: 3:21 error: the trait `Copy` may not be implemented for this type; variant `Branch` does not implement `Copy` [E0205]
Run Code Online (Sandbox Code Playgroud)

编辑:好的,所以我不想Octree复制.但是我如何让它变得可变?我希望能够更改节点的子节点.

A.B*_*.B. 6

复制仅适用于可轻松复制的类型.Box不是复制,因为仅复制指针会违反单一所有权原则.

您想在此处使用克隆及其克隆方法.