From 1b98c307466875cb72306d71c97abb38afd50a48 Mon Sep 17 00:00:00 2001 From: Gnome! Date: Wed, 3 Jan 2024 16:45:23 +0000 Subject: [PATCH] Fix clippy warnings (#214) * Fix clippy warnings * Fix implicitly elided lifetimes --- src/driver/scheduler/mod.rs | 2 +- src/driver/tasks/events.rs | 4 ++-- src/driver/tasks/message/mod.rs | 3 +-- src/driver/tasks/mixer/mix_logic.rs | 4 ++-- src/driver/tasks/mixer/state.rs | 2 +- src/driver/tasks/mod.rs | 21 +++++++++------------ src/driver/tasks/udp_rx/playout_buffer.rs | 18 +++++++++--------- src/input/adapters/cached/util.rs | 2 +- src/input/codecs/opus.rs | 2 +- src/input/live_input.rs | 2 +- src/input/mod.rs | 5 ++--- src/lib.rs | 3 ++- src/tracks/command.rs | 2 +- src/tracks/handle.rs | 2 +- src/tracks/queue.rs | 4 ++-- 15 files changed, 36 insertions(+), 40 deletions(-) diff --git a/src/driver/scheduler/mod.rs b/src/driver/scheduler/mod.rs index f7d6ec2..cbaac6e 100644 --- a/src/driver/scheduler/mod.rs +++ b/src/driver/scheduler/mod.rs @@ -24,7 +24,7 @@ const RESCHEDULE_THRESHOLD: u64 = ((TIMESTEP_LENGTH.subsec_nanos() as u64) * 9) const DEFAULT_MIXERS_PER_THREAD: NonZeroUsize = match NonZeroUsize::new(16) { Some(v) => v, - None => [][0], + None => unreachable!(), }; /// The default shared scheduler instance. diff --git a/src/driver/tasks/events.rs b/src/driver/tasks/events.rs index e85f0d6..04b62bb 100644 --- a/src/driver/tasks/events.rs +++ b/src/driver/tasks/events.rs @@ -6,8 +6,8 @@ use crate::{ use flume::Receiver; use tracing::{debug, info, instrument, trace}; -#[instrument(skip(_interconnect, evt_rx))] -pub(crate) async fn runner(_interconnect: Interconnect, evt_rx: Receiver) { +#[instrument(skip(evt_rx))] +pub(crate) async fn runner(evt_rx: Receiver) { let mut global = GlobalEvents::default(); let mut events: Vec = vec![]; diff --git a/src/driver/tasks/message/mod.rs b/src/driver/tasks/message/mod.rs index ba69101..1040d43 100644 --- a/src/driver/tasks/message/mod.rs +++ b/src/driver/tasks/message/mod.rs @@ -40,10 +40,9 @@ impl Interconnect { self.events = evt_tx; - let ic = self.clone(); spawn(async move { trace!("Event processor restarted."); - super::events::runner(ic, evt_rx).await; + super::events::runner(evt_rx).await; trace!("Event processor finished."); }); diff --git a/src/driver/tasks/mixer/mix_logic.rs b/src/driver/tasks/mixer/mix_logic.rs index 9e86331..2f868ff 100644 --- a/src/driver/tasks/mixer/mix_logic.rs +++ b/src/driver/tasks/mixer/mix_logic.rs @@ -259,7 +259,7 @@ pub fn mix_symph_indiv( #[inline] fn mix_over_ref( - source: &AudioBufferRef, + source: &AudioBufferRef<'_>, target: &mut AudioBuffer, source_pos: usize, dest_pos: usize, @@ -397,7 +397,7 @@ fn mix_resampled( #[inline] pub(crate) fn copy_into_resampler( - source: &AudioBufferRef, + source: &AudioBufferRef<'_>, target: &mut AudioBuffer, source_pos: usize, dest_pos: usize, diff --git a/src/driver/tasks/mixer/state.rs b/src/driver/tasks/mixer/state.rs index e5708f3..eb8d117 100644 --- a/src/driver/tasks/mixer/state.rs +++ b/src/driver/tasks/mixer/state.rs @@ -15,7 +15,7 @@ pub enum InputState { } impl InputState { - pub fn metadata(&mut self) -> Option { + pub fn metadata(&mut self) -> Option> { if let Self::Ready(parsed, _) = self { Some(parsed.into()) } else { diff --git a/src/driver/tasks/mod.rs b/src/driver/tasks/mod.rs index 665d0e9..4f42c22 100644 --- a/src/driver/tasks/mod.rs +++ b/src/driver/tasks/mod.rs @@ -38,23 +38,20 @@ fn start_internals(core: Sender, config: &Config) -> Interconnect { let (evt_tx, evt_rx) = flume::unbounded(); let (mix_tx, mix_rx) = flume::unbounded(); - let interconnect = Interconnect { + spawn(async move { + trace!("Event processor started."); + events::runner(evt_rx).await; + trace!("Event processor finished."); + }); + + let ic = Interconnect { core, events: evt_tx, mixer: mix_tx, }; - let ic = interconnect.clone(); - spawn(async move { - trace!("Event processor started."); - events::runner(ic, evt_rx).await; - trace!("Event processor finished."); - }); - - let ic = interconnect.clone(); - config.get_scheduler().new_mixer(config, ic, mix_rx); - - interconnect + config.get_scheduler().new_mixer(config, ic.clone(), mix_rx); + ic } #[instrument(skip(rx, tx))] diff --git a/src/driver/tasks/udp_rx/playout_buffer.rs b/src/driver/tasks/udp_rx/playout_buffer.rs index b50ba51..e729c22 100644 --- a/src/driver/tasks/udp_rx/playout_buffer.rs +++ b/src/driver/tasks/udp_rx/playout_buffer.rs @@ -42,7 +42,7 @@ pub enum PacketLookup { #[derive(Debug)] pub struct PlayoutBuffer { - playout_buffer: VecDeque>, + buffer: VecDeque>, playout_mode: PlayoutMode, next_seq: RtpSequence, current_timestamp: Option, @@ -51,7 +51,7 @@ pub struct PlayoutBuffer { impl PlayoutBuffer { pub fn new(capacity: usize, next_seq: RtpSequence) -> Self { Self { - playout_buffer: VecDeque::with_capacity(capacity), + buffer: VecDeque::with_capacity(capacity), playout_mode: PlayoutMode::Fill, next_seq, current_timestamp: None, @@ -81,13 +81,13 @@ impl PlayoutBuffer { trace!("Packet arrived beyond playout max length."); } else { let index = desired_index as usize; - while self.playout_buffer.len() <= index { - self.playout_buffer.push_back(None); + while self.buffer.len() <= index { + self.buffer.push_back(None); } - self.playout_buffer[index] = Some(packet); + self.buffer[index] = Some(packet); } - if self.playout_buffer.len() >= config.playout_buffer_length.get() { + if self.buffer.len() >= config.playout_buffer_length.get() { self.playout_mode = PlayoutMode::Drain; } } @@ -97,7 +97,7 @@ impl PlayoutBuffer { return PacketLookup::Filling; } - let out = match self.playout_buffer.pop_front() { + let out = match self.buffer.pop_front() { Some(Some(pkt)) => { let rtp = RtpPacket::new(&pkt.packet) .expect("FATAL: earlier valid packet now invalid (fetch)"); @@ -111,7 +111,7 @@ impl PlayoutBuffer { PacketLookup::Packet(pkt) } else { trace!("Witholding packet: ts_diff is {ts_diff}"); - self.playout_buffer.push_front(Some(pkt)); + self.buffer.push_front(Some(pkt)); self.playout_mode = PlayoutMode::Fill; PacketLookup::Filling } @@ -123,7 +123,7 @@ impl PlayoutBuffer { None => PacketLookup::Filling, }; - if self.playout_buffer.is_empty() { + if self.buffer.is_empty() { self.playout_mode = PlayoutMode::Fill; self.current_timestamp = None; } diff --git a/src/input/adapters/cached/util.rs b/src/input/adapters/cached/util.rs index 0a417ce..e44f9ca 100644 --- a/src/input/adapters/cached/util.rs +++ b/src/input/adapters/cached/util.rs @@ -335,7 +335,7 @@ impl MediaSource for ToAudioBytes { #[inline] fn write_out( - source: &AudioBufferRef, + source: &AudioBufferRef<'_>, target: &mut [u8], source_pos: &mut Range, spillover: &mut Vec, diff --git a/src/input/codecs/opus.rs b/src/input/codecs/opus.rs index 25cc05c..4f2e33d 100644 --- a/src/input/codecs/opus.rs +++ b/src/input/codecs/opus.rs @@ -133,7 +133,7 @@ impl Decoder for OpusDecoder { FinalizeResult::default() } - fn last_decoded(&self) -> AudioBufferRef { + fn last_decoded(&self) -> AudioBufferRef<'_> { self.buf.as_audio_buffer_ref() } } diff --git a/src/input/live_input.rs b/src/input/live_input.rs index ee3cf9a..7da560d 100644 --- a/src/input/live_input.rs +++ b/src/input/live_input.rs @@ -136,7 +136,7 @@ impl LiveInput { /// Tries to get any information about this audio stream acquired during parsing. /// /// Only exists when this input is [`LiveInput::Parsed`]. - pub fn metadata(&mut self) -> Result { + pub fn metadata(&mut self) -> Result, MetadataError> { if let Some(parsed) = self.parsed_mut() { Ok(parsed.into()) } else { diff --git a/src/input/mod.rs b/src/input/mod.rs index 8bd41d7..a8e981a 100644 --- a/src/input/mod.rs +++ b/src/input/mod.rs @@ -205,8 +205,7 @@ impl Input { /// will always fail with [`AudioStreamError::Unsupported`]. pub async fn aux_metadata(&mut self) -> Result { match self { - Self::Lazy(ref mut composer) => composer.aux_metadata().await.map_err(Into::into), - Self::Live(_, Some(ref mut composer)) => + Self::Lazy(ref mut composer) | Self::Live(_, Some(ref mut composer)) => composer.aux_metadata().await.map_err(Into::into), Self::Live(_, None) => Err(AuxMetadataError::NoCompose), } @@ -216,7 +215,7 @@ impl Input { /// /// Only exists when this input is both [`Self::Live`] and has been fully parsed. /// In general, you probably want to use [`Self::aux_metadata`]. - pub fn metadata(&mut self) -> Result { + pub fn metadata(&mut self) -> Result, MetadataError> { if let Self::Live(live, _) = self { live.metadata() } else { diff --git a/src/lib.rs b/src/lib.rs index 5cf1a02..aace204 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -62,7 +62,7 @@ //! [codecs and formats provided by Symphonia]: https://github.com/pdeljanov/Symphonia#formats-demuxers //! [audiopus]: https://github.com/lakelezz/audiopus -#![warn(clippy::pedantic)] +#![warn(clippy::pedantic, rust_2018_idioms)] #![allow( // Allowed as they are too pedantic clippy::module_name_repetitions, @@ -76,6 +76,7 @@ // TODO: would require significant rewriting of all existing docs clippy::missing_errors_doc, clippy::missing_panics_doc, + clippy::doc_link_with_quotes, )] mod config; diff --git a/src/tracks/command.rs b/src/tracks/command.rs index f09f5a1..bc7e92f 100644 --- a/src/tracks/command.rs +++ b/src/tracks/command.rs @@ -28,7 +28,7 @@ pub enum TrackCommand { /// Register an event on this track. AddEvent(EventData), /// Run some closure on this track, with direct access to the core object. - Do(Box Option + Send + Sync + 'static>), + Do(Box) -> Option + Send + Sync + 'static>), /// Request a copy of this track's state. Request(Sender), /// Change the loop count/strategy of this track. diff --git a/src/tracks/handle.rs b/src/tracks/handle.rs index c1452f0..a0c9602 100644 --- a/src/tracks/handle.rs +++ b/src/tracks/handle.rs @@ -150,7 +150,7 @@ impl TrackHandle { /// [`Metadata`]: crate::input::Metadata pub fn action(&self, action: F) -> TrackResult<()> where - F: FnOnce(View) -> Option + Send + Sync + 'static, + F: FnOnce(View<'_>) -> Option + Send + Sync + 'static, { self.send(TrackCommand::Do(Box::new(action))) } diff --git a/src/tracks/queue.rs b/src/tracks/queue.rs index 286e2de..b3d2310 100644 --- a/src/tracks/queue.rs +++ b/src/tracks/queue.rs @@ -193,8 +193,8 @@ impl TrackQueue { pub(crate) async fn get_preload_time(track: &mut Track) -> Option { let meta = match track.input { - Input::Lazy(ref mut rec) => rec.aux_metadata().await.ok(), - Input::Live(_, Some(ref mut rec)) => rec.aux_metadata().await.ok(), + Input::Lazy(ref mut rec) | Input::Live(_, Some(ref mut rec)) => + rec.aux_metadata().await.ok(), Input::Live(_, None) => None, };