Since processing of packets is likely to happen thousands of times per second, there will be a performance gain if the struct doesn't allocate to Vec<> every time you unmarshal a header.
Something like arrayvec would be suitable for this: https://crates.io/crates/arrayvec