diff options
Diffstat (limited to 'matroska/src')
-rw-r--r-- | matroska/src/bin/experiment.rs | 17 | ||||
-rw-r--r-- | matroska/src/bin/mkvdump.rs | 2 | ||||
-rw-r--r-- | matroska/src/read.rs | 2 | ||||
-rw-r--r-- | matroska/src/unflatten.rs | 4 | ||||
-rw-r--r-- | matroska/src/write.rs | 21 |
5 files changed, 24 insertions, 22 deletions
diff --git a/matroska/src/bin/experiment.rs b/matroska/src/bin/experiment.rs index 7787f4f..fe3096e 100644 --- a/matroska/src/bin/experiment.rs +++ b/matroska/src/bin/experiment.rs @@ -3,7 +3,9 @@ which is licensed under the GNU Affero General Public License (version 3); see /COPYING. Copyright (C) 2023 metamuffin <metamuffin.org> */ -use jellymatroska::{matroska::MatroskaTag, read::EbmlReader, write::EbmlWriter, unflatten::IterWithPos}; +use jellymatroska::{ + matroska::MatroskaTag, read::EbmlReader, unflatten::IterWithPos, write::EbmlWriter, +}; use std::{ fs::File, io::{stdout, BufReader, BufWriter}, @@ -11,7 +13,7 @@ use std::{ fn main() -> anyhow::Result<()> { env_logger::init_from_env("LOG"); - let path = std::env::args().skip(1).next().unwrap(); + let path = std::env::args().nth(1).unwrap(); let mut r = EbmlReader::new(BufReader::new(File::open(path)?)); let mut w = EbmlWriter::new(BufWriter::new(stdout()), 0); @@ -23,15 +25,10 @@ fn main() -> anyhow::Result<()> { while let Some(tag) = r.next() { let tag = tag?; - // println!("{} {tag:?}", r.position); - match tag { - tag => { - if MatroskaTag::is_master(tag.id())? { - eprintln!("{tag:?}"); - } - w.write_tag(&tag)?; - } + if MatroskaTag::is_master(tag.id())? { + eprintln!("{tag:?}"); } + w.write_tag(&tag)?; } Ok(()) } diff --git a/matroska/src/bin/mkvdump.rs b/matroska/src/bin/mkvdump.rs index ba05c19..ead6ece 100644 --- a/matroska/src/bin/mkvdump.rs +++ b/matroska/src/bin/mkvdump.rs @@ -8,7 +8,7 @@ use std::{fs::File, io::BufReader}; fn main() -> anyhow::Result<()> { env_logger::init_from_env("LOG"); - let path = std::env::args().skip(1).next().unwrap(); + let path = std::env::args().nth(1).unwrap(); let mut r = EbmlReader::new(BufReader::new(File::open(path)?)); while let Some(tag) = r.next() { diff --git a/matroska/src/read.rs b/matroska/src/read.rs index c99f304..e2bf15c 100644 --- a/matroska/src/read.rs +++ b/matroska/src/read.rs @@ -87,7 +87,7 @@ impl EbmlReader { Ok(EbmlSize::from_vint(self.read_vint_len()?)) } pub fn read_stuff(&mut self) -> Result<()> { - while let Some(e) = self.stack.last().map(|e| *e) { + while let Some(e) = self.stack.last().copied() { if let Some(end) = e.end { if self.position >= end { if self.position != end { diff --git a/matroska/src/unflatten.rs b/matroska/src/unflatten.rs index 663eebc..57fd35b 100644 --- a/matroska/src/unflatten.rs +++ b/matroska/src/unflatten.rs @@ -46,7 +46,7 @@ impl<'a> Unflatten<'a> { self.inner.position() } - pub fn next(&mut self) -> Option<Result<Unflat>> { + pub fn n(&mut self) -> Option<Result<Unflat>> { if self.stop { return None; } @@ -84,6 +84,6 @@ impl<'a> Unflatten<'a> { impl Drop for Unflatten<'_> { fn drop(&mut self) { - while let Some(_) = self.next() {} + while self.n().is_some() {} } } diff --git a/matroska/src/write.rs b/matroska/src/write.rs index 8c1e7bb..6f8aad4 100644 --- a/matroska/src/write.rs +++ b/matroska/src/write.rs @@ -82,7 +82,7 @@ impl EbmlWriter { let mut bytes = i.to_be_bytes(); let trunc = &mut bytes[(8 - len)..]; trunc[0] |= 1 << (8 - len); - self.write(&trunc) + self.write(trunc) } } @@ -103,7 +103,7 @@ pub trait WriteValue { impl WriteValue for i64 { fn write_to(&self, w: &mut Vec<u8>) -> Result<()> { - Ok(match 64 - self.leading_zeros() { + match 64 - self.leading_zeros() { x if x <= 8 => { w.push(0x81); w.extend_from_slice(&(*self as i8).to_be_bytes()); @@ -120,12 +120,13 @@ impl WriteValue for i64 { w.push(0x88); w.extend_from_slice(&self.to_be_bytes()); } - }) + }; + Ok(()) } } impl WriteValue for u64 { fn write_to(&self, w: &mut Vec<u8>) -> Result<()> { - Ok(match 64 - self.leading_zeros() { + match 64 - self.leading_zeros() { x if x <= 8 => { w.push(0x81); w.extend_from_slice(&(*self as u8).to_be_bytes()); @@ -142,7 +143,8 @@ impl WriteValue for u64 { w.push(0x88); w.extend_from_slice(&self.to_be_bytes()); } - }) + }; + Ok(()) } } impl WriteValue for f64 { @@ -155,7 +157,7 @@ impl WriteValue for f64 { impl WriteValue for Vec<u8> { fn write_to(&self, w: &mut Vec<u8>) -> Result<(), anyhow::Error> { write_vint(w, self.len() as u64)?; - w.extend_from_slice(&self); + w.extend_from_slice(self); Ok(()) } } @@ -181,7 +183,10 @@ impl WriteValue for Master { fn write_to(&self, w: &mut Vec<u8>) -> Result<()> { match self { Master::Start => EbmlSize::Unknown.write_to(w), - Master::End => Ok(w.clear()), + Master::End => { + w.clear(); + Ok(()) + } Master::Collected(c) => { let mut ib = vec![]; for c in c { @@ -203,6 +208,6 @@ pub fn write_vint(w: &mut Vec<u8>, i: u64) -> Result<()> { let mut bytes = i.to_be_bytes(); let trunc = &mut bytes[(8 - len)..]; trunc[0] |= 1 << (8 - len); - w.extend_from_slice(&trunc); + w.extend_from_slice(trunc); Ok(()) } |