use anyhow::Result; use bevy::prelude::*; fn main() { App::build() .add_resource(Message("42".to_string())) .add_system(parse_message_system.chain(handler_system)) .run(); } struct Message(String); // this system produces a Result output by trying to parse the Message resource fn parse_message_system(message: Res) -> Result { Ok(message.0.parse::()?) } // This system takes a Result input and either prints the parsed value or the error message // Try changing the Message resource to something that isn't an integer. You should see the error message printed. fn handler_system(In(result): In>) { match result { Ok(value) => println!("parsed message: {}", value), Err(err) => println!("encountered an error: {:?}", err), } }