|
251 | 251 | <span id="246">246</span>
|
252 | 252 | <span id="247">247</span>
|
253 | 253 | <span id="248">248</span>
|
| 254 | +<span id="249">249</span> |
| 255 | +<span id="250">250</span> |
| 256 | +<span id="251">251</span> |
| 257 | +<span id="252">252</span> |
| 258 | +<span id="253">253</span> |
| 259 | +<span id="254">254</span> |
| 260 | +<span id="255">255</span> |
254 | 261 | </pre><pre class="rust"><code><span class="comment">// * This file is part of the uutils coreutils package.</span>
|
255 | 262 | <span class="comment">// *</span>
|
256 | 263 | <span class="comment">// * For the full copyright and license information, please view the LICENSE</span>
|
|
326 | 333 | <span class="prelude-val">Err</span>(())
|
327 | 334 | }
|
328 | 335 |
|
329 |
| -<span class="doccomment">/// Convert a number, except multiples of 1024, into a string like "12kB" or "34MB".</span> |
| 336 | +<span class="doccomment">/// Convert a number into a string like "12kB" or "34MB".</span> |
330 | 337 | <span class="doccomment">///</span>
|
331 | 338 | <span class="doccomment">/// Powers of 1000 become "1kB", "1MB", "1GB", etc.</span>
|
332 | 339 | <span class="doccomment">///</span>
|
|
363 | 370 | <span class="doccomment">///</span>
|
364 | 371 | <span class="doccomment">/// If the number is too large to represent.</span>
|
365 | 372 | <span class="kw">fn</span> <span class="ident">to_magnitude_and_suffix</span>(<span class="ident">n</span>: <span class="ident">u128</span>) -> <span class="prelude-ty">Result</span><span class="op"><</span><span class="ident">String</span>, ()<span class="op">></span> {
|
366 |
| - <span class="kw">if</span> <span class="ident">n</span> <span class="op">%</span> <span class="number">1024</span> <span class="op">==</span> <span class="number">0</span> { |
| 373 | + <span class="kw">if</span> <span class="ident">n</span> <span class="op">%</span> <span class="number">1024</span> <span class="op">==</span> <span class="number">0</span> <span class="op">&&</span> <span class="ident">n</span> <span class="op">%</span> <span class="number">1000</span> <span class="op">!</span><span class="op">=</span> <span class="number">0</span> { |
367 | 374 | <span class="ident">to_magnitude_and_suffix_1024</span>(<span class="ident">n</span>)
|
368 | 375 | } <span class="kw">else</span> {
|
369 | 376 | <span class="ident">to_magnitude_and_suffix_not_powers_of_1024</span>(<span class="ident">n</span>)
|
|
492 | 499 | <span class="macro">assert_eq!</span>(<span class="ident">to_magnitude_and_suffix</span>(<span class="number">1_000_000_001</span>).<span class="ident">unwrap</span>(), <span class="string">"1.1GB"</span>);
|
493 | 500 | }
|
494 | 501 |
|
| 502 | + <span class="attribute">#[<span class="ident">test</span>]</span> |
| 503 | + <span class="kw">fn</span> <span class="ident">test_to_magnitude_and_suffix_multiples_of_1000_and_1024</span>() { |
| 504 | + <span class="macro">assert_eq!</span>(<span class="ident">to_magnitude_and_suffix</span>(<span class="number">128_000</span>).<span class="ident">unwrap</span>(), <span class="string">"128kB"</span>); |
| 505 | + <span class="macro">assert_eq!</span>(<span class="ident">to_magnitude_and_suffix</span>(<span class="number">1000</span> <span class="op">*</span> <span class="number">1024</span>).<span class="ident">unwrap</span>(), <span class="string">"1.1MB"</span>); |
| 506 | + <span class="macro">assert_eq!</span>(<span class="ident">to_magnitude_and_suffix</span>(<span class="number">1_000_000_000_000</span>).<span class="ident">unwrap</span>(), <span class="string">"1TB"</span>); |
| 507 | + } |
| 508 | + |
495 | 509 | <span class="attribute">#[<span class="ident">test</span>]</span>
|
496 | 510 | <span class="kw">fn</span> <span class="ident">test_block_size_display</span>() {
|
497 | 511 | <span class="macro">assert_eq!</span>(<span class="macro">format!</span>(<span class="string">"{}"</span>, <span class="ident">BlockSize::Bytes</span>(<span class="number">1024</span>)), <span class="string">"1K"</span>);
|
|
0 commit comments