pub fn evaluate_for_dispatch(
fleet_state: &FleetState,
manifests: &SignedManifestSet,
quarantines: &QuarantineSet,
rollout_id: &RolloutId,
host: &HostId,
target_closure: &ClosureHash,
channel: &ChannelId,
tick_dispatched: &HashMap<BudgetId, u32>,
) -> Option<GateBlock>Expand description
First block wins. Cheapest-first; quarantine is FIRST for the anti-thrash property (see module docstring).
tick_dispatched is the per-budget counter the planner maintains
across a single plan_next() call so within-tick over-commit is
caught (see planner_gates::disruption_budget for the rationale).
Empty map = first host in the tick.