Search code examples
rustbevy

Error when defining const for CollisionGroups in bevy


I have an error when I try to define this const in a character.rs file:

const COLLISION_GROUPS_DEFAULT: CollisionGroups = CollisionGroups::new(
    Group::GROUP_2,
    Group::ALL - Group::GROUP_3
);

The error is:

error[E0277]: cannot subtract `bevy_rapier2d::geometry::Group` from `bevy_rapier2d::geometry::Group` in const contexts

Solution

  • Instead of the - operator, you can use difference, which is const:

    const COLLISION_GROUPS_DEFAULT: CollisionGroups = CollisionGroups::new(
        Group::GROUP_2,
        Group::ALL.difference(Group::GROUP_3),
    );