pub trait StatefulDecode {
    type Reader: Read;

    fn decode_header(&mut self) -> Result<DataElementHeader>;
    fn decode_item_header(&mut self) -> Result<SequenceItemHeader>;
    fn read_value(
        &mut self,
        header: &DataElementHeader
    ) -> Result<PrimitiveValue>; fn read_value_preserved(
        &mut self,
        header: &DataElementHeader
    ) -> Result<PrimitiveValue>; fn read_value_bytes(
        &mut self,
        header: &DataElementHeader
    ) -> Result<PrimitiveValue>; fn read_to_vec(&mut self, length: u32, vec: &mut Vec<u8>) -> Result<()>; fn read_u32_to_vec(&mut self, length: u32, vec: &mut Vec<u32>) -> Result<()>; fn read_to<W>(&mut self, length: u32, out: W) -> Result<()>
    where
        Self: Sized,
        W: Write
; fn skip_bytes(&mut self, length: u32) -> Result<()>; fn seek(&mut self, position: u64) -> Result<()>
    where
        Self::Reader: Seek
; fn position(&self) -> u64; }

Required Associated Types

Required Methods

Same as Decode::decode_header over the bound source.

Same as Decode::decode_item_header over the bound source.

Eagerly read the following data in the source as a primitive data value. When reading values in text form, a conversion to a more maleable type is attempted. Namely, numbers in text form (IS, DS) are converted to the corresponding binary number types, and date/time instances are decoded into binary date/time objects of types defined in the chrono crate. To avoid this conversion, see read_value_preserved.

Errors

Returns an error on I/O problems, or if the header VR describes a sequence, which in that case this method should not be used.

Eagerly read the following data in the source as a primitive data value. Unlike read_value, this method will preserve the DICOM value’s original format: numbers saved as text, as well as dates and times, are read as strings.

Errors

Returns an error on I/O problems, or if the header VR describes a sequence, which in that case this method should not be used.

Eagerly read the following data in the source as a primitive data value as bytes, regardless of its value representation.

Errors

Returns an error on I/O problems, or if the header VR describes a sequence, which in that case this method should not be used.

Read the following number of bytes into a vector.

Read the following number of bytes as a sequence of unsigned 32 bit integers into a vector.

Read the following number of bytes into a generic writer.

Skip the following bytes into a vector, counting them as if they were read.

Reposition the reader so that it starts reading at the reader’s given position.

The number of bytes read is not expected to be modified.

Retrieve the known position of the inner reader source. If the stateful decoder was constructed at the beginning of the reader, this equals to the number of bytes read so far.

Implementations on Foreign Types

Implementors