1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/*!
Implements a parser for the PSI-MS mzML and indexedmzML XML file formats
for representing raw and processed mass spectra, providing a
[`RandomAccessSpectrumIterator`](crate::io::traits::RandomAccessSpectrumIterator)
interface for reading, and [`ScanWriter`](crate::io::traits::ScanWriter)
interface for writing.

The mzML format is standardized by the Proteomics Standards Initiative (PSI), with
a formal schema defined at <https://www.psidev.info/mzML>.

This crate supports both reading and writing (indexed) mzML documents with spectra
of varying degrees of complexity (raw profiles, centroids, processed centroids), though
extensive customization of the coercion process relies on the [`BuildFromArrayMap`](crate::spectrum::bindata::BuildFromArrayMap) and
[`BuildArrayMapFrom`](crate::spectrum::bindata::BuildArrayMapFrom) traits
for reading and writing conversion to [`BinaryArrayMap`](crate::spectrum::bindata::BinaryArrayMap).

*/

mod reader;
mod reading_shared;
mod writer;

#[cfg(feature = "async")]
mod r#async;

pub use reading_shared::{
    CVParamParse, MzMLParserError, MzMLParserState, MzMLSAX, XMLParseBase,
    FileMetadataBuilder
};

#[allow(unused)]
pub(crate) use reading_shared::{IncrementingIdMap, ParserResult};

pub use crate::io::mzml::reader::{
    MzMLReader, MzMLReaderType, MzMLSpectrumBuilder,
    SpectrumBuilding,
};

pub(crate) use crate::io::mzml::reader::is_mzml;

pub use crate::io::mzml::writer::{MzMLWriter, MzMLWriterState, MzMLWriterType, MzMLWriterError};

#[cfg(feature = "async")]
pub use crate::io::mzml::r#async::{
    MzMLReader as AsyncMzMLReader, MzMLReaderType as AsyncMzMLReaderType,
};