Skip to content

jakobhellermann/bevycheck

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bevycheck

Bevycheck helps debug bevy errors by adding procedural macros which aid the compiler in emitting better compilation errors.

If you get an error like the trait `IntoSystem<(), (), _>` is not implemented for fn item `for<'a> fn(bevy::prelude::ResMut<'a, [type error]>) {system}, simply add #[bevycheck::system] to your function, and a more helpful error messages should appear:

#[bevycheck::system]
fn system(commands: &mut Commands, query: Query<(Entity, &GlobalTransform)>) {
    // ...
}

How does it work?

It works by replacing

fn system(commands: &mut Commands, query: Query<(Entity, &GlobalTransform)>) {
  // ...
}

with

fn system() {
  assert_is_system_param::<&mut Commands>();
  assert_is_system_param::<Query<(Entity, &GlobalTransform)>>();
  panic!("remove bevycheck before running");
}

That way, without parameters the system is a valid system and the add_system call doesn't error anymore, and by asserting that each specific parameter must be a valid system param, rust can figure out which one's the culprit and print a more directed error message.

Bevy support table

bevy bevycheck
0.10 0.5
0.9 0.4
0.7 0.3
0.6 0.2
0.5 0.1

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages