diff --git a/Cargo.toml b/Cargo.toml
index 1fdedb9acf205f69f831ece737ca6eca2485c58c..976e1a58ab7563cce92235b01bfc1f3135bc3dd1 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -42,16 +42,17 @@ panic = "abort"
 [lints.rust]
 unsafe_code = "forbid"
 unstable_features = "forbid"
-dead_code = "allow"
+dead_code = "forbid"
 unused_variables = "forbid"
 unused_mut = "forbid"
 
+# #![deny(clippy::all)] // in 1st line in every .rs file
 [lints.clippy]
 todo = "forbid"
 empty_loop = "allow"
 infinite_loop = "deny"
 mem_forget = "deny"
-disallowed_methods = "warn"
+disallowed_methods = "deny"
 
 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
 
diff --git a/doc/mp4duration2/enum.Mp4Error.html b/doc/mp4duration2/enum.Mp4Error.html
index 118636610eab6e3ae103dbfe6ebdc95306bb02b5..52b4bdab892103bc448aac32c870d71e0fc0a743 100644
--- a/doc/mp4duration2/enum.Mp4Error.html
+++ b/doc/mp4duration2/enum.Mp4Error.html
@@ -1,10 +1,10 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `Mp4Error` enum in crate `mp4duration2`."><title>Mp4Error in mp4duration2 - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-b0742ba02757f159.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="mp4duration2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.83.0 (90b35a623 2024-11-26)" data-channel="1.83.0" data-search-js="search-f0d225181b97f9a4.js" data-settings-js="settings-805db61a62df4bd2.js" ><script src="../static.files/storage-1d39b6787ed640ff.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-f070b9041d14864c.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-0111fcff984fae8f.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../mp4duration2/index.html">mp4duration2</a><span class="version">0.1.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Mp4Error</a></h2><h3><a href="#variants">Variants</a></h3><ul class="block variant"><li><a href="#variant.InvalidAtom" title="InvalidAtom">InvalidAtom</a></li><li><a href="#variant.InvalidAtomSize" title="InvalidAtomSize">InvalidAtomSize</a></li><li><a href="#variant.InvalidDuration" title="InvalidDuration">InvalidDuration</a></li><li><a href="#variant.InvalidMp4Format" title="InvalidMp4Format">InvalidMp4Format</a></li><li><a href="#variant.IoError" title="IoError">IoError</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block trait-implementation"><li><a href="#impl-Debug-for-Mp4Error" title="Debug">Debug</a></li><li><a href="#impl-From%3CError%3E-for-Mp4Error" title="From&#60;Error&#62;">From&#60;Error&#62;</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-RefUnwindSafe-for-Mp4Error" title="!RefUnwindSafe">!RefUnwindSafe</a></li><li><a href="#impl-UnwindSafe-for-Mp4Error" title="!UnwindSafe">!UnwindSafe</a></li><li><a href="#impl-Freeze-for-Mp4Error" title="Freeze">Freeze</a></li><li><a href="#impl-Send-for-Mp4Error" title="Send">Send</a></li><li><a href="#impl-Sync-for-Mp4Error" title="Sync">Sync</a></li><li><a href="#impl-Unpin-for-Mp4Error" title="Unpin">Unpin</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block blanket-implementation"><li><a href="#impl-Any-for-T" title="Any">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T" title="Borrow&#60;T&#62;">Borrow&#60;T&#62;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T" title="BorrowMut&#60;T&#62;">BorrowMut&#60;T&#62;</a></li><li><a href="#impl-From%3CT%3E-for-T" title="From&#60;T&#62;">From&#60;T&#62;</a></li><li><a href="#impl-Into%3CU%3E-for-T" title="Into&#60;U&#62;">Into&#60;U&#62;</a></li><li><a href="#impl-TryFrom%3CU%3E-for-T" title="TryFrom&#60;U&#62;">TryFrom&#60;U&#62;</a></li><li><a href="#impl-TryInto%3CU%3E-for-T" title="TryInto&#60;U&#62;">TryInto&#60;U&#62;</a></li></ul></section><div id="rustdoc-modnav"><h2 class="in-crate"><a href="index.html">In crate mp4duration2</a></h2></div></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><span class="rustdoc-breadcrumbs"><a href="index.html">mp4duration2</a></span><h1>Enum <span class="enum">Mp4Error</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/mp4duration2/main.rs.html#7-13">source</a> </span></div><pre class="rust item-decl"><code>pub enum Mp4Error {
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `Mp4Error` enum in crate `mp4duration2`."><title>Mp4Error in mp4duration2 - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-b0742ba02757f159.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="mp4duration2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.83.0 (90b35a623 2024-11-26)" data-channel="1.83.0" data-search-js="search-f0d225181b97f9a4.js" data-settings-js="settings-805db61a62df4bd2.js" ><script src="../static.files/storage-1d39b6787ed640ff.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-f070b9041d14864c.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-0111fcff984fae8f.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../mp4duration2/index.html">mp4duration2</a><span class="version">0.1.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Mp4Error</a></h2><h3><a href="#variants">Variants</a></h3><ul class="block variant"><li><a href="#variant.InvalidAtom" title="InvalidAtom">InvalidAtom</a></li><li><a href="#variant.InvalidAtomSize" title="InvalidAtomSize">InvalidAtomSize</a></li><li><a href="#variant.InvalidDuration" title="InvalidDuration">InvalidDuration</a></li><li><a href="#variant.InvalidMp4Format" title="InvalidMp4Format">InvalidMp4Format</a></li><li><a href="#variant.IoError" title="IoError">IoError</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block trait-implementation"><li><a href="#impl-Debug-for-Mp4Error" title="Debug">Debug</a></li><li><a href="#impl-From%3CError%3E-for-Mp4Error" title="From&#60;Error&#62;">From&#60;Error&#62;</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-RefUnwindSafe-for-Mp4Error" title="!RefUnwindSafe">!RefUnwindSafe</a></li><li><a href="#impl-UnwindSafe-for-Mp4Error" title="!UnwindSafe">!UnwindSafe</a></li><li><a href="#impl-Freeze-for-Mp4Error" title="Freeze">Freeze</a></li><li><a href="#impl-Send-for-Mp4Error" title="Send">Send</a></li><li><a href="#impl-Sync-for-Mp4Error" title="Sync">Sync</a></li><li><a href="#impl-Unpin-for-Mp4Error" title="Unpin">Unpin</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block blanket-implementation"><li><a href="#impl-Any-for-T" title="Any">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T" title="Borrow&#60;T&#62;">Borrow&#60;T&#62;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T" title="BorrowMut&#60;T&#62;">BorrowMut&#60;T&#62;</a></li><li><a href="#impl-From%3CT%3E-for-T" title="From&#60;T&#62;">From&#60;T&#62;</a></li><li><a href="#impl-Into%3CU%3E-for-T" title="Into&#60;U&#62;">Into&#60;U&#62;</a></li><li><a href="#impl-TryFrom%3CU%3E-for-T" title="TryFrom&#60;U&#62;">TryFrom&#60;U&#62;</a></li><li><a href="#impl-TryInto%3CU%3E-for-T" title="TryInto&#60;U&#62;">TryInto&#60;U&#62;</a></li></ul></section><div id="rustdoc-modnav"><h2 class="in-crate"><a href="index.html">In crate mp4duration2</a></h2></div></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><span class="rustdoc-breadcrumbs"><a href="index.html">mp4duration2</a></span><h1>Enum <span class="enum">Mp4Error</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/mp4duration2/main.rs.html#9-15">source</a> </span></div><pre class="rust item-decl"><code>pub enum Mp4Error {
     IoError(<a class="struct" href="https://doc.rust-lang.org/1.83.0/std/io/error/struct.Error.html" title="struct std::io::error::Error">Error</a>),
     InvalidMp4Format,
     InvalidAtom,
     InvalidAtomSize,
     InvalidDuration,
-}</code></pre><h2 id="variants" class="variants section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.IoError" class="variant"><a href="#variant.IoError" class="anchor">§</a><h3 class="code-header">IoError(<a class="struct" href="https://doc.rust-lang.org/1.83.0/std/io/error/struct.Error.html" title="struct std::io::error::Error">Error</a>)</h3></section><section id="variant.InvalidMp4Format" class="variant"><a href="#variant.InvalidMp4Format" class="anchor">§</a><h3 class="code-header">InvalidMp4Format</h3></section><section id="variant.InvalidAtom" class="variant"><a href="#variant.InvalidAtom" class="anchor">§</a><h3 class="code-header">InvalidAtom</h3></section><section id="variant.InvalidAtomSize" class="variant"><a href="#variant.InvalidAtomSize" class="anchor">§</a><h3 class="code-header">InvalidAtomSize</h3></section><section id="variant.InvalidDuration" class="variant"><a href="#variant.InvalidDuration" class="anchor">§</a><h3 class="code-header">InvalidDuration</h3></section></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Debug-for-Mp4Error" class="impl"><a class="src rightside" href="../src/mp4duration2/main.rs.html#6">source</a><a href="#impl-Debug-for-Mp4Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.Mp4Error.html" title="enum mp4duration2::Mp4Error">Mp4Error</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl"><a class="src rightside" href="../src/mp4duration2/main.rs.html#6">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.83.0/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.83.0/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/1.83.0/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/1.83.0/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3CError%3E-for-Mp4Error" class="impl"><a class="src rightside" href="../src/mp4duration2/main.rs.html#15-19">source</a><a href="#impl-From%3CError%3E-for-Mp4Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.83.0/std/io/error/struct.Error.html" title="struct std::io::error::Error">Error</a>&gt; for <a class="enum" href="enum.Mp4Error.html" title="enum mp4duration2::Mp4Error">Mp4Error</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from" class="method trait-impl"><a class="src rightside" href="../src/mp4duration2/main.rs.html#16-18">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.83.0/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: <a class="struct" href="https://doc.rust-lang.org/1.83.0/std/io/error/struct.Error.html" title="struct std::io::error::Error">Error</a>) -&gt; <a class="enum" href="enum.Mp4Error.html" title="enum mp4duration2::Mp4Error">Mp4Error</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-Freeze-for-Mp4Error" class="impl"><a href="#impl-Freeze-for-Mp4Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a> for <a class="enum" href="enum.Mp4Error.html" title="enum mp4duration2::Mp4Error">Mp4Error</a></h3></section><section id="impl-RefUnwindSafe-for-Mp4Error" class="impl"><a href="#impl-RefUnwindSafe-for-Mp4Error" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/1.83.0/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.Mp4Error.html" title="enum mp4duration2::Mp4Error">Mp4Error</a></h3></section><section id="impl-Send-for-Mp4Error" class="impl"><a href="#impl-Send-for-Mp4Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.Mp4Error.html" title="enum mp4duration2::Mp4Error">Mp4Error</a></h3></section><section id="impl-Sync-for-Mp4Error" class="impl"><a href="#impl-Sync-for-Mp4Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.Mp4Error.html" title="enum mp4duration2::Mp4Error">Mp4Error</a></h3></section><section id="impl-Unpin-for-Mp4Error" class="impl"><a href="#impl-Unpin-for-Mp4Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.Mp4Error.html" title="enum mp4duration2::Mp4Error">Mp4Error</a></h3></section><section id="impl-UnwindSafe-for-Mp4Error" class="impl"><a href="#impl-UnwindSafe-for-Mp4Error" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/1.83.0/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.Mp4Error.html" title="enum mp4duration2::Mp4Error">Mp4Error</a></h3></section></div><h2 id="blanket-implementations" class="section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="toggle implementors-toggle"><summary><section id="impl-Any-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.83.0/src/core/any.rs.html#138">source</a><a href="#impl-Any-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<div class="where">where
+}</code></pre><h2 id="variants" class="variants section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.IoError" class="variant"><a href="#variant.IoError" class="anchor">§</a><h3 class="code-header">IoError(<a class="struct" href="https://doc.rust-lang.org/1.83.0/std/io/error/struct.Error.html" title="struct std::io::error::Error">Error</a>)</h3></section><section id="variant.InvalidMp4Format" class="variant"><a href="#variant.InvalidMp4Format" class="anchor">§</a><h3 class="code-header">InvalidMp4Format</h3></section><section id="variant.InvalidAtom" class="variant"><a href="#variant.InvalidAtom" class="anchor">§</a><h3 class="code-header">InvalidAtom</h3></section><section id="variant.InvalidAtomSize" class="variant"><a href="#variant.InvalidAtomSize" class="anchor">§</a><h3 class="code-header">InvalidAtomSize</h3></section><section id="variant.InvalidDuration" class="variant"><a href="#variant.InvalidDuration" class="anchor">§</a><h3 class="code-header">InvalidDuration</h3></section></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Debug-for-Mp4Error" class="impl"><a class="src rightside" href="../src/mp4duration2/main.rs.html#8">source</a><a href="#impl-Debug-for-Mp4Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.Mp4Error.html" title="enum mp4duration2::Mp4Error">Mp4Error</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl"><a class="src rightside" href="../src/mp4duration2/main.rs.html#8">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.83.0/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.83.0/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/1.83.0/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/1.83.0/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3CError%3E-for-Mp4Error" class="impl"><a class="src rightside" href="../src/mp4duration2/main.rs.html#17-21">source</a><a href="#impl-From%3CError%3E-for-Mp4Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.83.0/std/io/error/struct.Error.html" title="struct std::io::error::Error">Error</a>&gt; for <a class="enum" href="enum.Mp4Error.html" title="enum mp4duration2::Mp4Error">Mp4Error</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from" class="method trait-impl"><a class="src rightside" href="../src/mp4duration2/main.rs.html#18-20">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.83.0/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(err: <a class="struct" href="https://doc.rust-lang.org/1.83.0/std/io/error/struct.Error.html" title="struct std::io::error::Error">Error</a>) -&gt; <a class="enum" href="enum.Mp4Error.html" title="enum mp4duration2::Mp4Error">Mp4Error</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-Freeze-for-Mp4Error" class="impl"><a href="#impl-Freeze-for-Mp4Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a> for <a class="enum" href="enum.Mp4Error.html" title="enum mp4duration2::Mp4Error">Mp4Error</a></h3></section><section id="impl-RefUnwindSafe-for-Mp4Error" class="impl"><a href="#impl-RefUnwindSafe-for-Mp4Error" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/1.83.0/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.Mp4Error.html" title="enum mp4duration2::Mp4Error">Mp4Error</a></h3></section><section id="impl-Send-for-Mp4Error" class="impl"><a href="#impl-Send-for-Mp4Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.Mp4Error.html" title="enum mp4duration2::Mp4Error">Mp4Error</a></h3></section><section id="impl-Sync-for-Mp4Error" class="impl"><a href="#impl-Sync-for-Mp4Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.Mp4Error.html" title="enum mp4duration2::Mp4Error">Mp4Error</a></h3></section><section id="impl-Unpin-for-Mp4Error" class="impl"><a href="#impl-Unpin-for-Mp4Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.Mp4Error.html" title="enum mp4duration2::Mp4Error">Mp4Error</a></h3></section><section id="impl-UnwindSafe-for-Mp4Error" class="impl"><a href="#impl-UnwindSafe-for-Mp4Error" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/1.83.0/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.Mp4Error.html" title="enum mp4duration2::Mp4Error">Mp4Error</a></h3></section></div><h2 id="blanket-implementations" class="section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="toggle implementors-toggle"><summary><section id="impl-Any-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.83.0/src/core/any.rs.html#138">source</a><a href="#impl-Any-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<div class="where">where
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.83.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.83.0/src/core/any.rs.html#139">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.83.0/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.83.0/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/1.83.0/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.83.0/src/core/borrow.rs.html#209">source</a><a href="#impl-Borrow%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T<div class="where">where
     T: ?<a class="trait" href="https://doc.rust-lang.org/1.83.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.83.0/src/core/borrow.rs.html#211">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.83.0/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.83.0/std/primitive.reference.html">&amp;T</a></h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/1.83.0/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.83.0/src/core/borrow.rs.html#217">source</a><a href="#impl-BorrowMut%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T<div class="where">where
     T: ?<a class="trait" href="https://doc.rust-lang.org/1.83.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.83.0/src/core/borrow.rs.html#218">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.83.0/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.83.0/std/primitive.reference.html">&amp;mut T</a></h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/1.83.0/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.83.0/src/core/convert/mod.rs.html#765">source</a><a href="#impl-From%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.83.0/src/core/convert/mod.rs.html#768">source</a><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.83.0/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -&gt; T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
diff --git a/doc/mp4duration2/fn.f_convertsecs.html b/doc/mp4duration2/fn.f_convertsecs.html
index f221b56f8ddd5cdcf5eaffb617624962183a0178..7143ee0af115779c2712c73e4dd7832c771dd166 100644
--- a/doc/mp4duration2/fn.f_convertsecs.html
+++ b/doc/mp4duration2/fn.f_convertsecs.html
@@ -1 +1 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `f_convertsecs` fn in crate `mp4duration2`."><title>f_convertsecs in mp4duration2 - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-b0742ba02757f159.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="mp4duration2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.83.0 (90b35a623 2024-11-26)" data-channel="1.83.0" data-search-js="search-f0d225181b97f9a4.js" data-settings-js="settings-805db61a62df4bd2.js" ><script src="../static.files/storage-1d39b6787ed640ff.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-f070b9041d14864c.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-0111fcff984fae8f.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../mp4duration2/index.html">mp4duration2</a><span class="version">0.1.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"></div></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><span class="rustdoc-breadcrumbs"><a href="index.html">mp4duration2</a></span><h1>Function <span class="fn">f_convertsecs</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/mp4duration2/main.rs.html#92-111">source</a> </span></div><pre class="rust item-decl"><code>pub(crate) fn f_convertsecs(seconds: <a class="primitive" href="https://doc.rust-lang.org/1.83.0/std/primitive.u64.html">u64</a>)</code></pre></section></div></main></body></html>
\ No newline at end of file
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `f_convertsecs` fn in crate `mp4duration2`."><title>f_convertsecs in mp4duration2 - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-b0742ba02757f159.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="mp4duration2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.83.0 (90b35a623 2024-11-26)" data-channel="1.83.0" data-search-js="search-f0d225181b97f9a4.js" data-settings-js="settings-805db61a62df4bd2.js" ><script src="../static.files/storage-1d39b6787ed640ff.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-f070b9041d14864c.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-0111fcff984fae8f.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../mp4duration2/index.html">mp4duration2</a><span class="version">0.1.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"></div></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><span class="rustdoc-breadcrumbs"><a href="index.html">mp4duration2</a></span><h1>Function <span class="fn">f_convertsecs</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/mp4duration2/main.rs.html#94-113">source</a> </span></div><pre class="rust item-decl"><code>pub(crate) fn f_convertsecs(seconds: <a class="primitive" href="https://doc.rust-lang.org/1.83.0/std/primitive.u64.html">u64</a>)</code></pre></section></div></main></body></html>
\ No newline at end of file
diff --git a/doc/mp4duration2/fn.get_video_duration.html b/doc/mp4duration2/fn.get_video_duration.html
index f2b26f505617fc9cf5319b471e0ed889abb8d652..9230e5d33341099e5d159a7295f2c4001e2175f2 100644
--- a/doc/mp4duration2/fn.get_video_duration.html
+++ b/doc/mp4duration2/fn.get_video_duration.html
@@ -1 +1 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `get_video_duration` fn in crate `mp4duration2`."><title>get_video_duration in mp4duration2 - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-b0742ba02757f159.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="mp4duration2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.83.0 (90b35a623 2024-11-26)" data-channel="1.83.0" data-search-js="search-f0d225181b97f9a4.js" data-settings-js="settings-805db61a62df4bd2.js" ><script src="../static.files/storage-1d39b6787ed640ff.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-f070b9041d14864c.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-0111fcff984fae8f.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../mp4duration2/index.html">mp4duration2</a><span class="version">0.1.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"></div></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><span class="rustdoc-breadcrumbs"><a href="index.html">mp4duration2</a></span><h1>Function <span class="fn">get_video_duration</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/mp4duration2/main.rs.html#21-90">source</a> </span></div><pre class="rust item-decl"><code>pub fn get_video_duration(path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.83.0/std/primitive.str.html">str</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.83.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.83.0/std/primitive.f64.html">f64</a>, <a class="enum" href="enum.Mp4Error.html" title="enum mp4duration2::Mp4Error">Mp4Error</a>&gt;</code></pre></section></div></main></body></html>
\ No newline at end of file
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `get_video_duration` fn in crate `mp4duration2`."><title>get_video_duration in mp4duration2 - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-b0742ba02757f159.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="mp4duration2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.83.0 (90b35a623 2024-11-26)" data-channel="1.83.0" data-search-js="search-f0d225181b97f9a4.js" data-settings-js="settings-805db61a62df4bd2.js" ><script src="../static.files/storage-1d39b6787ed640ff.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-f070b9041d14864c.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-0111fcff984fae8f.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../mp4duration2/index.html">mp4duration2</a><span class="version">0.1.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"></div></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><span class="rustdoc-breadcrumbs"><a href="index.html">mp4duration2</a></span><h1>Function <span class="fn">get_video_duration</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/mp4duration2/main.rs.html#23-92">source</a> </span></div><pre class="rust item-decl"><code>pub fn get_video_duration(path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.83.0/std/primitive.str.html">str</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.83.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.83.0/std/primitive.f64.html">f64</a>, <a class="enum" href="enum.Mp4Error.html" title="enum mp4duration2::Mp4Error">Mp4Error</a>&gt;</code></pre></section></div></main></body></html>
\ No newline at end of file
diff --git a/doc/mp4duration2/fn.main.html b/doc/mp4duration2/fn.main.html
index 731caa6dfc103d4f8448b4b0ddfaad4989d6ca78..812bb39d305a0dfd3de89e262ca6f1513579dd6e 100644
--- a/doc/mp4duration2/fn.main.html
+++ b/doc/mp4duration2/fn.main.html
@@ -1 +1 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `main` fn in crate `mp4duration2`."><title>main in mp4duration2 - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-b0742ba02757f159.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="mp4duration2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.83.0 (90b35a623 2024-11-26)" data-channel="1.83.0" data-search-js="search-f0d225181b97f9a4.js" data-settings-js="settings-805db61a62df4bd2.js" ><script src="../static.files/storage-1d39b6787ed640ff.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-f070b9041d14864c.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-0111fcff984fae8f.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../mp4duration2/index.html">mp4duration2</a><span class="version">0.1.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"></div></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><span class="rustdoc-breadcrumbs"><a href="index.html">mp4duration2</a></span><h1>Function <span class="fn">main</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/mp4duration2/main.rs.html#113-199">source</a> </span></div><pre class="rust item-decl"><code>pub(crate) fn main()</code></pre></section></div></main></body></html>
\ No newline at end of file
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `main` fn in crate `mp4duration2`."><title>main in mp4duration2 - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-b0742ba02757f159.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="mp4duration2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.83.0 (90b35a623 2024-11-26)" data-channel="1.83.0" data-search-js="search-f0d225181b97f9a4.js" data-settings-js="settings-805db61a62df4bd2.js" ><script src="../static.files/storage-1d39b6787ed640ff.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-f070b9041d14864c.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-0111fcff984fae8f.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../mp4duration2/index.html">mp4duration2</a><span class="version">0.1.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"></div></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><span class="rustdoc-breadcrumbs"><a href="index.html">mp4duration2</a></span><h1>Function <span class="fn">main</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/mp4duration2/main.rs.html#115-201">source</a> </span></div><pre class="rust item-decl"><code>pub(crate) fn main()</code></pre></section></div></main></body></html>
\ No newline at end of file
diff --git a/doc/mp4duration2/index.html b/doc/mp4duration2/index.html
index 1914e2e463cb2c48ed4692673e957ec630bc14db..6a669b37b303938d826d82c9d9c0d898de08e6fd 100644
--- a/doc/mp4duration2/index.html
+++ b/doc/mp4duration2/index.html
@@ -1 +1 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `mp4duration2` crate."><title>mp4duration2 - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-b0742ba02757f159.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="mp4duration2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.83.0 (90b35a623 2024-11-26)" data-channel="1.83.0" data-search-js="search-f0d225181b97f9a4.js" data-settings-js="settings-805db61a62df4bd2.js" ><script src="../static.files/storage-1d39b6787ed640ff.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-f070b9041d14864c.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-0111fcff984fae8f.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod crate"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../mp4duration2/index.html">mp4duration2</a><span class="version">0.1.0</span></h2></div><div class="sidebar-elems"><ul class="block"><li><a id="all-types" href="all.html">All Items</a></li></ul><section id="rustdoc-toc"><h3><a href="#enums">Crate Items</a></h3><ul class="block"><li><a href="#enums" title="Enums">Enums</a></li><li><a href="#functions" title="Functions">Functions</a></li></ul></section><div id="rustdoc-modnav"></div></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Crate <span>mp4duration2</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/mp4duration2/main.rs.html#1-199">source</a> </span></div><h2 id="enums" class="section-header">Enums<a href="#enums" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="enum" href="enum.Mp4Error.html" title="enum mp4duration2::Mp4Error">Mp4Error</a></div></li></ul><h2 id="functions" class="section-header">Functions<a href="#functions" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="fn" href="fn.f_convertsecs.html" title="fn mp4duration2::f_convertsecs">f_<wbr>convertsecs</a><span title="Restricted Visibility">&nbsp;🔒</span> </div></li><li><div class="item-name"><a class="fn" href="fn.get_video_duration.html" title="fn mp4duration2::get_video_duration">get_<wbr>video_<wbr>duration</a></div></li><li><div class="item-name"><a class="fn" href="fn.main.html" title="fn mp4duration2::main">main</a><span title="Restricted Visibility">&nbsp;🔒</span> </div></li></ul></section></div></main></body></html>
\ No newline at end of file
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `mp4duration2` crate."><title>mp4duration2 - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-b0742ba02757f159.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="mp4duration2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.83.0 (90b35a623 2024-11-26)" data-channel="1.83.0" data-search-js="search-f0d225181b97f9a4.js" data-settings-js="settings-805db61a62df4bd2.js" ><script src="../static.files/storage-1d39b6787ed640ff.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-f070b9041d14864c.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-0111fcff984fae8f.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod crate"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../mp4duration2/index.html">mp4duration2</a><span class="version">0.1.0</span></h2></div><div class="sidebar-elems"><ul class="block"><li><a id="all-types" href="all.html">All Items</a></li></ul><section id="rustdoc-toc"><h3><a href="#enums">Crate Items</a></h3><ul class="block"><li><a href="#enums" title="Enums">Enums</a></li><li><a href="#functions" title="Functions">Functions</a></li></ul></section><div id="rustdoc-modnav"></div></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Crate <span>mp4duration2</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/mp4duration2/main.rs.html#1-201">source</a> </span></div><h2 id="enums" class="section-header">Enums<a href="#enums" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="enum" href="enum.Mp4Error.html" title="enum mp4duration2::Mp4Error">Mp4Error</a></div></li></ul><h2 id="functions" class="section-header">Functions<a href="#functions" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="fn" href="fn.f_convertsecs.html" title="fn mp4duration2::f_convertsecs">f_<wbr>convertsecs</a><span title="Restricted Visibility">&nbsp;🔒</span> </div></li><li><div class="item-name"><a class="fn" href="fn.get_video_duration.html" title="fn mp4duration2::get_video_duration">get_<wbr>video_<wbr>duration</a></div></li><li><div class="item-name"><a class="fn" href="fn.main.html" title="fn mp4duration2::main">main</a><span title="Restricted Visibility">&nbsp;🔒</span> </div></li></ul></section></div></main></body></html>
\ No newline at end of file
diff --git a/doc/search-index.js b/doc/search-index.js
index 445711d2b819951784239d07bb3a230f9b99d145..aada71a8f57fef5bce5f3c2124b6f9bf716740d6 100644
--- a/doc/search-index.js
+++ b/doc/search-index.js
@@ -1,4 +1,4 @@
-var searchIndex = new Map(JSON.parse('[["mp4duration2",{"t":"PPPPPGNNHNNNHNHNNN","n":["InvalidAtom","InvalidAtomSize","InvalidDuration","InvalidMp4Format","IoError","Mp4Error","borrow","borrow_mut","f_convertsecs","fmt","from","","get_video_duration","into","main","try_from","try_into","type_id"],"q":[[0,"mp4duration2"],[18,"core::fmt"],[19,"std::io::error"],[20,"core::result"],[21,"core::any"]],"i":"j0000`00`000`0`000","f":"``````{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{fh}{{{b{j}}{b{dl}}}n}{cc{}}{A`j}{{{b{Ab}}}{{Af{Adj}}}}{{}c{}}{{}h}{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{bAh}","D":"d","p":[[1,"reference"],[0,"mut"],[1,"u64"],[1,"unit"],[6,"Mp4Error",0],[5,"Formatter",18],[8,"Result",18],[5,"Error",19],[1,"str"],[1,"f64"],[6,"Result",20],[5,"TypeId",21]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAABAAAwAAAAoADAABAA8AAwA="}],["mp4duration2",{"t":"PPPPPGPNNHNNNHNHNNN","n":["InvalidAtom","InvalidAtomSize","InvalidDuration","InvalidMp4Format","IoError","Mp4Error","None","borrow","borrow_mut","f_convertsecs","fmt","from","","get_video_duration","into","main","try_from","try_into","type_id"],"q":[[0,"mp4duration2"],[19,"core::fmt"],[20,"std::io::error"],[21,"core::result"],[22,"core::any"]],"i":"j0000`000`000`0`000","f":"```````{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{fh}{{{b{j}}{b{dl}}}n}{cc{}}{A`j}{{{b{Ab}}}{{Af{Adj}}}}{{}c{}}{{}h}{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{bAh}","D":"d","p":[[1,"reference"],[0,"mut"],[1,"u64"],[1,"unit"],[6,"Mp4Error",0],[5,"Formatter",19],[8,"Result",19],[5,"Error",20],[1,"str"],[1,"f64"],[6,"Result",21],[5,"TypeId",22]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAABEAAwAAAAsADQABABAAAwA="}]]'));
+var searchIndex = new Map(JSON.parse('[["mp4duration2",{"t":"PPPPPGNNHNNNHNHNNN","n":["InvalidAtom","InvalidAtomSize","InvalidDuration","InvalidMp4Format","IoError","Mp4Error","borrow","borrow_mut","f_convertsecs","fmt","from","","get_video_duration","into","main","try_from","try_into","type_id"],"q":[[0,"mp4duration2"],[18,"core::fmt"],[19,"std::io::error"],[20,"core::result"],[21,"core::any"]],"i":"j0000`00`000`0`000","f":"``````{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{fh}{{{b{j}}{b{dl}}}n}{cc{}}{A`j}{{{b{Ab}}}{{Af{Adj}}}}{{}c{}}{{}h}{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{bAh}","D":"d","p":[[1,"reference"],[0,"mut"],[1,"u64"],[1,"unit"],[6,"Mp4Error",0],[5,"Formatter",18],[8,"Result",18],[5,"Error",19],[1,"str"],[1,"f64"],[6,"Result",20],[5,"TypeId",21]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAABAAAwAAAAoADAABAA8AAwA="}]]'));
 if (typeof exports !== 'undefined') exports.searchIndex = searchIndex;
 else if (window.initSearch) window.initSearch(searchIndex);
-//{"start":39,"fragment_lengths":[788,799]}
\ No newline at end of file
+//{"start":39,"fragment_lengths":[788]}
\ No newline at end of file
diff --git a/doc/src/mp4duration2/main.rs.html b/doc/src/mp4duration2/main.rs.html
index 5a21d5bb355a18d8bf0e379a80e74c458517aad1..64222c46dcb94ecae687935e5febd68e35c7eadf 100644
--- a/doc/src/mp4duration2/main.rs.html
+++ b/doc/src/mp4duration2/main.rs.html
@@ -197,7 +197,11 @@
 <a href="#196" id="196">196</a>
 <a href="#197" id="197">197</a>
 <a href="#198" id="198">198</a>
-<a href="#199" id="199">199</a></pre></div><pre class="rust"><code><span class="kw">use </span>sprintf::sprintf;
+<a href="#199" id="199">199</a>
+<a href="#200" id="200">200</a>
+<a href="#201" id="201">201</a></pre></div><pre class="rust"><code><span class="attr">#![deny(clippy::all)] </span><span class="comment">// in 1st line in every .rs file
+
+</span><span class="kw">use </span>sprintf::sprintf;
 <span class="kw">use </span>std::env;
 <span class="kw">use </span>std::fs::File;
 <span class="kw">use </span>std::io::{<span class="self">self</span>, Read};
diff --git a/mp4duration2.git b/mp4duration2.git
deleted file mode 100644
index b30cae04b0eb7eddccba7369a563dad407a5d038..0000000000000000000000000000000000000000
--- a/mp4duration2.git
+++ /dev/null
@@ -1,90 +0,0 @@
-
-
-
-
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="utf-8">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <meta name="description" content="">
-    <meta name="author" content="">
-
-    <title>Login</title>
-
-    <link href="/assets/css/bootstrap.min.css" rel="stylesheet">
-    <link href="/assets/css/font-awesome.min.css" rel="stylesheet">
-    <link href="/assets/css/bootstrap-social.css" rel="stylesheet">
-    <link href="/assets/css/main.css" rel="stylesheet">
-    <link rel="shortcut icon" type="image/png" href="/assets/images/favicon.png">
-
-    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
-    <!--[if lt IE 9]>
-    <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
-    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
-    <![endif]-->
-
-    <script src='https://www.google.com/recaptcha/api.js'></script>
-</head>
-<body>
-    <header id="page_header" xmlns="http://www.w3.org/1999/html">
-        <div class="container header" style="position: relative;background-image: url('https://www.opendesktop.org/images_sys/store_kde/kde-bg.png');background-color: #aaa;color: #0A0A0A;height: 90px; width: 100%;padding-top: 8px;margin-top: 15px;">
-
-        <section class="container" style="width:100%;">
-            <section class="wrapper" style="padding-left: 40px;">
-
-                <section>
-
-                    <figure class="logo-header">
-                        <a href="https://www.opendesktop.org">
-                            <img width="400px" border="0"
-                            src="https://www.opendesktop.org/images_sys/store_opendesktop/logo.png">
-                        </a>
-                    </figure>
-
-                </section>
-
-            </section>
-        </section>
-
-        </div>
-    </header>
-
-    <div class="container">
-        
-     
-
-<form action="/login?next=%2Foauth%2Fauthorize%3Fclient_id%3DBzeY4MotIOUTXTzPwbhw%26redirect_uri%3Dhttps%253A%252F%252Fwww.opencode.net%252Fusers%252Fauth%252Foauth_opendesktop%252Fcallback%26response_type%3Dcode%26scope%3Dopenid%2520profile%2520email%26state%3Df6e85b0786e9d6b927b8387c7a0cecdd5fc737ed05531977" method="POST" class="form-signin">
-    
-        
-
-
-
-
-
-        <input type="hidden" name="csrfToken" value="df151f72e1f72dbc3ba8822a1b683881b340a73d-1735985211069-a11784ca629b7c64204690ba"/>
-        <h2 class="form-heading">Please Log In</h2>
-        <div class="form-group">
-            <input name="email" type="text" class="form-control input-lg" placeholder="Username or Email" autofocus/>
-        </div>
-        <div class="form-group">
-            <input name="password" type="password" class="form-control input-lg" placeholder="Password"/>
-        </div>
-        <button class="btn btn-lg btn-primary btn-block" type="submit">Log In</button>
-        <h4 class="text-center"><a href="https://www.opendesktop.org/register">Register new account</a></h4>
-        <h4 class="text-center"><a href="https://www.opendesktop.org/password/request">Reset password</a></h4>
-        <hr>
-        
-    
-</form>
-
-
-    </div>
-    <script src="/assets/js/jquery.min.js" type="text/javascript"></script>
-    <script src="/assets/js/bootstrap.min.js" type="text/javascript"></script>
-    <script src="/assets/js/bootstrap-show-password.min.js" type="text/javascript"></script>
-    <script src="/assets/js/main.js" type="text/javascript"></script>
-</body>
-</html>
-
diff --git a/mp4duration2_git_wget.txt b/mp4duration2_git_wget.txt
deleted file mode 100644
index 122698791efb2b8c6ed46dae46893cdf3afaa6bc..0000000000000000000000000000000000000000
--- a/mp4duration2_git_wget.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-HSTS in effect for www.opencode.net:80
-[0] Downloading 'https://git@www.opencode.net:abigoven/mp4duration2.git' ...
-HTTP response 302  [https://git@www.opencode.net:abigoven/mp4duration2.git]
-Adding URL: https://www.opencode.net/users/sign_in
-[0] Downloading 'https://www.opencode.net/users/sign_in' ...
-HTTP response 302  [https://www.opencode.net/users/sign_in]
-Adding URL: https://www.opencode.net/users/auth/oauth_opendesktop
-[0] Downloading 'https://www.opencode.net/users/auth/oauth_opendesktop' ...
-HTTP response 302  [https://www.opencode.net/users/auth/oauth_opendesktop]
-Adding URL: https://id.opendesktop.org/oauth/authorize?client_id=BzeY4MotIOUTXTzPwbhw&redirect_uri=https%3A%2F%2Fwww.opencode.net%2Fusers%2Fauth%2Foauth_opendesktop%2Fcallback&response_type=code&scope=openid+profile+email&state=f6e85b0786e9d6b927b8387c7a0cecdd5fc737ed05531977
-[0] Downloading 'https://id.opendesktop.org/oauth/authorize?client_id=BzeY4MotIOUTXTzPwbhw&redirect_uri=https%3A%2F%2Fwww.opencode.net%2Fusers%2Fauth%2Foauth_opendesktop%2Fcallback&response_type=code&scope=openid+profile+email&state=f6e85b0786e9d6b927b8387c7a0cecdd5fc737ed05531977' ...
-HTTP response 303 See Other [https://id.opendesktop.org/oauth/authorize?client_id=BzeY4MotIOUTXTzPwbhw&redirect_uri=https%3A%2F%2Fwww.opencode.net%2Fusers%2Fauth%2Foauth_opendesktop%2Fcallback&response_type=code&scope=openid+profile+email&state=f6e85b0786e9d6b927b8387c7a0cecdd5fc737ed05531977]
-Adding URL: https://id.opendesktop.org/login?next=%2Foauth%2Fauthorize%3Fclient_id%3DBzeY4MotIOUTXTzPwbhw%26redirect_uri%3Dhttps%253A%252F%252Fwww.opencode.net%252Fusers%252Fauth%252Foauth_opendesktop%252Fcallback%26response_type%3Dcode%26scope%3Dopenid%2520profile%2520email%26state%3Df6e85b0786e9d6b927b8387c7a0cecdd5fc737ed05531977
-[0] Downloading 'https://id.opendesktop.org/login?next=%2Foauth%2Fauthorize%3Fclient_id%3DBzeY4MotIOUTXTzPwbhw%26redirect_uri%3Dhttps%253A%252F%252Fwww.opencode.net%252Fusers%252Fauth%252Foauth_opendesktop%252Fcallback%26response_type%3Dcode%26scope%3Dopenid%2520profile%2520email%26state%3Df6e85b0786e9d6b927b8387c7a0cecdd5fc737ed05531977' ...
-Saving 'mp4duration2.git'
-HTTP response 200 OK [https://id.opendesktop.org/login?next=%2Foauth%2Fauthorize%3Fclient_id%3DBzeY4MotIOUTXTzPwbhw%26redirect_uri%3Dhttps%253A%252F%252Fwww.opencode.net%252Fusers%252Fauth%252Foauth_opendesktop%252Fcallback%26response_type%3Dcode%26scope%3Dopenid%2520profile%2520email%26state%3Df6e85b0786e9d6b927b8387c7a0cecdd5fc737ed05531977]
-HSTS in effect for www.opencode.net:80
-Nothing to do - goodbye
-HSTS in effect for www.opencode.net:80
-Nothing to do - goodbye
-HSTS in effect for www.opencode.net:80
-Nothing to do - goodbye
-HSTS in effect for www.opencode.net:80
-Nothing to do - goodbye
diff --git a/src/main.rs b/src/main.rs
index ad1a2e140647b6ca453389cf6dcb75056b89e240..7411585693fb7525caa7575db43aef3afb22038d 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,3 +1,5 @@
+#![deny(clippy::all)] // in 1st line in every .rs file
+
 use sprintf::sprintf;
 use std::env;
 use std::fs::File;
diff --git a/x86_64-pc-windows-gnu/mp4duration2.exe b/x86_64-pc-windows-gnu/mp4duration2.exe
index f500e1ff7a9c5db2119dedf9bea59f2f870366c4..32f30caebfa0682463c911d67c7cd2564817ca95 100755
Binary files a/x86_64-pc-windows-gnu/mp4duration2.exe and b/x86_64-pc-windows-gnu/mp4duration2.exe differ
diff --git a/x86_64-pc-windows-msvc/mp4duration2.exe b/x86_64-pc-windows-msvc/mp4duration2.exe
new file mode 100755
index 0000000000000000000000000000000000000000..00cc55ad1a7646daba65706032bb5659a7d77bd6
Binary files /dev/null and b/x86_64-pc-windows-msvc/mp4duration2.exe differ
diff --git a/x86_64-unknown-linux-gnu/mp4duration2 b/x86_64-unknown-linux-gnu/mp4duration2
index c038959eb5ab1f86c181e18fefe503e0f197168f..6117ac8f2d67d160261e3fbdad2c989b13496399 100755
Binary files a/x86_64-unknown-linux-gnu/mp4duration2 and b/x86_64-unknown-linux-gnu/mp4duration2 differ