Help with Zerocopy

There are several doc pages that have very similar ideas:

https://docs.rs/zerocopy/0.2.7/zerocopy/byteorder/index.html

and

https://docs.rs/zerocopy/0.2.7/zerocopy/struct.LayoutVerified.html

Whereas the first link shows the expression of a packet's header in terms of the custom U8, the second link use the explicit denotation of the number of bytes (e.g., a u16 is [u8; 2]). In terms of (the sender) writing data to it and copying data therefrom into an outbound stream, which one should I choose? Would this choice differ in the opposite direction wherein information is received and then examined by the receiver?

Goal: super fast byte read/write

Should this be coupled with BytesMut for reading and writing, or would this just be for directly writing to some struct we define (in this case, like a packet header).?

Thanks everyone

1 Like

In the outbound direction starting with the sender, this data will get copied into a codec stream which, by default, uses the BytesMut structure.

In the inbound direction ending with the receiver, a BytesMut structure will then get copied onto a Zerocopy trait'ed struct.

This is currently how I understand how I'll implement it, please correct me if this is wrong or misguided thinking!