This makes some changes to the types TransferSyntax and Codec. The noteworthy changes are:
It is now possible to specify that a transfer syntax can only read/write pixel data (no more need for methods returning a NotImplemented error). This was done by splitting PixelRWAdapter and the parameter type P into two independent traits PixelDataReader and PixelDataWriter
PixelDataReader has a new method for reading a single frame.
PixelDataWriter has been redesigned to return a sequence of attribute operations to perform on an object that will host the encapsulated pixel data produced.
Summary
Split PixelRWAdapter into PixelDataReader and PixelDataWriter
Change Codec
type parameters become <D, R, W>
Change variants to None, Dataset, and EncapsulatedPixelData, which can describe different levels and implementations
also add a few more helper methods to TransferSyntax
Change TransferSyntax type parameters to D, R, W
Update RLE and JPEG adapters to conform to the new API
change PixelDataObject::fragment to return Cow<[u8]>
may save an allocation in case of in-memory DICOM objects
[object] update impl accordingly
[ts-registry] update registry according to changes
Change method names in TransferSyntax
[ul][ts-registry][pixeldata] update according to changes
This makes some changes to the types
TransferSyntax
andCodec
. The noteworthy changes are:NotImplemented
error). This was done by splittingPixelRWAdapter
and the parameter typeP
into two independent traitsPixelDataReader
andPixelDataWriter
PixelDataReader
has a new method for reading a single frame.PixelDataWriter
has been redesigned to return a sequence of attribute operations to perform on an object that will host the encapsulated pixel data produced.Summary
PixelRWAdapter
intoPixelDataReader
andPixelDataWriter
Codec
<D, R, W>
None
,Dataset
, andEncapsulatedPixelData
, which can describe different levels and implementationsTransferSyntax
TransferSyntax
type parameters toD
,R
,W
PixelDataObject::fragment
to returnCow<[u8]>
TransferSyntax