The Copy trait was implemented on a type which is neither a struct nor an enum.

Erroneous code example:

type Foo = [u8; 256];
impl Copy for Foo { } // error!

#[derive(Copy, Clone)]
struct Bar;

impl Copy for &'static mut Bar { } // error!

You can only implement Copy for a struct or an enum. Both of the previous examples will fail, because neither [u8; 256] nor &'static mut Bar (mutable reference to Bar) is a struct or enum.