rustyms/spectrum/
peaks.rs1use std::iter::FusedIterator;
4
5use crate::system::f64::MassOverCharge;
6
7pub trait PeakSpectrum:
9 Extend<Self::PeakType>
10 + IntoIterator<Item = Self::PeakType>
11 + std::ops::Index<usize, Output = Self::PeakType>
12{
13 type PeakType;
15 type Iter<'a>: DoubleEndedIterator + ExactSizeIterator + FusedIterator
17 where
18 Self: 'a;
19 fn binary_search(&self, low: MassOverCharge, high: MassOverCharge) -> &[Self::PeakType];
21 fn spectrum(&self) -> Self::Iter<'_>;
23 fn add_peak(&mut self, item: Self::PeakType);
25}