Add ModId

This commit is contained in:
Aleksey Kladov 2018-11-20 14:52:10 +03:00
parent 902778ccae
commit 4e683d7af1

View file

@ -72,17 +72,26 @@ pub(crate) trait NumericId: Clone + Eq + Hash {
fn to_u32(self) -> u32;
}
macro_rules! impl_numeric_id {
($id:ident) => {
impl NumericId for $id {
fn from_u32(id: u32) -> Self {
$id(id)
}
fn to_u32(self) -> u32 {
self.0
}
}
};
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub(crate) struct FnId(u32);
impl_numeric_id!(FnId);
impl NumericId for FnId {
fn from_u32(id: u32) -> FnId {
FnId(id)
}
fn to_u32(self) -> u32 {
self.0
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub(crate) struct ModId(u32);
impl_numeric_id!(ModId);
pub(crate) trait IdDatabase: salsa::Database {
fn id_maps(&self) -> &IdMaps;