Support rdhv6 + Better data encapsulation
-
Support for parsing RDH v6 -
Resolves #7 (closed) -
Closes #3 (closed)
Major change in implementation details:
Finally the need to encapsulate Data as it is read from the input, and sent through the pipeline was too great.
Adds a new CdpChunk
struct that wraps the RDHs, raw byte payloads, and memory positions, returned from the input scanner. This new data type takes the place of the vector of tuples sent around the pipeline before. It better encapsulates the chunks and allows for easier and better interaction with them. It is still important that the data is not sent around as e.g. single CDPs or HBFs as this is simply too little data for the concurrent pipeline. Working in larger chunks is massively more efficient.
CdpChunk
is a minimalistic vector implementation, supports methods such as push()
, len()
, is_empty()
, etc.
Furthermore it implements the IntoIterator
trait both for owned and borrowed types. Making it easy and efficient to iterate, destructure, and serialize CdpChunks
without any cloning.