#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
pub struct HartId(u32);
impl HartId {
#[inline(always)]
pub const fn new(val: u32) -> Self {
Self(val)
}
#[inline(always)]
pub const fn val(self) -> u32 {
self.0
}
#[inline(always)]
pub const fn as_index(self) -> usize {
self.0 as usize
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
pub struct CoreId(u32);
impl CoreId {
#[inline(always)]
pub const fn new(val: u32) -> Self {
Self(val)
}
#[inline(always)]
pub const fn val(self) -> u32 {
self.0
}
#[inline(always)]
pub const fn as_index(self) -> usize {
self.0 as usize
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
pub struct InstSeq(u64);
impl InstSeq {
#[inline(always)]
pub const fn new(val: u64) -> Self {
Self(val)
}
#[inline(always)]
pub const fn val(self) -> u64 {
self.0
}
#[inline(always)]
#[must_use]
pub const fn next(self) -> Self {
Self(self.0 + 1)
}
}