An attempt to implement the Copy
trait for an enum failed because one of the variants does not implement Copy
. To fix this, you must implement Copy
for the mentioned variant. Note that this may not be possible, as in the example of
enum Foo { Bar(Vec<u32>), Baz, } impl Copy for Foo { }
This fails because Vec<T>
does not implement Copy
for any T
.
Here's another example that will fail:
#[derive(Copy)] enum Foo<'a> { Bar(&'a mut bool), Baz, }
This fails because &mut T
is not Copy
, even when T
is Copy
(this differs from the behavior for &T
, which is always Copy
).