Another trait we talked about a little earlier on in this course is copy.
But now we're able to talk about it a little bit more in depth and as to what is allowed to implement
a copy.
Simple types like I 32 that don't own any resources can be a copy type.
A type is copy if it implements trait, copy and then clone.
So what we're seeing here.
Russ is going to allow a type to implement copy only if a shallow byte four byte copy is all it needs.
This means that any type that owns any other resources, like a heat buffer or operating system handles
cannot implement copy.
There are two ways that we can implement a copy.
We can say derive copy and clone, or we can implement copy for our type.
In this case it's a struct or then implement clone for our struct.
Remember though, making a type copy places extra restrictions on our type, so it's important to consider
the pros and cons prior to doing so.