|
1 | 1 | //! Illustrates how to make a single system from multiple functions running in sequence,
|
2 | 2 | //! passing the output of the first into the input of the next.
|
3 | 3 |
|
4 |
| -use anyhow::Result; |
5 | 4 | use bevy::prelude::*;
|
| 5 | +use std::num::ParseIntError; |
6 | 6 |
|
7 | 7 | use bevy::log::LogPlugin;
|
8 | 8 | use bevy::utils::tracing::Level;
|
@@ -31,20 +31,20 @@ struct Message(String);
|
31 | 31 | struct OptionalWarning(Result<(), String>);
|
32 | 32 |
|
33 | 33 | // This system produces a Result<usize> output by trying to parse the Message resource.
|
34 |
| -fn parse_message_system(message: Res<Message>) -> Result<usize> { |
35 |
| - Ok(message.parse::<usize>()?) |
| 34 | +fn parse_message_system(message: Res<Message>) -> Result<usize, ParseIntError> { |
| 35 | + message.parse::<usize>() |
36 | 36 | }
|
37 | 37 |
|
38 | 38 | // This system produces a Result<()> output by trying to parse the Message resource.
|
39 |
| -fn parse_error_message_system(message: Res<Message>) -> Result<()> { |
| 39 | +fn parse_error_message_system(message: Res<Message>) -> Result<(), ParseIntError> { |
40 | 40 | message.parse::<usize>()?;
|
41 | 41 | Ok(())
|
42 | 42 | }
|
43 | 43 |
|
44 | 44 | // This system takes a Result<usize> input and either prints the parsed value or the error message
|
45 | 45 | // Try changing the Message resource to something that isn't an integer. You should see the error
|
46 | 46 | // message printed.
|
47 |
| -fn handler_system(In(result): In<Result<usize>>) { |
| 47 | +fn handler_system(In(result): In<Result<usize, ParseIntError>>) { |
48 | 48 | match result {
|
49 | 49 | Ok(value) => println!("parsed message: {value}"),
|
50 | 50 | Err(err) => println!("encountered an error: {err:?}"),
|
|
0 commit comments