fn filter_idle_canisters(
    ordered_canister_ids: &[CanisterId],
    all_canister_states: &BTreeMap<CanisterId, CanisterState>,
) -> Vec<CanisterId> {
    // Consider only canisters with some input messages for execution.
    ordered_canister_ids
        .iter()
        .filter(|canister_id| all_canister_states.get(canister_id).unwrap().has_input())
        .cloned()
        .collect()
}
// Returns a list of canisters that can be executed.
// Does not alter the order of canisters.
Returns a list of canisters that can be executed.
Does not alter the order of canisters.
Returns a list of canisters that can be executed . Does not alter the order of canisters .
fn filter_idle_canisters(
    ordered_canister_ids: &[CanisterId],
    all_canister_states: &BTreeMap<CanisterId, CanisterState>,
) -> Vec<CanisterId> {
    // Consider only canisters with some input messages for execution.
    ordered_canister_ids
        .iter()
        .filter(|canister_id| all_canister_states.get(canister_id).unwrap().has_input())
        .cloned()
        .collect()
}
fn filter_idle_canisters ( ordered_canister_ids : & [ CanisterId ] , all_canister_states : & BTreeMap < CanisterId , CanisterState > , ) -> Vec < CanisterId > { // Consider only canisters with some input messages for execution. ordered_canister_ids . iter ( ) . filter ( | canister_id | all_canister_states . get ( canister_id ) . unwrap ( ) . has_input ( ) ) . cloned ( ) . collect ( ) }
Returns a list of canisters that can be executed.
Returns a list of canisters that can be executed .
ordered_canister_ids
&[CanisterId]
all_canister_states
&BTreeMap<CanisterId, CanisterState>
ordered_canister_ids
&[CanisterId]
all_canister_states
&BTreeMap<CanisterId, CanisterState>