|
324 | 324 | <span id="319">319</span>
|
325 | 325 | <span id="320">320</span>
|
326 | 326 | <span id="321">321</span>
|
| 327 | +<span id="322">322</span> |
| 328 | +<span id="323">323</span> |
| 329 | +<span id="324">324</span> |
| 330 | +<span id="325">325</span> |
| 331 | +<span id="326">326</span> |
| 332 | +<span id="327">327</span> |
| 333 | +<span id="328">328</span> |
| 334 | +<span id="329">329</span> |
| 335 | +<span id="330">330</span> |
| 336 | +<span id="331">331</span> |
| 337 | +<span id="332">332</span> |
| 338 | +<span id="333">333</span> |
| 339 | +<span id="334">334</span> |
| 340 | +<span id="335">335</span> |
327 | 341 | </pre><pre class="rust"><code><span class="kw">use</span> <span class="ident">uucore::display::Quotable</span>;
|
328 | 342 |
|
329 | 343 | <span class="kw">use</span> <span class="ident"><span class="kw">crate</span>::options</span>::{<span class="ident">NumfmtOptions</span>, <span class="ident">RoundMethod</span>, <span class="ident">TransformOptions</span>};
|
|
424 | 438 |
|
425 | 439 | <span class="kw">fn</span> <span class="ident">remove_suffix</span>(<span class="ident">i</span>: <span class="ident">f64</span>, <span class="ident">s</span>: <span class="prelude-ty">Option</span><span class="op"><</span><span class="ident">Suffix</span><span class="op">></span>, <span class="ident">u</span>: <span class="kw-2">&</span><span class="ident">Unit</span>) -> <span class="prelude-ty">Result</span><span class="op"><</span><span class="ident">f64</span><span class="op">></span> {
|
426 | 440 | <span class="kw">match</span> (<span class="ident">s</span>, <span class="ident">u</span>) {
|
427 |
| - (<span class="prelude-val">None</span>, <span class="kw">_</span>) => <span class="prelude-val">Ok</span>(<span class="ident">i</span>), |
428 | 441 | (<span class="prelude-val">Some</span>((<span class="ident">raw_suffix</span>, <span class="bool-val">false</span>)), <span class="kw-2">&</span><span class="ident">Unit::Auto</span>) <span class="op">|</span> (<span class="prelude-val">Some</span>((<span class="ident">raw_suffix</span>, <span class="bool-val">false</span>)), <span class="kw-2">&</span><span class="ident">Unit::Si</span>) => {
|
429 | 442 | <span class="kw">match</span> <span class="ident">raw_suffix</span> {
|
430 | 443 | <span class="ident">RawSuffix::K</span> => <span class="prelude-val">Ok</span>(<span class="ident">i</span> <span class="op">*</span> <span class="number">1e3</span>),
|
|
449 | 462 | <span class="ident">RawSuffix::Z</span> => <span class="prelude-val">Ok</span>(<span class="ident">i</span> <span class="op">*</span> <span class="ident">IEC_BASES</span>[<span class="number">7</span>]),
|
450 | 463 | <span class="ident">RawSuffix::Y</span> => <span class="prelude-val">Ok</span>(<span class="ident">i</span> <span class="op">*</span> <span class="ident">IEC_BASES</span>[<span class="number">8</span>]),
|
451 | 464 | },
|
| 465 | + (<span class="prelude-val">None</span>, <span class="kw-2">&</span><span class="ident">Unit::Iec</span>(<span class="bool-val">true</span>)) => <span class="prelude-val">Err</span>(<span class="macro">format!</span>( |
| 466 | + <span class="string">"missing 'i' suffix in input: '{}' (e.g Ki/Mi/Gi)"</span>, |
| 467 | + <span class="ident">i</span> |
| 468 | + )), |
| 469 | + (<span class="prelude-val">Some</span>((<span class="ident">raw_suffix</span>, <span class="bool-val">false</span>)), <span class="kw-2">&</span><span class="ident">Unit::Iec</span>(<span class="bool-val">true</span>)) => <span class="prelude-val">Err</span>(<span class="macro">format!</span>( |
| 470 | + <span class="string">"missing 'i' suffix in input: '{}{:?}' (e.g Ki/Mi/Gi)"</span>, |
| 471 | + <span class="ident">i</span>, <span class="ident">raw_suffix</span> |
| 472 | + )), |
| 473 | + (<span class="prelude-val">Some</span>((<span class="ident">raw_suffix</span>, <span class="ident">with_i</span>)), <span class="kw-2">&</span><span class="ident">Unit::None</span>) => <span class="prelude-val">Err</span>(<span class="macro">format!</span>( |
| 474 | + <span class="string">"rejecting suffix in input: '{}{:?}{}' (consider using --from)"</span>, |
| 475 | + <span class="ident">i</span>, |
| 476 | + <span class="ident">raw_suffix</span>, |
| 477 | + <span class="kw">if</span> <span class="ident">with_i</span> { <span class="string">"i"</span> } <span class="kw">else</span> { <span class="string">""</span> } |
| 478 | + )), |
| 479 | + (<span class="prelude-val">None</span>, <span class="kw">_</span>) => <span class="prelude-val">Ok</span>(<span class="ident">i</span>), |
452 | 480 | (<span class="kw">_</span>, <span class="kw">_</span>) => <span class="prelude-val">Err</span>(<span class="string">"This suffix is unsupported for specified unit"</span>.<span class="ident">to_owned</span>()),
|
453 | 481 | }
|
454 | 482 | }
|
|
0 commit comments