From d4de769d56af2ea23c0d20123b74e868ce794cb2 Mon Sep 17 00:00:00 2001 From: Sander Willems Date: Fri, 14 Jun 2024 13:26:04 +0200 Subject: [PATCH] FEAT: using iterator to read frames --- src/file_readers/frame_readers/tdf_reader.rs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/file_readers/frame_readers/tdf_reader.rs b/src/file_readers/frame_readers/tdf_reader.rs index acd936d..e745e31 100644 --- a/src/file_readers/frame_readers/tdf_reader.rs +++ b/src/file_readers/frame_readers/tdf_reader.rs @@ -7,6 +7,7 @@ use crate::{ io::readers::frame_reader::FrameReader, ms_data::Frame, }; +use rayon::iter::ParallelIterator; #[derive(Debug)] pub struct TDFReader { @@ -41,14 +42,18 @@ impl ReadableFrames for TDFReader { } fn read_all_frames(&self) -> Vec { - self.frame_reader.collect(|_| true) + self.frame_reader.parallel_filter(|_| true).collect() } fn read_all_ms1_frames(&self) -> Vec { - self.frame_reader.collect(|x| x.msms_type == 0) + self.frame_reader + .parallel_filter(|x| x.msms_type == 0) + .collect() } fn read_all_ms2_frames(&self) -> Vec { - self.frame_reader.collect(|x| x.msms_type != 0) + self.frame_reader + .parallel_filter(|x| x.msms_type != 0) + .collect() } }