|
258 | 258 | <span id="253">253</span>
|
259 | 259 | <span id="254">254</span>
|
260 | 260 | <span id="255">255</span>
|
| 261 | +<span id="256">256</span> |
| 262 | +<span id="257">257</span> |
| 263 | +<span id="258">258</span> |
| 264 | +<span id="259">259</span> |
| 265 | +<span id="260">260</span> |
| 266 | +<span id="261">261</span> |
| 267 | +<span id="262">262</span> |
| 268 | +<span id="263">263</span> |
| 269 | +<span id="264">264</span> |
| 270 | +<span id="265">265</span> |
| 271 | +<span id="266">266</span> |
| 272 | +<span id="267">267</span> |
| 273 | +<span id="268">268</span> |
| 274 | +<span id="269">269</span> |
| 275 | +<span id="270">270</span> |
261 | 276 | </pre><pre class="rust"><code><span class="comment">// * This file is part of the uutils coreutils package.</span>
|
262 | 277 | <span class="comment">// *</span>
|
263 | 278 | <span class="comment">// * For the full copyright and license information, please view the LICENSE</span>
|
264 | 279 | <span class="comment">// * file that was distributed with this source code.</span>
|
265 | 280 | <span class="doccomment">//! Types for representing and displaying block sizes.</span>
|
266 | 281 | <span class="kw">use</span> <span class="ident"><span class="kw">crate</span>::OPT_BLOCKSIZE</span>;
|
267 | 282 | <span class="kw">use</span> <span class="ident">clap::ArgMatches</span>;
|
268 |
| -<span class="kw">use</span> <span class="ident">std::fmt</span>; |
| 283 | +<span class="kw">use</span> <span class="ident">std</span>::{<span class="ident">env</span>, <span class="ident">fmt</span>}; |
269 | 284 |
|
270 | 285 | <span class="kw">use</span> <span class="ident">uucore::parse_size</span>::{<span class="ident">parse_size</span>, <span class="ident">ParseSizeError</span>};
|
271 | 286 |
|
|
419 | 434 | <span class="doccomment">/// size.</span>
|
420 | 435 | <span class="doccomment">///</span>
|
421 | 436 | <span class="doccomment">/// The default variant is `Bytes(1024)`.</span>
|
| 437 | +<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Debug</span>, <span class="ident">PartialEq</span>)]</span> |
422 | 438 | <span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">enum</span> <span class="ident">BlockSize</span> {
|
423 | 439 | <span class="doccomment">/// A fixed number of bytes.</span>
|
424 | 440 | <span class="doccomment">///</span>
|
|
428 | 444 |
|
429 | 445 | <span class="kw">impl</span> <span class="ident">Default</span> <span class="kw">for</span> <span class="ident">BlockSize</span> {
|
430 | 446 | <span class="kw">fn</span> <span class="ident">default</span>() -> <span class="self">Self</span> {
|
431 |
| - <span class="ident"><span class="self">Self</span>::Bytes</span>(<span class="number">1024</span>) |
| 447 | + <span class="kw">if</span> <span class="ident">env::var</span>(<span class="string">"POSIXLY_CORRECT"</span>).<span class="ident">is_ok</span>() { |
| 448 | + <span class="ident"><span class="self">Self</span>::Bytes</span>(<span class="number">512</span>) |
| 449 | + } <span class="kw">else</span> { |
| 450 | + <span class="ident"><span class="self">Self</span>::Bytes</span>(<span class="number">1024</span>) |
| 451 | + } |
432 | 452 | }
|
433 | 453 | }
|
434 | 454 |
|
|
455 | 475 | <span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">test</span>)]</span>
|
456 | 476 | <span class="kw">mod</span> <span class="ident">tests</span> {
|
457 | 477 |
|
| 478 | + <span class="kw">use</span> <span class="ident">std::env</span>; |
| 479 | + |
458 | 480 | <span class="kw">use</span> <span class="ident"><span class="kw">crate</span>::blocks</span>::{<span class="ident">to_magnitude_and_suffix</span>, <span class="ident">BlockSize</span>};
|
459 | 481 |
|
460 | 482 | <span class="attribute">#[<span class="ident">test</span>]</span>
|
|
512 | 534 | <span class="macro">assert_eq!</span>(<span class="macro">format!</span>(<span class="string">"{}"</span>, <span class="ident">BlockSize::Bytes</span>(<span class="number">2</span> <span class="op">*</span> <span class="number">1024</span>)), <span class="string">"2K"</span>);
|
513 | 535 | <span class="macro">assert_eq!</span>(<span class="macro">format!</span>(<span class="string">"{}"</span>, <span class="ident">BlockSize::Bytes</span>(<span class="number">3</span> <span class="op">*</span> <span class="number">1024</span> <span class="op">*</span> <span class="number">1024</span>)), <span class="string">"3M"</span>);
|
514 | 536 | }
|
| 537 | + |
| 538 | + <span class="attribute">#[<span class="ident">test</span>]</span> |
| 539 | + <span class="kw">fn</span> <span class="ident">test_default_block_size</span>() { |
| 540 | + <span class="macro">assert_eq!</span>(<span class="ident">BlockSize::Bytes</span>(<span class="number">1024</span>), <span class="ident">BlockSize::default</span>()); |
| 541 | + <span class="ident">env::set_var</span>(<span class="string">"POSIXLY_CORRECT"</span>, <span class="string">"1"</span>); |
| 542 | + <span class="macro">assert_eq!</span>(<span class="ident">BlockSize::Bytes</span>(<span class="number">512</span>), <span class="ident">BlockSize::default</span>()); |
| 543 | + <span class="ident">env::remove_var</span>(<span class="string">"POSIXLY_CORRECT"</span>); |
| 544 | + } |
515 | 545 | }
|
516 | 546 | </code></pre></div>
|
517 | 547 | </section><section id="search" class="content hidden"></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-current-crate="uu_df" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.60.0 (7737e0b5c 2022-04-04)" ></div>
|
|
0 commit comments