Skip to content

Commit 9a7b527

Browse files
committed
deploy: c249eba
1 parent 8914e69 commit 9a7b527

File tree

4 files changed

+31
-9
lines changed

4 files changed

+31
-9
lines changed

dev/src/uu_sum/sum.rs.html

+28-6
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,17 @@
170170
<span id="165">165</span>
171171
<span id="166">166</span>
172172
<span id="167">167</span>
173+
<span id="168">168</span>
174+
<span id="169">169</span>
175+
<span id="170">170</span>
176+
<span id="171">171</span>
177+
<span id="172">172</span>
178+
<span id="173">173</span>
179+
<span id="174">174</span>
180+
<span id="175">175</span>
181+
<span id="176">176</span>
182+
<span id="177">177</span>
183+
<span id="178">178</span>
173184
</pre><pre class="rust"><code><span class="comment">// * This file is part of the uutils coreutils package.</span>
174185
<span class="comment">// *</span>
175186
<span class="comment">// * (c) T. Jameson Little &lt;t.jameson.little@gmail.com&gt;</span>
@@ -195,14 +206,21 @@
195206
<span class="kw">static</span> <span class="ident">SUMMARY</span>: <span class="kw-2">&amp;</span><span class="ident">str</span> <span class="op">=</span> <span class="string">&quot;Checksum and count the blocks in a file.\n\
196207
With no FILE, or when FILE is -, read standard input.&quot;</span>;
197208

209+
<span class="comment">// This can be replaced with usize::div_ceil once it is stabilized.</span>
210+
<span class="comment">// This implementation approach is optimized for when `b` is a constant,</span>
211+
<span class="comment">// particularly a power of two.</span>
212+
<span class="kw">const</span> <span class="kw">fn</span> <span class="ident">div_ceil</span>(<span class="ident">a</span>: <span class="ident">usize</span>, <span class="ident">b</span>: <span class="ident">usize</span>) -&gt; <span class="ident">usize</span> {
213+
(<span class="ident">a</span> <span class="op">+</span> <span class="ident">b</span> <span class="op">-</span> <span class="number">1</span>) <span class="op">/</span> <span class="ident">b</span>
214+
}
215+
198216
<span class="kw">fn</span> <span class="ident">bsd_sum</span>(<span class="kw-2">mut</span> <span class="ident">reader</span>: <span class="ident">Box</span><span class="op">&lt;</span><span class="kw">dyn</span> <span class="ident">Read</span><span class="op">&gt;</span>) -&gt; (<span class="ident">usize</span>, <span class="ident">u16</span>) {
199-
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">buf</span> <span class="op">=</span> [<span class="number">0</span>; <span class="number">1024</span>];
200-
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">blocks_read</span> <span class="op">=</span> <span class="number">0</span>;
217+
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">buf</span> <span class="op">=</span> [<span class="number">0</span>; <span class="number">4096</span>];
218+
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">bytes_read</span> <span class="op">=</span> <span class="number">0</span>;
201219
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">checksum</span>: <span class="ident">u16</span> <span class="op">=</span> <span class="number">0</span>;
202220
<span class="kw">loop</span> {
203221
<span class="kw">match</span> <span class="ident">reader</span>.<span class="ident">read</span>(<span class="kw-2">&amp;mut</span> <span class="ident">buf</span>) {
204222
<span class="prelude-val">Ok</span>(<span class="ident">n</span>) <span class="kw">if</span> <span class="ident">n</span> <span class="op">!</span><span class="op">=</span> <span class="number">0</span> =&gt; {
205-
<span class="ident">blocks_read</span> <span class="op">+</span><span class="op">=</span> <span class="number">1</span>;
223+
<span class="ident">bytes_read</span> <span class="op">+</span><span class="op">=</span> <span class="ident">n</span>;
206224
<span class="kw">for</span> <span class="kw-2">&amp;</span><span class="ident">byte</span> <span class="kw">in</span> <span class="ident">buf</span>[..<span class="ident">n</span>].<span class="ident">iter</span>() {
207225
<span class="ident">checksum</span> <span class="op">=</span> (<span class="ident">checksum</span> <span class="op">&gt;</span><span class="op">&gt;</span> <span class="number">1</span>) <span class="op">+</span> ((<span class="ident">checksum</span> <span class="op">&amp;</span> <span class="number">1</span>) <span class="op">&lt;</span><span class="op">&lt;</span> <span class="number">15</span>);
208226
<span class="ident">checksum</span> <span class="op">=</span> <span class="ident">checksum</span>.<span class="ident">wrapping_add</span>(<span class="ident">u16::from</span>(<span class="ident">byte</span>));
@@ -212,18 +230,20 @@
212230
}
213231
}
214232

233+
<span class="comment">// Report blocks read in terms of 1024-byte blocks.</span>
234+
<span class="kw">let</span> <span class="ident">blocks_read</span> <span class="op">=</span> <span class="ident">div_ceil</span>(<span class="ident">bytes_read</span>, <span class="number">1024</span>);
215235
(<span class="ident">blocks_read</span>, <span class="ident">checksum</span>)
216236
}
217237

218238
<span class="kw">fn</span> <span class="ident">sysv_sum</span>(<span class="kw-2">mut</span> <span class="ident">reader</span>: <span class="ident">Box</span><span class="op">&lt;</span><span class="kw">dyn</span> <span class="ident">Read</span><span class="op">&gt;</span>) -&gt; (<span class="ident">usize</span>, <span class="ident">u16</span>) {
219-
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">buf</span> <span class="op">=</span> [<span class="number">0</span>; <span class="number">512</span>];
220-
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">blocks_read</span> <span class="op">=</span> <span class="number">0</span>;
239+
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">buf</span> <span class="op">=</span> [<span class="number">0</span>; <span class="number">4096</span>];
240+
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">bytes_read</span> <span class="op">=</span> <span class="number">0</span>;
221241
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">ret</span> <span class="op">=</span> <span class="number">0u32</span>;
222242

223243
<span class="kw">loop</span> {
224244
<span class="kw">match</span> <span class="ident">reader</span>.<span class="ident">read</span>(<span class="kw-2">&amp;mut</span> <span class="ident">buf</span>) {
225245
<span class="prelude-val">Ok</span>(<span class="ident">n</span>) <span class="kw">if</span> <span class="ident">n</span> <span class="op">!</span><span class="op">=</span> <span class="number">0</span> =&gt; {
226-
<span class="ident">blocks_read</span> <span class="op">+</span><span class="op">=</span> <span class="number">1</span>;
246+
<span class="ident">bytes_read</span> <span class="op">+</span><span class="op">=</span> <span class="ident">n</span>;
227247
<span class="kw">for</span> <span class="kw-2">&amp;</span><span class="ident">byte</span> <span class="kw">in</span> <span class="ident">buf</span>[..<span class="ident">n</span>].<span class="ident">iter</span>() {
228248
<span class="ident">ret</span> <span class="op">=</span> <span class="ident">ret</span>.<span class="ident">wrapping_add</span>(<span class="ident">u32::from</span>(<span class="ident">byte</span>));
229249
}
@@ -235,6 +255,8 @@
235255
<span class="ident">ret</span> <span class="op">=</span> (<span class="ident">ret</span> <span class="op">&amp;</span> <span class="number">0xffff</span>) <span class="op">+</span> (<span class="ident">ret</span> <span class="op">&gt;</span><span class="op">&gt;</span> <span class="number">16</span>);
236256
<span class="ident">ret</span> <span class="op">=</span> (<span class="ident">ret</span> <span class="op">&amp;</span> <span class="number">0xffff</span>) <span class="op">+</span> (<span class="ident">ret</span> <span class="op">&gt;</span><span class="op">&gt;</span> <span class="number">16</span>);
237257

258+
<span class="comment">// Report blocks read in terms of 512-byte blocks.</span>
259+
<span class="kw">let</span> <span class="ident">blocks_read</span> <span class="op">=</span> <span class="ident">div_ceil</span>(<span class="ident">bytes_read</span>, <span class="number">512</span>);
238260
(<span class="ident">blocks_read</span>, <span class="ident">ret</span> <span class="kw">as</span> <span class="ident">u16</span>)
239261
}
240262

dev/uu_sum/fn.uu_app.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@
44
</nav>
55
<nav class="sidebar"><a class="sidebar-logo" href="../uu_sum/index.html"><div class="logo-container"><img class="rust-logo" src="../rust-logo.svg" alt="logo"></div>
66
</a><div class="sidebar-elems"><h2 class="location"><a href="index.html">In uu_sum</a></h2><div id="sidebar-vars" data-name="uu_app" data-ty="fn" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../uu_sum/index.html"><img class="rust-logo" src="../rust-logo.svg" alt="logo"></a><nav class="sub"><div class="theme-picker hidden"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="22" height="22" alt="Pick another theme!" src="../brush.svg"></button><div id="theme-choices" role="menu"></div></div><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../wheel.svg"></a></div></form></nav></div><section id="main-content" class="content"><div class="main-heading">
7-
<h1 class="fqn"><span class="in-band">Function <a href="index.html">uu_sum</a>::<wbr><a class="fn" href="#">uu_app</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../src/uu_sum/sum.rs.html#143-167">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><div class="docblock item-decl"><pre class="rust fn"><code>pub fn uu_app&lt;'a&gt;() -&gt; Command&lt;'a&gt;</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-current-crate="uu_sum" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.62.1 (e092d0b6b 2022-07-16)" ></div>
7+
<h1 class="fqn"><span class="in-band">Function <a href="index.html">uu_sum</a>::<wbr><a class="fn" href="#">uu_app</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../src/uu_sum/sum.rs.html#154-178">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><div class="docblock item-decl"><pre class="rust fn"><code>pub fn uu_app&lt;'a&gt;() -&gt; Command&lt;'a&gt;</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-current-crate="uu_sum" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.62.1 (e092d0b6b 2022-07-16)" ></div>
88
</body></html>

dev/uu_sum/fn.uumain.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@
44
</nav>
55
<nav class="sidebar"><a class="sidebar-logo" href="../uu_sum/index.html"><div class="logo-container"><img class="rust-logo" src="../rust-logo.svg" alt="logo"></div>
66
</a><div class="sidebar-elems"><h2 class="location"><a href="index.html">In uu_sum</a></h2><div id="sidebar-vars" data-name="uumain" data-ty="fn" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../uu_sum/index.html"><img class="rust-logo" src="../rust-logo.svg" alt="logo"></a><nav class="sub"><div class="theme-picker hidden"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="22" height="22" alt="Pick another theme!" src="../brush.svg"></button><div id="theme-choices" role="menu"></div></div><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../wheel.svg"></a></div></form></nav></div><section id="main-content" class="content"><div class="main-heading">
7-
<h1 class="fqn"><span class="in-band">Function <a href="index.html">uu_sum</a>::<wbr><a class="fn" href="#">uumain</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../src/uu_sum/sum.rs.html#99">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><div class="docblock item-decl"><pre class="rust fn"><code>pub fn uumain(args: impl <a class="trait" href="../uucore/trait.Args.html" title="trait uucore::Args">Args</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.62.1/std/primitive.i32.html">i32</a></code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-current-crate="uu_sum" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.62.1 (e092d0b6b 2022-07-16)" ></div>
7+
<h1 class="fqn"><span class="in-band">Function <a href="index.html">uu_sum</a>::<wbr><a class="fn" href="#">uumain</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../src/uu_sum/sum.rs.html#110">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><div class="docblock item-decl"><pre class="rust fn"><code>pub fn uumain(args: impl <a class="trait" href="../uucore/trait.Args.html" title="trait uucore::Args">Args</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.62.1/std/primitive.i32.html">i32</a></code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-current-crate="uu_sum" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.62.1 (e092d0b6b 2022-07-16)" ></div>
88
</body></html>

dev/uu_sum/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@
44
</nav>
55
<nav class="sidebar"><a class="sidebar-logo" href="../uu_sum/index.html"><div class="logo-container"><img class="rust-logo" src="../rust-logo.svg" alt="logo"></div>
66
</a><h2 class="location"><a href="#">Crate uu_sum</a></h2><div class="sidebar-elems"><div class="block"><ul><li class="version">Version 0.0.14</li><li><a id="all-types" href="all.html">All Items</a></li></div></ul><section><div class="block"><ul><li><a href="#functions">Functions</a></li></ul></div></section><div id="sidebar-vars" data-name="uu_sum" data-ty="mod" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../uu_sum/index.html"><img class="rust-logo" src="../rust-logo.svg" alt="logo"></a><nav class="sub"><div class="theme-picker hidden"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="22" height="22" alt="Pick another theme!" src="../brush.svg"></button><div id="theme-choices" role="menu"></div></div><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../wheel.svg"></a></div></form></nav></div><section id="main-content" class="content"><div class="main-heading">
7-
<h1 class="fqn"><span class="in-band">Crate <a class="mod" href="#">uu_sum</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../src/uu_sum/sum.rs.html#10-167">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><h2 id="functions" class="small-section-header"><a href="#functions">Functions</a></h2>
7+
<h1 class="fqn"><span class="in-band">Crate <a class="mod" href="#">uu_sum</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../src/uu_sum/sum.rs.html#10-178">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><h2 id="functions" class="small-section-header"><a href="#functions">Functions</a></h2>
88
<div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.uu_app.html" title="uu_sum::uu_app fn">uu_app</a></div><div class="item-right docblock-short"></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.uumain.html" title="uu_sum::uumain fn">uumain</a></div><div class="item-right docblock-short"></div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-current-crate="uu_sum" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.62.1 (e092d0b6b 2022-07-16)" ></div>
99
</body></html>

0 commit comments

Comments
 (0)