Trait dicom_parser::stateful::decode::StatefulDecode
source · [−]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
fn decode_header(&mut self) -> Result<DataElementHeader>
fn decode_header(&mut self) -> Result<DataElementHeader>
Same as Decode::decode_header
over the bound source.
fn decode_item_header(&mut self) -> Result<SequenceItemHeader>
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>
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>
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>
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.
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.
fn skip_bytes(&mut self, length: u32) -> Result<()>
fn skip_bytes(&mut self, length: u32) -> Result<()>
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.