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 { }
RunThis 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,
}
RunThis fails because &mut T
is not Copy
, even when T
is Copy
(this
differs from the behavior for &T
, which is always Copy
).