我在Rust中有一个枚举,它有一个值需要一个String.这可以用这个简单的例子来证明:
#[derive(Clone, Copy)]
enum Simple {
Error(String),
Okay,
Foo([u32; 5]),
}
fn main() {
let x = Simple::Error(String::from("blah"));
let y = x.clone();
}
Run Code Online (Sandbox Code Playgroud)
Foo上面的枚举值代表我使用的大约10个其他枚举,它们采用可复制类型或它们的数组.编译器似乎没有抱怨它们,只有Error(String)这导致了这个:
error[E0204]: the trait `Copy` may not be implemented for this type
--> src/main.rs:1:17
|
1 | #[derive(Clone, Copy)]
| ^^^^
2 | enum Simple {
3 | Error(String),
| ------ this field does not implement `Copy`
Run Code Online (Sandbox Code Playgroud)
出于某种原因,String不可复制.我不懂.Clone对于其他类型的枚举,如何使用默认impl进行其余操作时,如何实现枚举?
rust ×1