pub struct TerritoryId(pub u64);Expand description
Stable numeric identifier for TerritoryId.
Tuple Fields§
§0: u64Implementations§
Source§impl TerritoryId
impl TerritoryId
Sourcepub const fn new(value: u64) -> TerritoryId
pub const fn new(value: u64) -> TerritoryId
Creates an identifier from its wire value.
Examples found in repository?
examples/phased_boundary.rs (line 14)
11fn grain_pool() -> ReservationPoolKey {
12 ReservationPoolKey::new(
13 StateKey::new("logistics", "grain"),
14 EntityRef::Territory(TerritoryId::new(1)),
15 "grain",
16 )
17}
18
19fn offer_grain(
20 _view: &SimulationView<'_>,
21 _context: &BoundaryContext,
22) -> Result<BoundaryProposal, CanwuError> {
23 Ok(BoundaryProposal {
24 offers: vec![ReservationOffer {
25 pool: grain_pool(),
26 capacity: 10,
27 }],
28 ..BoundaryProposal::default()
29 })
30}
31
32fn request_grain(
33 _view: &SimulationView<'_>,
34 _context: &BoundaryContext,
35) -> Result<BoundaryProposal, CanwuError> {
36 Ok(BoundaryProposal {
37 requests: vec![ReservationRequest {
38 request: "daily-grain".to_owned(),
39 pool: grain_pool(),
40 quantity: 6,
41 priority: 10,
42 tie_break: "western-garrison".to_owned(),
43 }],
44 ..BoundaryProposal::default()
45 })
46}
47
48fn apply_grain(
49 view: &SimulationView<'_>,
50 _context: &BoundaryContext,
51) -> Result<BoundaryProposal, CanwuError> {
52 let reservation = ReservationRef::new("example-demand", "request", "daily-grain");
53 let allocation = view.reservation(&reservation)?.ok_or_else(|| {
54 CanwuError::new(
55 ErrorCode::InvalidBoundary,
56 "the declared grain reservation did not produce allocation evidence",
57 )
58 })?;
59 let territory = EntityRef::Territory(TerritoryId::new(1));
60 Ok(BoundaryProposal {
61 directives: vec![
62 BoundaryDirective::SetComponent {
63 state: StateKey::new("garrison", "grain"),
64 entity: territory.clone(),
65 component: "daily_grant".to_owned(),
66 value: Value::from(allocation.granted),
67 summary: format!(
68 "Granted {} grain to the western garrison",
69 allocation.granted
70 ),
71 },
72 BoundaryDirective::Emit {
73 event_type: "grain_allocated".to_owned(),
74 summary: "The daily grain allocation settled".to_owned(),
75 affected: vec![territory],
76 },
77 ],
78 ..BoundaryProposal::default()
79 })
80}Trait Implementations§
Source§impl Clone for TerritoryId
impl Clone for TerritoryId
Source§fn clone(&self) -> TerritoryId
fn clone(&self) -> TerritoryId
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 TerritoryId
Source§impl Debug for TerritoryId
impl Debug for TerritoryId
Source§impl Default for TerritoryId
impl Default for TerritoryId
Source§fn default() -> TerritoryId
fn default() -> TerritoryId
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for TerritoryId
impl<'de> Deserialize<'de> for TerritoryId
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<TerritoryId, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<TerritoryId, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Display for TerritoryId
impl Display for TerritoryId
impl Eq for TerritoryId
Source§impl Hash for TerritoryId
impl Hash for TerritoryId
Source§impl Ord for TerritoryId
impl Ord for TerritoryId
Source§fn cmp(&self, other: &TerritoryId) -> Ordering
fn cmp(&self, other: &TerritoryId) -> 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 TerritoryId
impl PartialEq for TerritoryId
Source§impl PartialOrd for TerritoryId
impl PartialOrd for TerritoryId
Source§impl Serialize for TerritoryId
impl Serialize for TerritoryId
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 TerritoryId
Auto Trait Implementations§
impl Freeze for TerritoryId
impl RefUnwindSafe for TerritoryId
impl Send for TerritoryId
impl Sync for TerritoryId
impl Unpin for TerritoryId
impl UnsafeUnpin for TerritoryId
impl UnwindSafe for TerritoryId
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