X-Git-Url: https://git.nihav.org/?p=nihav.git;a=blobdiff_plain;f=nihav-core%2Fsrc%2Fdemuxers%2Fmod.rs;h=08bf8f7353a9eaff9a5a98ae93eade6193f7ffdf;hp=300b6af8f5dbca2b661e4e51dbccb115ddb01de3;hb=e6aaad5c5273cd814b5748b7faf3751835a37217;hpb=625751036014b099fd9c126397bc973cb0543130 diff --git a/nihav-core/src/demuxers/mod.rs b/nihav-core/src/demuxers/mod.rs index 300b6af..08bf8f7 100644 --- a/nihav-core/src/demuxers/mod.rs +++ b/nihav-core/src/demuxers/mod.rs @@ -181,9 +181,10 @@ impl<'a> Iterator for StreamIter<'a> { } /// Seeking modes. -#[derive(Clone,Copy,PartialEq)] +#[derive(Clone,Copy,PartialEq,Default)] pub enum SeekIndexMode { /// No seeking index present. + #[default] None, /// Seeking index is present. Present, @@ -191,10 +192,6 @@ pub enum SeekIndexMode { Automatic, } -impl Default for SeekIndexMode { - fn default() -> Self { SeekIndexMode::None } -} - /// A structure holding seeking information. #[derive(Clone,Copy,Default)] pub struct SeekEntry { @@ -309,12 +306,7 @@ impl SeekIndex { } /// Returns stream reference for provided stream ID. pub fn get_stream_index(&mut self, id: u32) -> Option<&mut StreamSeekInfo> { - for stream in self.seek_info.iter_mut() { - if stream.id == id { - return Some(stream); - } - } - None + self.seek_info.iter_mut().find(|stream| stream.id == id) } /// Adds seeking information to the index. pub fn add_entry(&mut self, id: u32, entry: SeekEntry) { @@ -498,12 +490,7 @@ impl RegisteredDemuxers { } /// Searches for a demuxer that supports requested container format. pub fn find_demuxer(&self, name: &str) -> Option<&dyn DemuxerCreator> { - for &dmx in self.dmxs.iter() { - if dmx.get_name() == name { - return Some(dmx); - } - } - None + self.dmxs.iter().find(|&&dmx| dmx.get_name() == name).copied() } /// Provides an iterator over currently registered demuxers. pub fn iter(&self) -> std::slice::Iter<&dyn DemuxerCreator> { @@ -674,12 +661,7 @@ impl RegisteredRawDemuxers { } /// Searches for a demuxer that supports requested container format. pub fn find_demuxer(&self, name: &str) -> Option<&dyn RawDemuxerCreator> { - for &dmx in self.dmxs.iter() { - if dmx.get_name() == name { - return Some(dmx); - } - } - None + self.dmxs.iter().find(|&&dmx| dmx.get_name() == name).copied() } /// Provides an iterator over currently registered demuxers. pub fn iter(&self) -> std::slice::Iter<&dyn RawDemuxerCreator> {