fn make(self) -> PacketData
'cook' the header, returning it as a
this function will calculate checksums, even though they will be over-written by the OS if the packet is sent 'down the wire', likewise with a lot of
length fields and such.
The reason i decided to still calculate checksums is incase someone uses the packet for some other purpose, or if they are building/using an experimntal OS which doesn calculate checksums (or they havent built that in yet).
parse() should never be run from a box
fn get_length(&self) -> u8
get the current length of the header in bytes. this usually just returns a fixed value as most headers dont have variable length, only really IP does and even then its rare for it to be > 20 bytes
fn get_min_length() -> u8
get the minimum length (in bytes) that this type of header can be
fn into_transport_header(&mut self) -> Option<&mut dyn TransportHeader>
attempts to coerce the header (a type which implements the Header trait) into a &mut dyn TransportHeader.
Option::Some when the underlying concrete type is a
UdpHeader or a