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;
}