1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
use crate::ShortName;

use std::fmt::Debug;
use std::hash::Hash;

/// An addressable location in the Diplomacy world.
/// This trait is used during order parsing and mapping to allow for
/// orders that reference regions by name rather than by reference.
pub trait Location: ShortName + Clone + Debug + PartialEq + Eq + Hash {
    type Province: PartialEq;

    fn province(&self) -> &Self::Province;
}