[][src]Trait dicom_parser::stateful::decode::StatefulDecode

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 value_reader(
        &mut self,
        header: &DataElementHeader
    ) -> Result<Take<&mut Self::Reader>>;
fn read_bytes(&mut self, buf: &mut [u8]) -> Result<()>;
fn bytes_read(&self) -> u64; }

Associated Types

type Reader: Read

Loading content...

Required methods

fn decode_header(&mut self) -> Result<DataElementHeader>

Same as Decode::decode_header over the bound source.

fn decode_item_header(&mut self) -> Result<SequenceItemHeader>

Same as Decode::decode_item_header over the bound source.

fn read_value(&mut self, header: &DataElementHeader) -> Result<PrimitiveValue>

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.

fn read_value_preserved(
    &mut self,
    header: &DataElementHeader
) -> Result<PrimitiveValue>

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.

fn read_value_bytes(
    &mut self,
    header: &DataElementHeader
) -> Result<PrimitiveValue>

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.

fn value_reader(
    &mut self,
    header: &DataElementHeader
) -> Result<Take<&mut Self::Reader>>

Obtain a reader which outlines the primitive value data from the given source.

fn read_bytes(&mut self, buf: &mut [u8]) -> Result<()>

Read the exact amount of bytes to fill the buffer.

fn bytes_read(&self) -> u64

Retrieve the exact number of bytes read so far by the stateful decoder.

Loading content...

Implementors

impl<S, T: ?Sized, D, BD> StatefulDecode for StatefulDecoder<D, BD, S, DynamicTextCodec> where
    D: DecodeFrom<T>,
    BD: BasicDecode,
    S: DerefMut<Target = T> + Read,
    T: Read
[src]

type Reader = S

fn value_reader(
    &mut self,
    header: &DataElementHeader
) -> Result<Take<&mut Self::Reader>>
[src]

Obtain a reader which outlines the primitive value data from the given source.

Loading content...