derive
was applied on something which is not a struct, a union or an enum.
Erroneous code example:
trait Foo { #[derive(Clone)] // error! type Bar; }
As said above, the derive
attribute is only allowed on structs, unions or enums:
#[derive(Clone)] // ok! struct Bar { field: u32, }
You can find more information about derive
in the Rust Book.