1use std::fmt::Debug;
2use std::hash::Hash;
3
4pub trait EzShipIds: Eq + PartialEq + Clone + Hash + Debug {}
6
7#[derive(PartialEq, Eq, Clone, Debug, Hash)]
9pub struct NoClientShipId;
10impl EzShipIds for NoClientShipId {}
11
12#[allow(missing_docs)]
14#[derive(Ord, PartialOrd, PartialEq, Eq, Clone, Debug, Hash)]
15pub enum EzShipId<SID>
16where
17 SID: EzShipIds,
18{
19 Client(SID),
20}
21
22impl<SID> From<SID> for EzShipId<SID>
23where
24 SID: EzShipIds,
25{
26 fn from(cpt_id: SID) -> Self {
27 Self::Client(cpt_id)
28 }
29}