If you only ever use string-literals and never read anything from a file or the network then you can use &'static str. If you ever borrow a String, then you cannot use &'static str, as the String is not guaranteed to live forever. In that case it might be better to use String instead of str in your structure. Since you are using Vec, you are allocating anyway.
The Rust-compiler does this by not using String, but a newtype around u32, which can then be used to extract the actual string from e.g. a HashMap. But that means that you need access to the string database whenever you need information about the actual textual representation.
Vec can't be Copy either. If your structure holds on to heap memory, it should generally be Clone, not Copy, and the derive should work with just Clone. Most use cases will be fine with just Copy; if yours isn't, I'd like to know more details so I can give more specific advice.