bevy_fallible

Crates.io Docs.rs License

A simple plugin to install fallible systems to bevy

API

Library provides two main components: #[fallible_system] attribute macro and SystemErrorEvent struct. Essentially, every fallible_system will generate a SystemErrorEvent event if it results in an error, and that's about it.

For simplier usage, there is fallibleSystemPlugin to register everything you'll need to recieve error events.

Example

```rust // Some system that might fail

[fallible_system]

fn system(assetserver: Res) -> anyhow::Result<()> { let handle: Handle = assetserver.load("texture")?; }

// Let's make another system to read every event about other // systems failures and report !

[derive(Default)]

struct ReportSystemState{ reader: EventReader } fn reportsystem(mut state: Local, mut events: ResMut>) { for event in state.reader.iter(&mut events) { println!("Error in {}: {}", event.systemname, event.error); } }

fn main() { App::build() .addplugin(fallibleSystemPlugin) .addstartupsystem(system.system()) .addsystem(report_system.system()) .run(); } ```