Crate dicom_encoding

Source
Expand description

DICOM encoding and decoding primitives.

This crate provides interfaces and data structures for reading and writing data in accordance to the DICOM standard. This crate also hosts the concept of transfer syntax specifier, which can be used to produce DICOM encoders and decoders at run-time.

For the time being, all APIs are based on synchronous I/O.

Re-exports§

pub use adapters::NeverPixelAdapter;
pub use decode::Decode;
pub use encode::Encode;
pub use transfer_syntax::AdapterFreeTransferSyntax;
pub use transfer_syntax::Codec;
pub use transfer_syntax::DataRWAdapter;
pub use transfer_syntax::NeverAdapter;
pub use transfer_syntax::TransferSyntax;
pub use transfer_syntax::TransferSyntaxIndex;
pub use snafu;

Modules§

adapters
Core module for building pixel data adapters.
decode
This module contains all DICOM data element decoding logic.
encode
This module contains all DICOM data element encoding logic.
text
This module contains reusable components for encoding and decoding text in DICOM data structures, including support for character repertoires.
transfer_syntax
Module containing the DICOM Transfer Syntax data structure and related methods. Similar to the DcmCodec in DCMTK, the TransferSyntax contains all of the necessary algorithms for decoding and encoding DICOM data in a certain transfer syntax.

Macros§

submit_ele_transfer_syntax
Submit an explicit VR little endian transfer syntax specifier to be supported by the program’s runtime.
submit_transfer_syntax
Submit a transfer syntax specifier to be supported by the program’s runtime. This is to be used by crates wishing to provide additional support for a certain transfer syntax using the main transfer syntax registry.

Enums§

Endianness
Enumerate for materializing the two kinds of machine byte order supported by Rust in a dynamic fashion. That is, the information of whether to read or write data in Little Endian or in Big Endian is resolved at run time by observing this value.