@@ -256,149 +256,163 @@ fn parse_formatting(chars: &mut Peekable<Chars>, mut formatting: Formatting) ->
256256#[ cfg( test) ]
257257mod tests {
258258 use super :: * ;
259+ use std:: fmt:: Formatter ;
260+
261+ type Result = std:: result:: Result < ( ) , Box < dyn std:: error:: Error > > ;
262+
263+ #[ derive( Debug ) ]
264+ struct NotTokenErr ;
265+
266+ impl std:: fmt:: Display for NotTokenErr {
267+ fn fmt ( & self , f : & mut Formatter < ' _ > ) -> std:: fmt:: Result {
268+ write ! ( f, "expected token, got static" )
269+ }
270+ }
271+ impl std:: error:: Error for NotTokenErr { }
259272
260273 #[ test]
261- fn static_only ( ) {
262- let tokens = parse_input ( "hello world" ) . unwrap ( ) ;
263- println ! ( "{tokens:?}" ) ;
274+ fn static_only ( ) -> Result {
275+ let tokens = parse_input ( "hello world" ) ?;
264276
265277 assert_eq ! ( tokens. len( ) , 1 ) ;
266278 assert ! ( matches!( & tokens[ 0 ] , Part :: Static ( str ) if str == "hello world" ) ) ;
279+ Ok ( ( ) )
267280 }
268281
269282 #[ test]
270- fn basic ( ) {
271- let tokens = parse_input ( "{cpu_frequency}" ) . unwrap ( ) ;
272- println ! ( "{tokens:?}" ) ;
283+ fn basic ( ) -> Result {
284+ let tokens = parse_input ( "{cpu_frequency}" ) ?;
273285
274286 assert_eq ! ( tokens. len( ) , 1 ) ;
275287
276288 assert ! ( matches!( & tokens[ 0 ] , Part :: Token ( _) ) ) ;
277- let Part :: Token ( token) = tokens. get ( 0 ) . unwrap ( ) else {
278- return ;
289+ let Part :: Token ( token) = tokens. get ( 0 ) . expect ( "should exist" ) else {
290+ return Err ( Box :: new ( NotTokenErr ) ) ;
279291 } ;
280292
281293 assert_eq ! ( token. token, TokenType :: CpuFrequency ) ;
294+ Ok ( ( ) )
282295 }
283296
284297 #[ test]
285- fn named ( ) {
286- let tokens = parse_input ( "{cpu_frequency@cpu0}" ) . unwrap ( ) ;
287- println ! ( "{tokens:?}" ) ;
298+ fn named ( ) -> Result {
299+ let tokens = parse_input ( "{cpu_frequency@cpu0}" ) ?;
288300
289301 assert_eq ! ( tokens. len( ) , 1 ) ;
290302
291303 assert ! ( matches!( & tokens[ 0 ] , Part :: Token ( _) ) ) ;
292- let Part :: Token ( token) = tokens. get ( 0 ) . unwrap ( ) else {
293- return ;
304+ let Part :: Token ( token) = tokens. get ( 0 ) . expect ( "should exist" ) else {
305+ return Err ( Box :: new ( NotTokenErr ) ) ;
294306 } ;
295307
296308 assert_eq ! ( token. token, TokenType :: CpuFrequency ) ;
297309 assert ! ( matches!( & token. function, Function :: Name ( n) if n == "cpu0" ) ) ;
310+ Ok ( ( ) )
298311 }
299312
300313 #[ test]
301- fn conversion ( ) {
302- let tokens = parse_input ( "{cpu_frequency#G}" ) . unwrap ( ) ;
303- println ! ( "{tokens:?}" ) ;
314+ fn conversion ( ) -> Result {
315+ let tokens = parse_input ( "{cpu_frequency#G}" ) ?;
304316
305317 assert_eq ! ( tokens. len( ) , 1 ) ;
306318
307319 assert ! ( matches!( & tokens[ 0 ] , Part :: Token ( _) ) ) ;
308- let Part :: Token ( token) = tokens. get ( 0 ) . unwrap ( ) else {
309- return ;
320+ let Part :: Token ( token) = tokens. get ( 0 ) . expect ( "should exist" ) else {
321+ return Err ( Box :: new ( NotTokenErr ) ) ;
310322 } ;
311323
312324 assert_eq ! ( token. token, TokenType :: CpuFrequency ) ;
313325 assert_eq ! ( token. prefix, Prefix :: Giga ) ;
326+ Ok ( ( ) )
314327 }
315328
316329 #[ test]
317- fn formatting_basic ( ) {
318- let tokens = parse_input ( "{cpu_frequency:.2}" ) . unwrap ( ) ;
319- println ! ( "{tokens:?}" ) ;
330+ fn formatting_basic ( ) -> Result {
331+ let tokens = parse_input ( "{cpu_frequency:.2}" ) ?;
320332
321333 assert_eq ! ( tokens. len( ) , 1 ) ;
322334
323335 assert ! ( matches!( & tokens[ 0 ] , Part :: Token ( _) ) ) ;
324- let Part :: Token ( token) = tokens. get ( 0 ) . unwrap ( ) else {
325- return ;
336+ let Part :: Token ( token) = tokens. get ( 0 ) . expect ( "should exist" ) else {
337+ return Err ( Box :: new ( NotTokenErr ) ) ;
326338 } ;
327339
328340 assert_eq ! ( token. token, TokenType :: CpuFrequency ) ;
329341 assert_eq ! ( token. formatting. precision, 2 ) ;
342+ Ok ( ( ) )
330343 }
331344
332345 #[ test]
333- fn formatting_complex ( ) {
334- let tokens = parse_input ( "{cpu_frequency:0<5.2}" ) . unwrap ( ) ;
335- println ! ( "{tokens:?}" ) ;
346+ fn formatting_complex ( ) -> Result {
347+ let tokens = parse_input ( "{cpu_frequency:0<5.2}" ) ?;
336348
337349 assert_eq ! ( tokens. len( ) , 1 ) ;
338350
339351 assert ! ( matches!( & tokens[ 0 ] , Part :: Token ( _) ) ) ;
340- let Part :: Token ( token) = tokens. get ( 0 ) . unwrap ( ) else {
341- return ;
352+ let Part :: Token ( token) = tokens. get ( 0 ) . expect ( "should exist" ) else {
353+ return Err ( Box :: new ( NotTokenErr ) ) ;
342354 } ;
343355
344356 assert_eq ! ( token. token, TokenType :: CpuFrequency ) ;
345357 assert_eq ! ( token. formatting. fill, '0' ) ;
346358 assert_eq ! ( token. formatting. align, Alignment :: Left ) ;
347359 assert_eq ! ( token. formatting. width, 5 ) ;
348360 assert_eq ! ( token. formatting. precision, 2 ) ;
361+ Ok ( ( ) )
349362 }
350363
351364 #[ test]
352- fn complex ( ) {
353- let tokens = parse_input ( "{cpu_frequency@cpu0#G:.2}" ) . unwrap ( ) ;
354- println ! ( "{tokens:?}" ) ;
365+ fn complex ( ) -> Result {
366+ let tokens = parse_input ( "{cpu_frequency@cpu0#G:.2}" ) ?;
355367
356368 assert_eq ! ( tokens. len( ) , 1 ) ;
357369
358370 assert ! ( matches!( & tokens[ 0 ] , Part :: Token ( _) ) ) ;
359- let Part :: Token ( token) = tokens. get ( 0 ) . unwrap ( ) else {
360- return ;
371+ let Part :: Token ( token) = tokens. get ( 0 ) . expect ( "should exist" ) else {
372+ return Err ( Box :: new ( NotTokenErr ) ) ;
361373 } ;
362374
363375 assert_eq ! ( token. token, TokenType :: CpuFrequency ) ;
364376 assert ! ( matches!( & token. function, Function :: Name ( n) if n == "cpu0" ) ) ;
365377 assert_eq ! ( token. prefix, Prefix :: Giga ) ;
366378 assert_eq ! ( token. formatting. precision, 2 ) ;
379+
380+ Ok ( ( ) )
367381 }
368382
369383 #[ test]
370- fn static_then_token ( ) {
371- let tokens = parse_input ( "Freq: {cpu_frequency#G:.2}" ) . unwrap ( ) ;
372- println ! ( "{tokens:?}" ) ;
384+ fn static_then_token ( ) -> Result {
385+ let tokens = parse_input ( "Freq: {cpu_frequency#G:.2}" ) ?;
373386
374387 assert_eq ! ( tokens. len( ) , 2 ) ;
375388
376389 assert ! ( matches!( & tokens[ 0 ] , Part :: Static ( str ) if str == "Freq: " ) ) ;
377390
378391 assert ! ( matches!( & tokens[ 1 ] , Part :: Token ( _) ) ) ;
379- let Part :: Token ( token) = tokens. get ( 1 ) . unwrap ( ) else {
380- return ;
392+ let Part :: Token ( token) = tokens. get ( 1 ) . expect ( "should exist" ) else {
393+ return Err ( Box :: new ( NotTokenErr ) ) ;
381394 } ;
382395
383396 assert_eq ! ( token. token, TokenType :: CpuFrequency ) ;
384397 assert_eq ! ( token. formatting. precision, 2 ) ;
398+ Ok ( ( ) )
385399 }
386400
387401 #[ test]
388- fn token_then_static ( ) {
389- let tokens = parse_input ( "{cpu_frequency#G:.2} GHz" ) . unwrap ( ) ;
390- println ! ( "{tokens:?}" ) ;
402+ fn token_then_static ( ) -> Result {
403+ let tokens = parse_input ( "{cpu_frequency#G:.2} GHz" ) ?;
391404
392405 assert_eq ! ( tokens. len( ) , 2 ) ;
393406
394407 assert ! ( matches!( & tokens[ 0 ] , Part :: Token ( _) ) ) ;
395- let Part :: Token ( token) = tokens. get ( 0 ) . unwrap ( ) else {
396- return ;
408+ let Part :: Token ( token) = tokens. get ( 0 ) . expect ( "should exist" ) else {
409+ return Err ( Box :: new ( NotTokenErr ) ) ;
397410 } ;
398411
399412 assert_eq ! ( token. token, TokenType :: CpuFrequency ) ;
400413 assert_eq ! ( token. formatting. precision, 2 ) ;
401414
402415 assert ! ( matches!( & tokens[ 1 ] , Part :: Static ( str ) if str == " GHz" ) ) ;
416+ Ok ( ( ) )
403417 }
404418}
0 commit comments