#[macro_export]
macro_rules! impl_id_struct {
($name:ident) => {
impl_id_struct!($name, usize, pub);
};
($name:ident, $id_type:ty) => {
impl_id_struct!($name, $id_type, pub);
};
($name:ident, $id_type:ty, $vis:vis) => {
#[allow(unused)]
impl $name {
#[inline]
$vis fn new(id: $id_type) -> $name {
Self(id)
}
#[inline]
$vis fn id(&self) -> $id_type {
self.0
}
}
};
}