@@ -44,60 +44,45 @@ impl EngFormatter {
4444 for arg in args {
4545 match arg. key {
4646 "width" | "w" => {
47- result. width = arg. val . parse ( ) . error ( "Width must be a positive integer" ) ?;
47+ result. width = arg. parse_value ( ) ?;
4848 }
4949 "unit" | "u" => {
50- result. unit = Some ( arg. val . parse ( ) ?) ;
50+ result. unit = Some ( arg. parse_value ( ) ?) ;
5151 }
5252 "hide_unit" => {
53- result. unit_hidden = arg
54- . val
55- . parse ( )
56- . ok ( )
57- . error ( "hide_unit must be true or false" ) ?;
53+ result. unit_hidden = arg. parse_value ( ) ?;
5854 }
5955 "unit_space" => {
60- result. unit_has_space = arg
61- . val
62- . parse ( )
63- . ok ( )
64- . error ( "unit_space must be true or false" ) ?;
56+ result. unit_has_space = arg. parse_value ( ) ?;
6557 }
6658 "prefix" | "p" => {
67- result. prefix = Some ( arg. val . parse ( ) ?) ;
59+ result. prefix = Some ( arg. parse_value ( ) ?) ;
6860 }
6961 "hide_prefix" => {
70- result. prefix_hidden = arg
71- . val
72- . parse ( )
73- . ok ( )
74- . error ( "hide_prefix must be true or false" ) ?;
62+ result. prefix_hidden = arg. parse_value ( ) ?;
7563 }
7664 "prefix_space" => {
77- result. prefix_has_space = arg
78- . val
79- . parse ( )
80- . ok ( )
81- . error ( "prefix_space must be true or false" ) ?;
65+ result. prefix_has_space = arg. parse_value ( ) ?;
8266 }
8367 "force_prefix" => {
84- result. prefix_forced = arg
85- . val
86- . parse ( )
87- . ok ( )
88- . error ( "force_prefix must be true or false" ) ?;
68+ result. prefix_forced = arg. parse_value ( ) ?;
8969 }
9070 "pad_with" => {
91- if arg. val . graphemes ( true ) . count ( ) < 2 {
92- result. pad_with = Cow :: Owned ( arg. val . into ( ) ) ;
71+ let pad_with_str = arg. val . error ( "pad_with must be specified" ) ?;
72+ if pad_with_str. graphemes ( true ) . count ( ) < 2 {
73+ result. pad_with = Cow :: Owned ( pad_with_str. into ( ) ) ;
9374 } else {
9475 return Err ( Error :: new (
9576 "pad_with must be an empty string or a single character" ,
9677 ) ) ;
9778 }
9879 }
9980 "range" => {
100- let ( start, end) = arg. val . split_once ( ".." ) . error ( "invalid range" ) ?;
81+ let ( start, end) = arg
82+ . val
83+ . error ( "range must be specified" ) ?
84+ . split_once ( ".." )
85+ . error ( "invalid range" ) ?;
10186 if !start. is_empty ( ) {
10287 result. range = start. parse :: < f64 > ( ) . error ( "invalid range start" ) ?
10388 ..=* result. range . end ( ) ;
@@ -108,7 +93,7 @@ impl EngFormatter {
10893 }
10994 }
11095 "show" => {
111- result. show = arg. val . parse ( ) . ok ( ) . error ( "show must be true or false" ) ?;
96+ result. show = arg. parse_value ( ) ?;
11297 }
11398 other => {
11499 return Err ( Error :: new ( format ! ( "Unknown argument for 'eng': '{other}'" ) ) ) ;
0 commit comments