minmax-cli-0.1.0-beta.7 is not a library.
min / max cli programs
Two small Rust command‑line tools that reads numeric arguments, validates them, and prints the value with the lowest / highest comparable magnitude.
The comparison can be done either on the raw numbers or on their absolute values. Optionally, absolute value of selected number can be printed.
Features
- Accepts any number of positional arguments and parses them as
f64. - Rejects invalid input, including:
- Non‑numeric values
NaN+∞or−∞
- Supports selecting the minimum by absolute value.
- Supports printing absolute value of returned number.
- Provides version and help output.
- Returns meaningful exit codes for different error conditions.
Usage
min|max [-v | -?] | [-a | -A] <number> ...
Options
-vPrint program version and exit.-?Show help message.-aCompare numbers by their absolute value instead of their raw value.-APrint absolute value of returned number. Implies-a.
Positional Arguments
- One or more numeric values (
f64). - All values must be finite and valid floating point numbers.
- If any argument fails validation, the program exits with an error code.
Behavior
Normal Operation
- Parse all positional arguments as floating‑point numbers.
- Reject any argument that:
- Cannot be parsed
- Is
NaN - Is infinite
- Optionally compare all numbers by their absolute values (
-a). - Find the index of the smallest / largest comparable number.
- Print the original number at that index, unless (
-A) is used. In that case print absolute value of that number.
Exit Codes
| Code | Meaning |
|---|---|
0 |
Success |
1 |
No numeric arguments provided |
2 |
One or more numeric arguments failed to parse or were invalid |
Example
$ min 5 -3 9
-3
$ min -a 5 -3 9 1
1
$ min -a -20 34 566 -105
-20
$ min -A -20 34 566 -105
20
$ min 10 foo 2
Error parsing 'foo': invalid float literal
MSRV
min and max cli programs needs Rust version 1.61.
License
This is free and unencumbered software released into the public domain.
This code can be used under terms of CC0-1.0 or the Unlicense.
