pub struct CommandRequestId(pub u64);Expand description
Stable numeric identifier for CommandRequestId.
Tuple Fields§
§0: u64Implementations§
Source§impl CommandRequestId
impl CommandRequestId
Sourcepub const fn new(value: u64) -> CommandRequestId
pub const fn new(value: u64) -> CommandRequestId
Creates an identifier from its wire value.
Examples found in repository?
examples/decision_ticket.rs (line 152)
140fn resolve_aid_request(canwu: &mut Canwu) -> Result<(), Box<dyn std::error::Error>> {
141 let policy = WeightedUtilityPolicy::new(
142 "aid-utility",
143 "1",
144 UtilityProfile {
145 weights: BTreeMap::from([("alliance".to_owned(), 3), ("home_defense".to_owned(), 1)]),
146 },
147 );
148 let evaluation = canwu.drive_decision(
149 canwu.time(),
150 0,
151 DecisionRequestId::new(4),
152 Some(CommandRequestId::new(1)),
153 DecisionTicketId::new(1),
154 &policy,
155 )?;
156 assert!(matches!(evaluation, DecisionEvaluation::Prepared(_)));
157 canwu
158 .step_canonical()?
159 .expect("decision resolution boundary");
160 Ok(())
161}More examples
examples/continuous_game_loop.rs (line 277)
257 fn submit_player_command(&mut self) -> Result<(), CanwuError> {
258 let captured_at = self.presentation_time();
259 let due_at = if self.accumulated_sim_nanos == 0 {
260 self.authority.time()
261 } else {
262 self.authority
263 .time()
264 .checked_add(SIMULATION_QUANTUM)
265 .expect("the scripted command time must remain representable")
266 };
267 let envelope = CommandEnvelope::new(
268 Issuer::Actor(self.ids.commander),
269 Command::OrderMovement {
270 subject: EntityRef::Army(self.ids.army),
271 destination: self.ids.eastern_territory,
272 cargo: Vec::new(),
273 },
274 )
275 .at_time(due_at);
276 let request = CommandRequest::new(
277 CommandRequestId::new(1),
278 self.authority.revision(),
279 envelope,
280 );
281 let ingress = self.authority.enqueue_command(due_at, 0, request)?;
282
283 if self.verbose {
284 println!(
285 "INPUT: queued commander move as {:?}, captured_at={captured_at}, quantized_due_at={due_at}",
286 ingress.ingress_id,
287 );
288 }
289
290 // This drains ingress due at the current canonical time only. The
291 // mid-quantum command remains queued until normal accumulation reaches
292 // its quantized minute; future scheduled work is never jumped to.
293 let receipts = self.authority.advance_canonical(SimDuration::ZERO)?;
294 self.canonical_boundaries += receipts.len();
295 self.refresh_presentation_from_authority();
296 self.presentation.render(self.presentation_time());
297 if self.verbose {
298 self.print_frame(GameSpeed::X1);
299 }
300 self.report_new_events();
301 Ok(())
302 }Trait Implementations§
Source§impl Clone for CommandRequestId
impl Clone for CommandRequestId
Source§fn clone(&self) -> CommandRequestId
fn clone(&self) -> CommandRequestId
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for CommandRequestId
Source§impl Debug for CommandRequestId
impl Debug for CommandRequestId
Source§impl Default for CommandRequestId
impl Default for CommandRequestId
Source§fn default() -> CommandRequestId
fn default() -> CommandRequestId
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for CommandRequestId
impl<'de> Deserialize<'de> for CommandRequestId
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<CommandRequestId, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<CommandRequestId, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Display for CommandRequestId
impl Display for CommandRequestId
impl Eq for CommandRequestId
Source§impl Hash for CommandRequestId
impl Hash for CommandRequestId
Source§impl Ord for CommandRequestId
impl Ord for CommandRequestId
Source§fn cmp(&self, other: &CommandRequestId) -> Ordering
fn cmp(&self, other: &CommandRequestId) -> Ordering
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
1.21.0 (const: unstable) · Source§fn min(self, other: Self) -> Selfwhere
Self: Sized,
fn min(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the minimum of two values. Read more
Source§impl PartialEq for CommandRequestId
impl PartialEq for CommandRequestId
Source§impl PartialOrd for CommandRequestId
impl PartialOrd for CommandRequestId
Source§impl Serialize for CommandRequestId
impl Serialize for CommandRequestId
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
impl StructuralPartialEq for CommandRequestId
Auto Trait Implementations§
impl Freeze for CommandRequestId
impl RefUnwindSafe for CommandRequestId
impl Send for CommandRequestId
impl Sync for CommandRequestId
impl Unpin for CommandRequestId
impl UnsafeUnpin for CommandRequestId
impl UnwindSafe for CommandRequestId
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more