diff --git a/crates/control/src/role_assignment.rs b/crates/control/src/role_assignment.rs index 8e8c58aca8..9c75f5e3aa 100644 --- a/crates/control/src/role_assignment.rs +++ b/crates/control/src/role_assignment.rs @@ -387,7 +387,7 @@ impl RoleAssignment { player_number: *context.player_number, pose, ball_position, - time_to_reach_kick_position: context.time_to_reach_kick_position.copied(), + time_to_reach_kick_position: *context.time_to_reach_kick_position.unwrap(), }))) .wrap_err("failed to write StrikerMessage to hardware") } @@ -457,7 +457,7 @@ enum Event { #[derive(Clone, Copy, Debug)] struct StrikerEvent { player_number: PlayerNumber, - time_to_reach_kick_position: Option, + time_to_reach_kick_position: Duration, } #[allow(clippy::too_many_arguments)] @@ -580,7 +580,7 @@ fn claim_striker_or_other_role( optional_roles: &[Role], ) -> Role { let shorter_time_to_reach = - time_to_reach_kick_position < striker_event.time_to_reach_kick_position; + time_to_reach_kick_position.unwrap() < striker_event.time_to_reach_kick_position; let time_to_reach_viable = time_to_reach_kick_position.is_some_and(|duration| duration < Duration::from_secs(1200)); diff --git a/crates/spl_network_messages/src/lib.rs b/crates/spl_network_messages/src/lib.rs index ab609220fd..85a48b5a5d 100644 --- a/crates/spl_network_messages/src/lib.rs +++ b/crates/spl_network_messages/src/lib.rs @@ -36,8 +36,7 @@ pub struct StrikerMessage { pub player_number: PlayerNumber, pub pose: Pose2, pub ball_position: BallPosition, - // TODO: make non-optional - pub time_to_reach_kick_position: Option, + pub time_to_reach_kick_position: Duration, } #[derive(Clone, Copy, Debug, Default, Deserialize, Serialize)] @@ -127,7 +126,7 @@ mod tests { position: Point::origin(), age: Duration::MAX, }, - time_to_reach_kick_position: Some(Duration::MAX), + time_to_reach_kick_position: Duration::MAX, }); assert!(bincode::serialize(&test_message).unwrap().len() <= 128) }