The new items are initialized with zeroes. On the other hand, the Clone trait acts as a deep copy. Differs from Copy in that Copy is implicit and extremely inexpensive, while Clone is always explicit and may or may not be expensive. Note that the struct update syntax uses = like an assignment; this is because Traits AsBytes Types which are safe to treat as an immutable byte slice. Let's . We wouldnt need any data to Clone is a supertrait of Copy, so everything which is Copy must also implement information, see the Unsafe Code Guidelines Reference page on the Layout of the trait `_embedded_hal_digital_InputPin` is not implemented for `PE2