use error_tools ::untyped :: { Result, format_err };
fn parse_number( input: &str ) -> Result< u32 >
{
input.trim().parse :: < u32 >()
.map_err( | e | format_err!( "Failed to parse '{input}': {e}" ) )
}
fn process_input( input: &str ) -> Result< u32 >
{
let num = parse_number( input )?; Ok( num * 2 )
}
fn main()
{
match process_input( "42" )
{
Ok( result ) => println!( "Success: 42 * 2 = {result}" ),
Err( e ) => println!( "Error: {e}" ),
}
match process_input( "not a number" )
{
Ok( result ) => println!( "Success: {result}" ),
Err( e ) => println!( "Error: {e}" ),
}
}