Enum MZReaderType

Source
#[non_exhaustive]
pub enum MZReaderType<R, C = CentroidPeak, D = DeconvolutedPeak>{ Unknown(Box<dyn SpectrumSourceWithMetadata<C, D, Item = MultiLayerSpectrum<C, D>> + Send + Sync>, PhantomData<R>), }
Expand description

An explicit file format dispatching ADT that provides the complete SpectrumSource, RandomAccessSpectrumIterator, MZFileReader and MSDataFileMetadata APIs. The preferred means of creating an instance is through the MZReaderType::open_path function.

This type internally wraps a concrete type and each operation has to perform a very fast test to decide which implementation to invoke. This overhead should be trivial for the vast majority of operations, as compared to the I/O being performed otherwise.

Please refer to each concrete implementation type for details about those types. Keep in mind that formats that require specific features to be enabled to be available won’t even be visible if their required features aren’t set since their variants would have an unknown size at compile time.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Unknown(Box<dyn SpectrumSourceWithMetadata<C, D, Item = MultiLayerSpectrum<C, D>> + Send + Sync>, PhantomData<R>)

Implementations§

Source§

impl<R, C, D> MZReaderType<R, C, D>

Source

pub fn builder() -> MZReaderBuilder<C, D>

Create a MZReaderBuilder which can be used to configure the created reader, setting DetailLevel and buffer capacity The builder can create a reader from any type that the direct creation functions support.

Source

pub fn as_format(&self) -> MassSpectrometryFormat

Get the file format for this reader

Source

pub fn detail_level(&self) -> &DetailLevel

Get the DetailLevel the reader currently uses

Source

pub fn set_detail_level(&mut self, detail_level: DetailLevel)

Set the DetailLevel for the reader, changing the amount of work done immediately on loading a spectrum.

§Note

Not all readers support all detail levels, and the behavior when requesting one of those levels will depend upon the underlying reader.

Source

pub fn open_read_seek(stream: R) -> Result<MZReaderType<R, C, D>, Error>

Create a reader from a type that supports io::Read and io::Seek.

§Note

Not all formats can be read from an io type, these will fail to open and an error will be returned

Source

pub fn open_gzipped_read_seek( stream: R, ) -> Result<MZReaderType<RestartableGzDecoder<BufReader<R>>, C, D>, Error>

Create a reader from a type that supports io::Read and io::Seek that is gzip-compressed.

§Note

This method will return an error if the stream is not gzip-compressed.

Not all formats can be read from an io type, these will fail to open and an error will be returned

Source§

impl<R, C, D> MZReaderType<PreBufferedStream<R>, C, D>

Source

pub fn open_read( stream: R, ) -> Result<StreamingSpectrumIterator<C, D, MultiLayerSpectrum<C, D>, MZReaderType<PreBufferedStream<R>, C, D>>, Error>

Create a reader from a type that supports io::Read.

This will internally wrap the file in a PreBufferedStream for metadata reading, but does not construct an index for full random access. Attempting to use the reader to access spectra may move the reader forwards, but it can never go backwards.

§Note

Not all formats can be read from an io type, these will fail to open and an error will be returned

Source

pub fn open_gzipped_read( stream: R, ) -> Result<StreamingSpectrumIterator<C, D, MultiLayerSpectrum<C, D>, MZReaderType<PreBufferedStream<GzDecoder<PreBufferedStream<R>>>, C, D>>, Error>

Create a reader from a type that supports io::Read is gzip-compressed.

This will internally wrap the file in a PreBufferedStream for metadata reading, but does not construct an index for full random access. Attempting to use the reader to access spectra may move the reader forwards, but it can never go backwards.

§Note

This method will return an error if the stream is not gzip-compressed.

Not all formats can be read from an io type, these will fail to open and an error will be returned

Source

pub fn open_read_with_buffer_size( stream: R, buffer_size: usize, ) -> Result<StreamingSpectrumIterator<C, D, MultiLayerSpectrum<C, D>, MZReaderType<PreBufferedStream<R>, C, D>>, Error>

See MZReaderType::open_read.

This function lets the caller specify the prebuffering size for files with large headers that exceed the default buffer size.

Trait Implementations§

Source§

impl<R, C, D> ChromatogramSource for MZReaderType<R, C, D>

Source§

fn get_chromatogram_by_id(&mut self, id: &str) -> Option<Chromatogram>

Get a Chromatogram by its identifier, if it exists.
Source§

fn get_chromatogram_by_index(&mut self, index: usize) -> Option<Chromatogram>

Get a Chromatogram by its index, if it exists.
Source§

fn iter_chromatograms(&mut self) -> ChromatogramIterator<'_, Self>
where Self: Sized,

Iterate over Chromatograms with a ChromatogramIterator
Source§

impl<R, C, D> Debug for MZReaderType<R, C, D>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl<C, D, R> IntoIonMobilityFrameSource<C, D> for MZReaderType<R, C, D>

Source§

type IonMobilityFrameSource<CF: FeatureLike<MZ, IonMobility>, DF: FeatureLike<Mass, IonMobility> + KnownCharge> = IMMZReaderType<R, CF, DF, C, D>

The IonMobilityFrameSource-implementing type for this SpectrumSource. Read more
Source§

fn try_into_frame_source<CF, DF>( self, ) -> Result<<MZReaderType<R, C, D> as IntoIonMobilityFrameSource<C, D>>::IonMobilityFrameSource<CF, DF>, IntoIonMobilityFrameSourceError>

Attempt to convert the SpectrumSource into an IonMobilityFrameSource, returning IntoIonMobilityFrameSourceError if it is not possible
Source§

fn into_frame_source<CF, DF>(self) -> Self::IonMobilityFrameSource<CF, DF>

Call IntoIonMobilityFrameSource::try_into_frame_source, panicking if an error is returned.
Source§

fn has_ion_mobility(&mut self) -> Option<HasIonMobility>

Reads a sparse 1% of the entries from the SpectrumSource, testing for the presence of ion mobility data.
Source§

impl<C, D, R> Iterator for MZReaderType<R, C, D>

Source§

type Item = MultiLayerSpectrum<C, D>

The type of the elements being iterated over.
Source§

fn next(&mut self) -> Option<<MZReaderType<R, C, D> as Iterator>::Item>

Advances the iterator and returns the next value. Read more
Source§

fn next_chunk<const N: usize>( &mut self, ) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>
where Self: Sized,

🔬This is a nightly-only experimental API. (iter_next_chunk)
Advances the iterator and returns an array containing the next N values. Read more
1.0.0 · Source§

fn size_hint(&self) -> (usize, Option<usize>)

Returns the bounds on the remaining length of the iterator. Read more
1.0.0 · Source§

fn count(self) -> usize
where Self: Sized,

Consumes the iterator, counting the number of iterations and returning it. Read more
1.0.0 · Source§

fn last(self) -> Option<Self::Item>
where Self: Sized,

Consumes the iterator, returning the last element. Read more
Source§

fn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>

🔬This is a nightly-only experimental API. (iter_advance_by)
Advances the iterator by n elements. Read more
1.0.0 · Source§

fn nth(&mut self, n: usize) -> Option<Self::Item>

Returns the nth element of the iterator. Read more
1.28.0 · Source§

fn step_by(self, step: usize) -> StepBy<Self>
where Self: Sized,

Creates an iterator starting at the same point, but stepping by the given amount at each iteration. Read more
1.0.0 · Source§

fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter>
where Self: Sized, U: IntoIterator<Item = Self::Item>,

Takes two iterators and creates a new iterator over both in sequence. Read more
1.0.0 · Source§

fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter>
where Self: Sized, U: IntoIterator,

‘Zips up’ two iterators into a single iterator of pairs. Read more
Source§

fn intersperse(self, separator: Self::Item) -> Intersperse<Self>
where Self: Sized, Self::Item: Clone,

🔬This is a nightly-only experimental API. (iter_intersperse)
Creates a new iterator which places a copy of separator between adjacent items of the original iterator. Read more
Source§

fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G>
where Self: Sized, G: FnMut() -> Self::Item,

🔬This is a nightly-only experimental API. (iter_intersperse)
Creates a new iterator which places an item generated by separator between adjacent items of the original iterator. Read more
1.0.0 · Source§

fn map<B, F>(self, f: F) -> Map<Self, F>
where Self: Sized, F: FnMut(Self::Item) -> B,

Takes a closure and creates an iterator which calls that closure on each element. Read more
1.21.0 · Source§

fn for_each<F>(self, f: F)
where Self: Sized, F: FnMut(Self::Item),

Calls a closure on each element of an iterator. Read more
1.0.0 · Source§

fn filter<P>(self, predicate: P) -> Filter<Self, P>
where Self: Sized, P: FnMut(&Self::Item) -> bool,

Creates an iterator which uses a closure to determine if an element should be yielded. Read more
1.0.0 · Source§

fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F>
where Self: Sized, F: FnMut(Self::Item) -> Option<B>,

Creates an iterator that both filters and maps. Read more
1.0.0 · Source§

fn enumerate(self) -> Enumerate<Self>
where Self: Sized,

Creates an iterator which gives the current iteration count as well as the next value. Read more
1.0.0 · Source§

fn peekable(self) -> Peekable<Self>
where Self: Sized,

Creates an iterator which can use the peek and peek_mut methods to look at the next element of the iterator without consuming it. See their documentation for more information. Read more
1.0.0 · Source§

fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>
where Self: Sized, P: FnMut(&Self::Item) -> bool,

Creates an iterator that skips elements based on a predicate. Read more
1.0.0 · Source§

fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>
where Self: Sized, P: FnMut(&Self::Item) -> bool,

Creates an iterator that yields elements based on a predicate. Read more
1.57.0 · Source§

fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P>
where Self: Sized, P: FnMut(Self::Item) -> Option<B>,

Creates an iterator that both yields elements based on a predicate and maps. Read more
1.0.0 · Source§

fn skip(self, n: usize) -> Skip<Self>
where Self: Sized,

Creates an iterator that skips the first n elements. Read more
1.0.0 · Source§

fn take(self, n: usize) -> Take<Self>
where Self: Sized,

Creates an iterator that yields the first n elements, or fewer if the underlying iterator ends sooner. Read more
1.0.0 · Source§

fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F>
where Self: Sized, F: FnMut(&mut St, Self::Item) -> Option<B>,

An iterator adapter which, like fold, holds internal state, but unlike fold, produces a new iterator. Read more
1.0.0 · Source§

fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F>
where Self: Sized, U: IntoIterator, F: FnMut(Self::Item) -> U,

Creates an iterator that works like map, but flattens nested structure. Read more
1.29.0 · Source§

fn flatten(self) -> Flatten<Self>
where Self: Sized, Self::Item: IntoIterator,

Creates an iterator that flattens nested structure. Read more
Source§

fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N>
where Self: Sized, F: FnMut(&[Self::Item; N]) -> R,

🔬This is a nightly-only experimental API. (iter_map_windows)
Calls the given function f for each contiguous window of size N over self and returns an iterator over the outputs of f. Like slice::windows(), the windows during mapping overlap as well. Read more
1.0.0 · Source§

fn fuse(self) -> Fuse<Self>
where Self: Sized,

Creates an iterator which ends after the first None. Read more
1.0.0 · Source§

fn inspect<F>(self, f: F) -> Inspect<Self, F>
where Self: Sized, F: FnMut(&Self::Item),

Does something with each element of an iterator, passing the value on. Read more
1.0.0 · Source§

fn by_ref(&mut self) -> &mut Self
where Self: Sized,

Creates a “by reference” adapter for this instance of Iterator. Read more
1.0.0 · Source§

fn collect<B>(self) -> B
where B: FromIterator<Self::Item>, Self: Sized,

Transforms an iterator into a collection. Read more
Source§

fn try_collect<B>( &mut self, ) -> <<Self::Item as Try>::Residual as Residual<B>>::TryType
where Self: Sized, Self::Item: Try, <Self::Item as Try>::Residual: Residual<B>, B: FromIterator<<Self::Item as Try>::Output>,

🔬This is a nightly-only experimental API. (iterator_try_collect)
Fallibly transforms an iterator into a collection, short circuiting if a failure is encountered. Read more
Source§

fn collect_into<E>(self, collection: &mut E) -> &mut E
where E: Extend<Self::Item>, Self: Sized,

🔬This is a nightly-only experimental API. (iter_collect_into)
Collects all the items from an iterator into a collection. Read more
1.0.0 · Source§

fn partition<B, F>(self, f: F) -> (B, B)
where Self: Sized, B: Default + Extend<Self::Item>, F: FnMut(&Self::Item) -> bool,

Consumes an iterator, creating two collections from it. Read more
Source§

fn partition_in_place<'a, T, P>(self, predicate: P) -> usize
where T: 'a, Self: Sized + DoubleEndedIterator<Item = &'a mut T>, P: FnMut(&T) -> bool,

🔬This is a nightly-only experimental API. (iter_partition_in_place)
Reorders the elements of this iterator in-place according to the given predicate, such that all those that return true precede all those that return false. Returns the number of true elements found. Read more
Source§

fn is_partitioned<P>(self, predicate: P) -> bool
where Self: Sized, P: FnMut(Self::Item) -> bool,

🔬This is a nightly-only experimental API. (iter_is_partitioned)
Checks if the elements of this iterator are partitioned according to the given predicate, such that all those that return true precede all those that return false. Read more
1.27.0 · Source§

fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R
where Self: Sized, F: FnMut(B, Self::Item) -> R, R: Try<Output = B>,

An iterator method that applies a function as long as it returns successfully, producing a single, final value. Read more
1.27.0 · Source§

fn try_for_each<F, R>(&mut self, f: F) -> R
where Self: Sized, F: FnMut(Self::Item) -> R, R: Try<Output = ()>,

An iterator method that applies a fallible function to each item in the iterator, stopping at the first error and returning that error. Read more
1.0.0 · Source§

fn fold<B, F>(self, init: B, f: F) -> B
where Self: Sized, F: FnMut(B, Self::Item) -> B,

Folds every element into an accumulator by applying an operation, returning the final result. Read more
1.51.0 · Source§

fn reduce<F>(self, f: F) -> Option<Self::Item>
where Self: Sized, F: FnMut(Self::Item, Self::Item) -> Self::Item,

Reduces the elements to a single one, by repeatedly applying a reducing operation. Read more
Source§

fn try_reduce<R>( &mut self, f: impl FnMut(Self::Item, Self::Item) -> R, ) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryType
where Self: Sized, R: Try<Output = Self::Item>, <R as Try>::Residual: Residual<Option<Self::Item>>,

🔬This is a nightly-only experimental API. (iterator_try_reduce)
Reduces the elements to a single one by repeatedly applying a reducing operation. If the closure returns a failure, the failure is propagated back to the caller immediately. Read more
1.0.0 · Source§

fn all<F>(&mut self, f: F) -> bool
where Self: Sized, F: FnMut(Self::Item) -> bool,

Tests if every element of the iterator matches a predicate. Read more
1.0.0 · Source§

fn any<F>(&mut self, f: F) -> bool
where Self: Sized, F: FnMut(Self::Item) -> bool,

Tests if any element of the iterator matches a predicate. Read more
1.0.0 · Source§

fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
where Self: Sized, P: FnMut(&Self::Item) -> bool,

Searches for an element of an iterator that satisfies a predicate. Read more
1.30.0 · Source§

fn find_map<B, F>(&mut self, f: F) -> Option<B>
where Self: Sized, F: FnMut(Self::Item) -> Option<B>,

Applies function to the elements of iterator and returns the first non-none result. Read more
Source§

fn try_find<R>( &mut self, f: impl FnMut(&Self::Item) -> R, ) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryType
where Self: Sized, R: Try<Output = bool>, <R as Try>::Residual: Residual<Option<Self::Item>>,

🔬This is a nightly-only experimental API. (try_find)
Applies function to the elements of iterator and returns the first true result or the first error. Read more
1.0.0 · Source§

fn position<P>(&mut self, predicate: P) -> Option<usize>
where Self: Sized, P: FnMut(Self::Item) -> bool,

Searches for an element in an iterator, returning its index. Read more
1.0.0 · Source§

fn rposition<P>(&mut self, predicate: P) -> Option<usize>
where P: FnMut(Self::Item) -> bool, Self: Sized + ExactSizeIterator + DoubleEndedIterator,

Searches for an element in an iterator from the right, returning its index. Read more
1.0.0 · Source§

fn max(self) -> Option<Self::Item>
where Self: Sized, Self::Item: Ord,

Returns the maximum element of an iterator. Read more
1.0.0 · Source§

fn min(self) -> Option<Self::Item>
where Self: Sized, Self::Item: Ord,

Returns the minimum element of an iterator. Read more
1.6.0 · Source§

fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>
where B: Ord, Self: Sized, F: FnMut(&Self::Item) -> B,

Returns the element that gives the maximum value from the specified function. Read more
1.15.0 · Source§

fn max_by<F>(self, compare: F) -> Option<Self::Item>
where Self: Sized, F: FnMut(&Self::Item, &Self::Item) -> Ordering,

Returns the element that gives the maximum value with respect to the specified comparison function. Read more
1.6.0 · Source§

fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>
where B: Ord, Self: Sized, F: FnMut(&Self::Item) -> B,

Returns the element that gives the minimum value from the specified function. Read more
1.15.0 · Source§

fn min_by<F>(self, compare: F) -> Option<Self::Item>
where Self: Sized, F: FnMut(&Self::Item, &Self::Item) -> Ordering,

Returns the element that gives the minimum value with respect to the specified comparison function. Read more
1.0.0 · Source§

fn rev(self) -> Rev<Self>
where Self: Sized + DoubleEndedIterator,

Reverses an iterator’s direction. Read more
1.0.0 · Source§

fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
where FromA: Default + Extend<A>, FromB: Default + Extend<B>, Self: Sized + Iterator<Item = (A, B)>,

Converts an iterator of pairs into a pair of containers. Read more
1.36.0 · Source§

fn copied<'a, T>(self) -> Copied<Self>
where T: 'a + Copy, Self: Sized + Iterator<Item = &'a T>,

Creates an iterator which copies all of its elements. Read more
1.0.0 · Source§

fn cloned<'a, T>(self) -> Cloned<Self>
where T: 'a + Clone, Self: Sized + Iterator<Item = &'a T>,

Creates an iterator which clones all of its elements. Read more
1.0.0 · Source§

fn cycle(self) -> Cycle<Self>
where Self: Sized + Clone,

Repeats an iterator endlessly. Read more
Source§

fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N>
where Self: Sized,

🔬This is a nightly-only experimental API. (iter_array_chunks)
Returns an iterator over N elements of the iterator at a time. Read more
1.11.0 · Source§

fn sum<S>(self) -> S
where Self: Sized, S: Sum<Self::Item>,

Sums the elements of an iterator. Read more
1.11.0 · Source§

fn product<P>(self) -> P
where Self: Sized, P: Product<Self::Item>,

Iterates over the entire iterator, multiplying all the elements Read more
1.5.0 · Source§

fn cmp<I>(self, other: I) -> Ordering
where I: IntoIterator<Item = Self::Item>, Self::Item: Ord, Self: Sized,

Lexicographically compares the elements of this Iterator with those of another. Read more
Source§

fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering
where Self: Sized, I: IntoIterator, F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Ordering,

🔬This is a nightly-only experimental API. (iter_order_by)
Lexicographically compares the elements of this Iterator with those of another with respect to the specified comparison function. Read more
1.5.0 · Source§

fn partial_cmp<I>(self, other: I) -> Option<Ordering>
where I: IntoIterator, Self::Item: PartialOrd<<I as IntoIterator>::Item>, Self: Sized,

Lexicographically compares the PartialOrd elements of this Iterator with those of another. The comparison works like short-circuit evaluation, returning a result without comparing the remaining elements. As soon as an order can be determined, the evaluation stops and a result is returned. Read more
Source§

fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>
where Self: Sized, I: IntoIterator, F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,

🔬This is a nightly-only experimental API. (iter_order_by)
Lexicographically compares the elements of this Iterator with those of another with respect to the specified comparison function. Read more
1.5.0 · Source§

fn eq<I>(self, other: I) -> bool
where I: IntoIterator, Self::Item: PartialEq<<I as IntoIterator>::Item>, Self: Sized,

Determines if the elements of this Iterator are equal to those of another. Read more
Source§

fn eq_by<I, F>(self, other: I, eq: F) -> bool
where Self: Sized, I: IntoIterator, F: FnMut(Self::Item, <I as IntoIterator>::Item) -> bool,

🔬This is a nightly-only experimental API. (iter_order_by)
Determines if the elements of this Iterator are equal to those of another with respect to the specified equality function. Read more
1.5.0 · Source§

fn ne<I>(self, other: I) -> bool
where I: IntoIterator, Self::Item: PartialEq<<I as IntoIterator>::Item>, Self: Sized,

Determines if the elements of this Iterator are not equal to those of another. Read more
1.5.0 · Source§

fn lt<I>(self, other: I) -> bool
where I: IntoIterator, Self::Item: PartialOrd<<I as IntoIterator>::Item>, Self: Sized,

Determines if the elements of this Iterator are lexicographically less than those of another. Read more
1.5.0 · Source§

fn le<I>(self, other: I) -> bool
where I: IntoIterator, Self::Item: PartialOrd<<I as IntoIterator>::Item>, Self: Sized,

Determines if the elements of this Iterator are lexicographically less or equal to those of another. Read more
1.5.0 · Source§

fn gt<I>(self, other: I) -> bool
where I: IntoIterator, Self::Item: PartialOrd<<I as IntoIterator>::Item>, Self: Sized,

Determines if the elements of this Iterator are lexicographically greater than those of another. Read more
1.5.0 · Source§

fn ge<I>(self, other: I) -> bool
where I: IntoIterator, Self::Item: PartialOrd<<I as IntoIterator>::Item>, Self: Sized,

Determines if the elements of this Iterator are lexicographically greater than or equal to those of another. Read more
1.82.0 · Source§

fn is_sorted(self) -> bool
where Self: Sized, Self::Item: PartialOrd,

Checks if the elements of this iterator are sorted. Read more
1.82.0 · Source§

fn is_sorted_by<F>(self, compare: F) -> bool
where Self: Sized, F: FnMut(&Self::Item, &Self::Item) -> bool,

Checks if the elements of this iterator are sorted using the given comparator function. Read more
1.82.0 · Source§

fn is_sorted_by_key<F, K>(self, f: F) -> bool
where Self: Sized, F: FnMut(Self::Item) -> K, K: PartialOrd,

Checks if the elements of this iterator are sorted using the given key extraction function. Read more
Source§

impl<C, D, R> MSDataFileMetadata for MZReaderType<R, C, D>

Source§

fn data_processings(&self) -> &Vec<DataProcessing>

The series of DataProcessing workflows applied to spectra in this data file.
Source§

fn instrument_configurations(&self) -> &HashMap<u32, InstrumentConfiguration>

A mapping over different InstrumentConfiguration modes that spectra were acquired under.
Source§

fn file_description(&self) -> &FileDescription

A description of the contents and the sources for this mass spectrometry data file.
Source§

fn softwares(&self) -> &Vec<Software>

The series of Software applied to the data file to apply different DataProcessing methods.
Source§

fn samples(&self) -> &Vec<Sample>

A list of sample descriptions that were measured in this data file if available.
Source§

fn data_processings_mut(&mut self) -> &mut Vec<DataProcessing>

Mutably access the DataProcessing list for this data file
Source§

fn instrument_configurations_mut( &mut self, ) -> &mut HashMap<u32, InstrumentConfiguration>

Mutably access the InstrumentConfiguration mapping for this data file
Source§

fn file_description_mut(&mut self) -> &mut FileDescription

Mutably access the FileDescription description of the contents and the sources for this mass spectrometry data file.
Source§

fn softwares_mut(&mut self) -> &mut Vec<Software>

Mutably access the list of Software of this data file.
Source§

fn samples_mut(&mut self) -> &mut Vec<Sample>

Source§

fn source_file_name(&self) -> Option<&str>

Get the name of the primary source file, if available
Source§

fn run_description(&self) -> Option<&MassSpectrometryRun>

Access the MassSpectrometryRun metadata record if it is available
Source§

fn spectrum_count_hint(&self) -> Option<u64>

A hint about how many spectra are in this data file
Source§

fn copy_metadata_from(&mut self, source: &impl MSDataFileMetadata)
where Self: Sized,

Copy the metadata from another MSDataFileMetadata implementation into this one.
Source§

fn set_spectrum_count_hint(&mut self, _value: Option<u64>)

Source§

fn run_description_mut(&mut self) -> Option<&mut MassSpectrometryRun>

Mutably access the MassSpectrometryRun metadata record if it is available
Source§

impl<C, D> MZFileReader<C, D> for MZReaderType<File, C, D>

Source§

fn construct_index_from_stream(&mut self) -> u64

An on-trait method of constructing an index. Assumed to be a trivial wrapper.
Source§

fn open_path<P>(path: P) -> Result<MZReaderType<File, C, D>, Error>
where P: Into<PathBuf> + Clone,

The preferred method of opening a file from a path-like object. This method will open the file at the provided path, test whether there is an accompanied index file next to it on the file system, and if not, build one and save it or otherwise read in the index. Read more
Source§

fn open_file(source: File) -> Result<MZReaderType<File, C, D>, Error>

Given a regular file, construct a new instance without indexing.
Source§

impl<C, D, R> RandomAccessSpectrumIterator<C, D> for MZReaderType<R, C, D>

Source§

fn start_from_id( &mut self, id: &str, ) -> Result<&mut MZReaderType<R, C, D>, SpectrumAccessError>

Start iterating from the spectrum whose native ID matches id
Source§

fn start_from_index( &mut self, index: usize, ) -> Result<&mut MZReaderType<R, C, D>, SpectrumAccessError>

Start iterating from the spectrum whose index is index
Source§

fn start_from_time( &mut self, time: f64, ) -> Result<&mut MZReaderType<R, C, D>, SpectrumAccessError>

Start iterating from the spectrum starting closest to time
Source§

impl<C, D, R> SpectrumSource<C, D> for MZReaderType<R, C, D>

Source§

fn reset(&mut self)

Rewind the current position of the source to the beginning
Source§

fn get_spectrum_by_id(&mut self, id: &str) -> Option<MultiLayerSpectrum<C, D>>

Retrieve a spectrum by it’s native ID
Source§

fn get_spectrum_by_index( &mut self, index: usize, ) -> Option<MultiLayerSpectrum<C, D>>

Retrieve a spectrum by it’s integer index
Source§

fn get_spectrum_by_time( &mut self, time: f64, ) -> Option<MultiLayerSpectrum<C, D>>

Retrieve a spectrum by its scan start time Considerably more complex than seeking by ID or index, this involves a binary search over the spectrum index and assumes that spectra are stored in chronological order.
Source§

fn get_index(&self) -> &OffsetIndex

Access the spectrum offset index to enumerate all spectra by ID
Source§

fn set_index(&mut self, index: OffsetIndex)

Set the spectrum offset index. This method shouldn’t be needed if not writing a new adapter
Source§

fn detail_level(&self) -> &DetailLevel

Get the DetailLevel the reader currently uses
Source§

fn set_detail_level(&mut self, detail_level: DetailLevel)

Set the DetailLevel for the reader, changing the amount of work done immediately on loading a spectrum. Read more
Source§

fn len(&self) -> usize

Retrieve the number of spectra in source file, usually by getting the length of the index. If the index isn’t initialized, this will be 0.
Source§

fn is_empty(&self) -> bool

Source§

fn _offset_of_id(&self, id: &str) -> Option<u64>

Helper method to support seeking to an ID
Source§

fn _offset_of_index(&self, index: usize) -> Option<u64>

Helper method to support seeking to an index
Source§

fn _offset_of_time(&mut self, time: f64) -> Option<u64>

Helper method to support seeking to a specific time. Considerably more complex than seeking by ID or index.
Source§

fn iter(&mut self) -> SpectrumIterator<'_, C, D, S, Self>
where Self: Sized,

Open a new iterator over this stream
Source§

fn get_group_by_index(&mut self, index: usize) -> Option<SpectrumGroup<C, D, S>>
where Self: Sized,

Get the nth SpectrumGroup from this source
Source§

fn groups( &mut self, ) -> SpectrumGroupingIterator<SpectrumIterator<'_, C, D, S, Self>, C, D, S>
where Self: Sized,

Create a new SpectrumIterator over self and use that state to drive a SpectrumGroupingIterator
Source§

fn into_groups(self) -> SpectrumGroupingIterator<Self, C, D, S>
where Self: Sized,

Consume self to create a SpectrumGroupingIterator. This is ideal for non-rewindable streams like io::stdin which don’t implement io::Seek

Auto Trait Implementations§

§

impl<R, C, D> Freeze for MZReaderType<R, C, D>

§

impl<R, C = CentroidPeak, D = DeconvolutedPeak> !RefUnwindSafe for MZReaderType<R, C, D>

§

impl<R, C, D> Send for MZReaderType<R, C, D>
where R: Send,

§

impl<R, C, D> Sync for MZReaderType<R, C, D>
where R: Sync,

§

impl<R, C, D> Unpin for MZReaderType<R, C, D>
where R: Unpin,

§

impl<R, C = CentroidPeak, D = DeconvolutedPeak> !UnwindSafe for MZReaderType<R, C, D>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<I> IntoIterator for I
where I: Iterator,

Source§

type Item = <I as Iterator>::Item

The type of the elements being iterated over.
Source§

type IntoIter = I

Which kind of iterator are we turning this into?
Source§

fn into_iter(self) -> I

Creates an iterator from a value. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<C, D, S, T> RandomAccessSpectrumSource<C, D, S> for T

Source§

impl<C, D, S, T> SpectrumSourceWithMetadata<C, D, S> for T