pub struct WeightedUtilityPolicy {
pub identity: DecisionPolicyIdentity,
pub evaluator: WeightedUtilityEvaluator,
}Fields§
§identity: DecisionPolicyIdentity§evaluator: WeightedUtilityEvaluatorImplementations§
Source§impl WeightedUtilityPolicy
impl WeightedUtilityPolicy
Sourcepub fn new(
id: impl Into<String>,
version: impl Into<String>,
profile: UtilityProfile,
) -> WeightedUtilityPolicy
pub fn new( id: impl Into<String>, version: impl Into<String>, profile: UtilityProfile, ) -> WeightedUtilityPolicy
Examples found in repository?
examples/decision_ticket.rs (lines 140-146)
139fn resolve_aid_request(canwu: &mut Canwu) -> Result<(), Box<dyn std::error::Error>> {
140 let policy = WeightedUtilityPolicy::new(
141 "aid-utility",
142 "1",
143 UtilityProfile {
144 weights: BTreeMap::from([("alliance".to_owned(), 3), ("home_defense".to_owned(), 1)]),
145 },
146 );
147 let evaluation = canwu.drive_decision(
148 canwu.time(),
149 0,
150 DecisionRequestId::new(4),
151 Some(CommandRequestId::new(1)),
152 DecisionTicketId::new(1),
153 &policy,
154 )?;
155 assert!(matches!(evaluation, DecisionEvaluation::Prepared(_)));
156 canwu
157 .step_canonical()?
158 .expect("decision resolution boundary");
159 Ok(())
160}Trait Implementations§
Source§impl Clone for WeightedUtilityPolicy
impl Clone for WeightedUtilityPolicy
Source§fn clone(&self) -> WeightedUtilityPolicy
fn clone(&self) -> WeightedUtilityPolicy
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 moreSource§impl Debug for WeightedUtilityPolicy
impl Debug for WeightedUtilityPolicy
Source§impl DecisionPolicy for WeightedUtilityPolicy
impl DecisionPolicy for WeightedUtilityPolicy
fn identity(&self) -> &DecisionPolicyIdentity
fn decide( &self, ticket: &DecisionTicket, ) -> Result<PolicyDecision, DecisionError>
Source§impl<'de> Deserialize<'de> for WeightedUtilityPolicy
impl<'de> Deserialize<'de> for WeightedUtilityPolicy
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<WeightedUtilityPolicy, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<WeightedUtilityPolicy, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for WeightedUtilityPolicy
Source§impl PartialEq for WeightedUtilityPolicy
impl PartialEq for WeightedUtilityPolicy
Source§impl Serialize for WeightedUtilityPolicy
impl Serialize for WeightedUtilityPolicy
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 WeightedUtilityPolicy
Source§impl UtilityEvaluator for WeightedUtilityPolicy
impl UtilityEvaluator for WeightedUtilityPolicy
fn evaluate( &self, ticket: &DecisionTicket, option: &DecisionOption, ) -> Result<DecisionOptionEvaluation, DecisionError>
Auto Trait Implementations§
impl Freeze for WeightedUtilityPolicy
impl RefUnwindSafe for WeightedUtilityPolicy
impl Send for WeightedUtilityPolicy
impl Sync for WeightedUtilityPolicy
impl Unpin for WeightedUtilityPolicy
impl UnsafeUnpin for WeightedUtilityPolicy
impl UnwindSafe for WeightedUtilityPolicy
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