Order

Trait Order 

Source
pub trait Order:
    'static
    + Debug
    + AsAny
    + Send
    + Sync
    + Serialize
    + Deserialize {
    // Required methods
    fn deps(
        &self,
        map: &Map,
        state: &MapState,
        orders: &Orders,
        this_prov: &str,
    ) -> HashSet<String>;
    fn adjudicate(
        &self,
        map: &Map,
        state: &MapState,
        orders: &Orders,
        this_prov: &str,
        order_status: &HashMap<String, bool>,
    ) -> Option<bool>;
    fn as_owned(&self) -> Box<dyn Order>;
}
Expand description

Represents an order object.

Downcasting is supported via Any::downcast_ref and Any::is.

Required Methods§

Source

fn deps( &self, map: &Map, state: &MapState, orders: &Orders, this_prov: &str, ) -> HashSet<String>

Return orders (identified by source province) that this order depends on for resolution.

Source

fn adjudicate( &self, map: &Map, state: &MapState, orders: &Orders, this_prov: &str, order_status: &HashMap<String, bool>, ) -> Option<bool>

Based on the given order_status information, determine whether this order succeeds or fails.

Source

fn as_owned(&self) -> Box<dyn Order>

Trait Implementations§

Source§

impl Clone for Box<dyn Order>

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Deref for dyn Order

Source§

type Target = dyn Any

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl<'typetag> Serialize for dyn Order + 'typetag

Source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl<'typetag> Serialize for dyn Order + Send + 'typetag

Source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl<'typetag> Serialize for dyn Order + Send + Sync + 'typetag

Source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl<'typetag> Serialize for dyn Order + Sync + 'typetag

Source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more

Implementors§