1// This is a program that is trying to use a completed version of the
2// `total_cost` function from the previous exercise. It's not working though!
3// Why not? What should we do to fix it?
4
5use std::num::ParseIntError;
6
7// Don't change this function.
8fn total_cost(item_quantity: &str) -> Result<i32, ParseIntError> {
9 let processing_fee = 1;
10 let cost_per_item = 5;
11 let qty = item_quantity.parse::<i32>()?;
12
13 Ok(qty * cost_per_item + processing_fee)
14}
15
16fn main() -> Result<(), ParseIntError> {
17 // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ added
18 let mut tokens = 100;
19 let pretend_user_input = "8";
20
21 let cost = total_cost(pretend_user_input)?;
22
23 if cost > tokens {
24 println!("You can't afford that many!");
25 } else {
26 tokens -= cost;
27 println!("You now have {tokens} tokens.");
28 }
29
30 // Added this line to return the `Ok` variant of the expected `Result`.
31 Ok(())
32}