This commit is contained in:
nora 2023-02-12 11:11:53 +01:00
parent 478a3c15e1
commit 98eaa92612
6 changed files with 263 additions and 3 deletions

View file

@ -27,6 +27,18 @@ macro_rules! const_group_with_fmt {
}
}
impl std::fmt::Display for $struct_name {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self.0 {
$(
$value => f.write_str(stringify!($name)),
)*
a => write!(f, "{}({a})", $group_name)
}
}
}
impl PartialEq<$ty> for $struct_name {
fn eq(&self, other: &$ty) -> bool {
self.0 == *other

View file

@ -9,15 +9,27 @@ use crate::{
};
use bstr::BStr;
use std::{fmt::Debug, mem, string};
use std::{fmt::{Debug, Display}, mem, string};
use bytemuck::{Pod, PodCastError, Zeroable};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Zeroable, Pod)]
#[derive(Clone, Copy, PartialEq, Eq, Hash, Zeroable, Pod)]
#[repr(transparent)]
pub struct Addr(pub u64);
impl Debug for Addr {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{:x}", self.0)
}
}
impl Display for Addr {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{:x}", self.0)
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Zeroable, Pod)]
#[repr(transparent)]
pub struct Offset(pub u64);