nuit_core/utils/
has_id.rs1use crate::Id;
2
3pub trait HasId {
5 fn id(&self) -> Id;
6}
7
8macro_rules! impl_integer_has_id {
9 ($($tys:ty),*) => {
10 $(impl HasId for $tys {
11 fn id(&self) -> Id {
12 Id::index(*self as i64)
13 }
14 })*
15 };
16}
17
18impl_integer_has_id!(
19 u8, u16, u32, u64, usize,
20 i8, i16, i32, i64, isize
21);
22
23impl HasId for String {
24 fn id(&self) -> Id {
25 Id::string(self)
26 }
27}
28
29impl<'a> HasId for &'a str {
30 fn id(&self) -> Id {
31 Id::string(*self)
32 }
33}