IyesGames/iyes_progress

0.4.0 doesn't seem to work?

Closed this issue · 1 comments

With these deps:

bevy = "0.8.0"
iyes_loopless = "0.7.0"
iyes_progress = "0.4.0" 

And a system like this:

            .add_system_set(
                ConditionSet::new()
                    .run_in_state(GameState::Loading)
                    .with_system(setup.track_progress())
                    .into(),
            )

Where setup looks something like:

pub fn setup(mut commands: Commands) -> Progress {
    commands
        .spawn()
        .insert(RenderCamera::default())
        .insert(Controller::default());

    true.into()
}

I consistently get an unhappy compiler:

error[E0277]: the trait bound `ParallelSystemDescriptor: IntoSystem<(), (), _>` is not satisfied
   --> src\camera.rs:71:34
    |
71  |                     .with_system(setup.track_progress())
    |                      ----------- ^^^^^^^^^^^^^^^^^^^^^^ the trait `IntoSystem<(), (), _>` is not implemented for `ParallelSystemDescriptor`
    |                      |
    |                      required by a bound introduced by this call
    |
    = help: the trait `AddConditionalToSet<ConditionSystemSet, ()>` is implemented for `ConditionalSystemDescriptor`
    = note: required because of the requirements on the impl of `iyes_loopless::condition::IntoConditionalSystem<_>` for `ParallelSystemDescriptor`
    = note: required because of the requirements on the impl of `AddConditionalToSet<ConditionSystemSet, _>` for `ParallelSystemDescriptor`
note: required by a bound in `iyes_loopless::condition::ConditionSet::with_system`
   --> c:\dev\tools\cargo\registry\src\github.com-1ecc6299db9ec823\iyes_loopless-0.7.0\src\condition.rs:652:12
    |
652 |         S: AddConditionalToSet<ConditionSystemSet, P>,
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `iyes_loopless::condition::ConditionSet::with_system`

For more information about this error, try `rustc --explain E0277`.

It isn't clear to me why this wouldn't be satisfied, but I'm relatively new to Rust trait stuff.

This was due to not specifying the iyes_loopless feature required for the two libs to interop.

iyes_progress = { version = "0.5", features = ["iyes_loopless", "assets"] }