From d3c162ab79e98527ab3aac2e74580bbf7ae7bd86 Mon Sep 17 00:00:00 2001 From: "J.A. de Jong - Redu-Sone B.V., ASCEE V.O.F" Date: Thu, 18 Jul 2024 13:34:37 +0200 Subject: [PATCH] Clippy fixes --- src/daq/api/api_cpal.rs | 2 +- src/daq/record.rs | 10 +++++----- src/daq/streamdata.rs | 18 ++++++++---------- src/filter/biquad.rs | 6 +++--- src/ps/aps.rs | 13 +++++-------- src/ps/timebuffer.rs | 10 +++++----- src/ps/window.rs | 7 ++----- src/rt/rtaps.rs | 2 +- 8 files changed, 30 insertions(+), 38 deletions(-) diff --git a/src/daq/api/api_cpal.rs b/src/daq/api/api_cpal.rs index e58e595..761be49 100644 --- a/src/daq/api/api_cpal.rs +++ b/src/daq/api/api_cpal.rs @@ -689,7 +689,7 @@ impl CpalApi { let max_sr = cpalcfg.max_sample_rate().0; let min_sr = cpalcfg.min_sample_rate().0; if samplerate <= max_sr && samplerate >= min_sr { - let cfg = cpalcfg.with_sample_rate(SampleRate(samplerate as u32)); + let cfg = cpalcfg.with_sample_rate(SampleRate(samplerate)); let mut cfg = cfg.config(); cfg.channels = highest_ch + 1; diff --git a/src/daq/record.rs b/src/daq/record.rs index 05f4683..fb6ad7d 100644 --- a/src/daq/record.rs +++ b/src/daq/record.rs @@ -162,27 +162,27 @@ impl Recording { ) -> Result<()> { match data.getRaw() { RawStreamData::Datai8(dat) => { - let arr = ndarray::ArrayView2::::from_shape((framesPerBlock, nchannels), &dat)?; + let arr = ndarray::ArrayView2::::from_shape((framesPerBlock, nchannels), dat)?; ds.write_slice(arr, (ctr, .., ..))?; } RawStreamData::Datai16(dat) => { let arr = - ndarray::ArrayView2::::from_shape((framesPerBlock, nchannels), &dat)?; + ndarray::ArrayView2::::from_shape((framesPerBlock, nchannels), dat)?; ds.write_slice(arr, (ctr, .., ..))?; } RawStreamData::Datai32(dat) => { let arr = - ndarray::ArrayView2::::from_shape((framesPerBlock, nchannels), &dat)?; + ndarray::ArrayView2::::from_shape((framesPerBlock, nchannels), dat)?; ds.write_slice(arr, (ctr, .., ..))?; } RawStreamData::Dataf32(dat) => { let arr = - ndarray::ArrayView2::::from_shape((framesPerBlock, nchannels), &dat)?; + ndarray::ArrayView2::::from_shape((framesPerBlock, nchannels), dat)?; ds.write_slice(arr, (ctr, .., ..))?; } RawStreamData::Dataf64(dat) => { let arr = - ndarray::ArrayView2::::from_shape((framesPerBlock, nchannels), &dat)?; + ndarray::ArrayView2::::from_shape((framesPerBlock, nchannels), dat)?; ds.write_slice(arr, (ctr, .., ..))?; } } diff --git a/src/daq/streamdata.rs b/src/daq/streamdata.rs index a2d1f43..c5517eb 100644 --- a/src/daq/streamdata.rs +++ b/src/daq/streamdata.rs @@ -130,12 +130,12 @@ impl InStreamData { #[inline] /// Return reference to underlying raw data storage pub fn getRaw(&self) -> &RawStreamData { - return &self.raw; + &self.raw } #[inline] /// Convenience function to return the number of channels in this instreamdata. pub fn nchannels(&self) -> usize { - return self.meta.nchannels(); + self.meta.nchannels() } /// Iterate over raw data of a certain channel. Tye should be specificied /// and if not set correctly, this results in undefined behavior @@ -185,11 +185,10 @@ impl InStreamData { { Box::new( (0..self.meta.nchannels()) - .into_iter() .flat_map(|chi| self.iter_channel_raw(chi)), ) } - fn iter_channel_converted<'a, T>(&'a self, ch: usize) -> impl Iterator + 'a + fn iter_channel_converted(&self, ch: usize) -> impl Iterator + '_ where T: Sample + Copy + 'static, Flt: FromSample, @@ -208,7 +207,6 @@ impl InStreamData { { Box::new( (0..self.meta.nchannels()) - .into_iter() .flat_map(move |chi| self.iter_channel_converted(chi)), ) } @@ -232,19 +230,19 @@ impl InStreamData { let nch = self.meta.nchannels(); match &self.raw { RawStreamData::Datai8(c) => { - return c.len() / nch; + c.len() / nch } RawStreamData::Datai16(c) => { - return c.len() / nch; + c.len() / nch } RawStreamData::Datai32(c) => { - return c.len() / nch; + c.len() / nch } RawStreamData::Dataf32(c) => { - return c.len() / nch; + c.len() / nch } RawStreamData::Dataf64(c) => { - return c.len() / nch; + c.len() / nch } } } diff --git a/src/filter/biquad.rs b/src/filter/biquad.rs index a86c396..640d93f 100644 --- a/src/filter/biquad.rs +++ b/src/filter/biquad.rs @@ -227,13 +227,13 @@ impl Filter for Biquad { impl<'a, T: AsArray<'a, Flt>> TransferFunction<'a, T> for Biquad { fn tf(&self, fs: Flt, freq: T) -> Ccol { let freq = freq.into(); - let res = freq.mapv(|f| { + + freq.mapv(|f| { let z = Complex::exp(I * 2. * pi * f / fs); let num = self.b0 + self.b1 / z + self.b2 / z / z; let den = 1. + self.a1 / z + self.a2 / z / z; num / den - }); - res + }) } } diff --git a/src/ps/aps.rs b/src/ps/aps.rs index 446d205..08c31bd 100644 --- a/src/ps/aps.rs +++ b/src/ps/aps.rs @@ -26,9 +26,11 @@ impl Default for Overlap { /// The 'mode' used in computing averaged power spectra. When providing data in /// blocks to the [AvPowerSpectra] the resulting 'current estimate' responds /// differently, depending on the model. +#[derive(Default)] pub enum ApsMode { /// Averaged over all data provided. New averages can be created by calling /// `AvPowerSpectra::reset()` + #[default] AllAveraging, /// In this mode, the `AvPowerSpectra` works a bit like a sound level meter, /// where new data is weighted with old data, and old data exponentially @@ -44,11 +46,6 @@ pub enum ApsMode { /// Spectrogram mode. Only returns the latest estimate(s). Spectrogram, } -impl Default for ApsMode { - fn default() -> Self { - ApsMode::AllAveraging - } -} /// Averaged power spectra computing engine /// Used to compute power spectra estimations on @@ -93,7 +90,7 @@ impl AvPowerSpectra { Overlap::Number(i) if i < nfft => i, // If overlap percentage is >= 100, or < 0.0 its an error - Overlap::Percentage(p) if p >= 100. || p < 0.0 => { + Overlap::Percentage(p) if !(0.0..100.).contains(&p) => { bail!("Invalid overlap percentage. Should be >= 0. And < 100.") } // If overlap percentage is 0, this gives @@ -196,11 +193,11 @@ impl AvPowerSpectra { T: AsArray<'a, Flt, Ix2>, { let timeblock = timedata.into(); - let Cpsnew = self.ps.compute(&timeblock); + let Cpsnew = self.ps.compute(timeblock); // println!("Cpsnew: {:?}", Cpsnew[[0, 0, 0]]); // Initialize to zero - if self.cur_est.len() == 0 { + if self.cur_est.is_empty() { assert_eq!(self.N, 0); self.cur_est = CPSResult::zeros(Cpsnew.raw_dim().f()); } diff --git a/src/ps/timebuffer.rs b/src/ps/timebuffer.rs index ad4bf02..63f3754 100644 --- a/src/ps/timebuffer.rs +++ b/src/ps/timebuffer.rs @@ -32,7 +32,7 @@ impl TimeBuffer { { let new_data = new_data.into(); let nch = new_data.shape()[1]; - if self.data.len() == 0 { + if self.data.is_empty() { self.data = vec![VecDeque::new(); nch]; } if self.data.len() != nch { @@ -45,7 +45,7 @@ impl TimeBuffer { } /// Return the number of samples that is currently stored pub fn nsamples(&self) -> usize { - if let Some(q) = self.data.get(0) { + if let Some(q) = self.data.first() { return q.len(); }; 0 @@ -54,14 +54,14 @@ impl TimeBuffer { /// enough samples to return. Never returns less samples than /// `nsamples_requested`. pub fn pop(&mut self, nsamples_requested: usize, nsamples_keep: usize) -> Option { - if self.data.len() == 0 { + if self.data.is_empty() { return None; } if nsamples_keep > nsamples_requested { panic!("BUG: Cannot keep more samples than requested to return"); } - debug_assert!(self.data.len() > 0); + debug_assert!(!self.data.is_empty()); let c1 = unsafe { self.data.get_unchecked(0) }; let nsamples_available = c1.len(); @@ -91,7 +91,7 @@ impl TimeBuffer { } else { let slice1len = dat_slice1.len(); // Copy from first slice - col_slice[..slice1len].copy_from_slice(&dat_slice1); + col_slice[..slice1len].copy_from_slice(dat_slice1); // Copy rest from second slice col_slice[slice1len..nsamples_requested] .copy_from_slice(&dat_slice2[..nsamples_requested - slice1len]); diff --git a/src/ps/window.rs b/src/ps/window.rs index 7e0ce78..c4a45b4 100644 --- a/src/ps/window.rs +++ b/src/ps/window.rs @@ -73,8 +73,10 @@ fn hamming(N: usize) -> Dcol { /// /// The [WindowType::default] is [WindowType::Hann]. #[derive(Display, Clone, Debug)] +#[derive(Default)] pub enum WindowType { /// Von Hann window + #[default] Hann = 0, /// Hamming window Hamming = 1, @@ -85,11 +87,6 @@ pub enum WindowType { /// Blackman window Blackman = 4, } -impl Default for WindowType { - fn default() -> Self { - WindowType::Hann - } -} /// Window (taper) computed from specified window type. #[derive(Clone)] diff --git a/src/rt/rtaps.rs b/src/rt/rtaps.rs index ad308b9..b1fb7f9 100644 --- a/src/rt/rtaps.rs +++ b/src/rt/rtaps.rs @@ -106,7 +106,7 @@ impl RtAps { if let Some(RtApsComm::CommStopThread) = res { panic!("BUG: CommStopThread should never be set!") } - return lck.take(); + lck.take() } } impl Drop for RtAps {