Error code E0774

derive was applied on something which is not a struct, a union or an enum.

Erroneous code example:

#![allow(unused)] fn main() { trait Foo { #[derive(Clone)] // error! type Bar; } }

As said above, the derive attribute is only allowed on structs, unions or enums:

#![allow(unused)] fn main() { #[derive(Clone)] // ok! struct Bar { field: u32, } }

You can find more information about derive in the Rust Book.