switch font names to not include tag

This commit is contained in:
Jacob Lifshay 2026-01-04 18:31:56 -08:00
parent c8cd234d8f
commit b1d83b1d84
Signed by: programmerjake
SSH key fingerprint: SHA256:HnFTLGpSm4Q4Fj502oCFisjZSoakwEuTsJJMSke63RQ

View file

@ -68,6 +68,22 @@ mod non_nan_float {
} }
} }
const fn str_eq(a: &str, b: &str) -> bool {
let a = a.as_bytes();
let b = b.as_bytes();
if a.len() != b.len() {
return false;
}
let mut i = 0;
while i < a.len() {
if a[i] != b[i] {
return false;
}
i += 1;
}
true
}
macro_rules! make_enum_font { macro_rules! make_enum_font {
( (
enum $Font:ident { enum $Font:ident {
@ -75,7 +91,7 @@ macro_rules! make_enum_font {
$Other:ident $other_body:tt, $Other:ident $other_body:tt,
$(#[group] $(#[group]
$KnownFontGroup:ident { $KnownFontGroup:ident {
$(#[name = $known_font_name:literal, size = $known_font_size:literal] $(#[name_with_tag = $known_font_name_with_tag:literal, size = $known_font_size:literal]
$KnownFont:ident,)* $KnownFont:ident,)*
},)* },)*
} }
@ -101,10 +117,24 @@ macro_rules! make_enum_font {
} }
impl $Font { impl $Font {
const fn extract_font_name_from_font_name_with_tag(font_name_with_tag: &str) -> &str {
if let [b'A'..=b'Z',b'A'..=b'Z',b'A'..=b'Z',b'A'..=b'Z',b'A'..=b'Z',b'A'..=b'Z',b'+',_,..] = font_name_with_tag.as_bytes() {
font_name_with_tag.split_at(7).1
} else {
panic!("invalid font name with id")
}
}
const fn new_known(font_name: &str, size: NonNaNF32) -> Option<Self> {
match size.get() {
$($($known_font_size if str_eq(font_name, const { Self::extract_font_name_from_font_name_with_tag($known_font_name_with_tag) }) => Some(Self::$KnownFont),)*)*
_ => None,
}
}
fn new(font_name: &str, size: NonNaNF32) -> Self { fn new(font_name: &str, size: NonNaNF32) -> Self {
match (font_name, size.get()) { if let Some(v) = Self::new_known(font_name, size) {
$($(($known_font_name, $known_font_size) => Self::$KnownFont,)*)* v
_ => Self::Other { } else {
Self::Other {
font_name: Box::from(font_name), font_name: Box::from(font_name),
size, size,
} }
@ -119,7 +149,7 @@ macro_rules! make_enum_font {
const fn font_name(&self) -> &str { const fn font_name(&self) -> &str {
match self { match self {
Self::$Other { font_name, .. } => font_name, Self::$Other { font_name, .. } => font_name,
$($(Self::$KnownFont => $known_font_name,)*)* $($(Self::$KnownFont => const { Self::extract_font_name_from_font_name_with_tag($known_font_name_with_tag) },)*)*
} }
} }
const fn known_font_group(&self) -> Option<KnownFontGroup> { const fn known_font_group(&self) -> Option<KnownFontGroup> {
@ -135,6 +165,17 @@ macro_rules! make_enum_font {
} }
} }
} }
const _: () = {
$($(
let (known_font_name, known_font) = const {
let known_font_name = Font::extract_font_name_from_font_name_with_tag($known_font_name_with_tag);
(known_font_name, &Font::new_known(known_font_name, NonNaNF32::new($known_font_size).unwrap()).unwrap())
};
assert!(str_eq(known_font_name, known_font.font_name()));
assert!(matches!(known_font, Font::$KnownFont));
)*)*
};
}; };
} }
@ -147,352 +188,352 @@ make_enum_font! {
}, },
#[group] #[group]
InsnHeader { InsnHeader {
#[name = "YDJYQV+DejaVuSansCondensed-BoldOblique", size = 9.963] #[name_with_tag = "YDJYQV+DejaVuSansCondensed-BoldOblique", size = 9.963]
InsnHeader, InsnHeader,
}, },
#[group] #[group]
RtlFnHeader { RtlFnHeader {
#[name = "APUYSQ+zcoN-Regular", size = 9.963] #[name_with_tag = "APUYSQ+zcoN-Regular", size = 9.963]
RtlFnHeader, RtlFnHeader,
}, },
#[group] #[group]
PageHeader { PageHeader {
#[name = "MJBFWM+DejaVuSansCondensed", size = 9.963] #[name_with_tag = "MJBFWM+DejaVuSansCondensed", size = 9.963]
PageHeader, PageHeader,
}, },
#[group] #[group]
PageFooter { PageFooter {
#[name = "MJBFWM+DejaVuSansCondensed", size = 4.981] #[name_with_tag = "MJBFWM+DejaVuSansCondensed", size = 4.981]
PageFooter, PageFooter,
}, },
#[group] #[group]
InsnDesc { InsnDesc {
#[name = "MJBFWM+DejaVuSansCondensed", size = 8.966] #[name_with_tag = "MJBFWM+DejaVuSansCondensed", size = 8.966]
InsnDesc0, InsnDesc0,
#[name = "FZTIYT+CMMI9", size = 8.966] #[name_with_tag = "FZTIYT+CMMI9", size = 8.966]
InsnDesc1, InsnDesc1,
#[name = "ONUAYC+CMSSI9", size = 8.966] #[name_with_tag = "ONUAYC+CMSSI9", size = 8.966]
InsnDesc2, InsnDesc2,
#[name = "TNGBFZ+CMSY9", size = 8.966] #[name_with_tag = "TNGBFZ+CMSY9", size = 8.966]
InsnDesc3, InsnDesc3,
#[name = "WHMZPU+CMEX9", size = 8.966] #[name_with_tag = "WHMZPU+CMEX9", size = 8.966]
InsnDesc4, InsnDesc4,
#[name = "ZJTMSG+CMSS9", size = 8.966] #[name_with_tag = "ZJTMSG+CMSS9", size = 8.966]
InsnDesc5, InsnDesc5,
}, },
#[group] #[group]
InsnDescMisc { InsnDescMisc {
#[name = "MJBFWM+DejaVuSansCondensed", size = 2.377] #[name_with_tag = "MJBFWM+DejaVuSansCondensed", size = 2.377]
InsnDescMisc0, InsnDescMisc0,
#[name = "MJBFWM+DejaVuSansCondensed", size = 2.561] #[name_with_tag = "MJBFWM+DejaVuSansCondensed", size = 2.561]
InsnDescMisc1, InsnDescMisc1,
#[name = "MJBFWM+DejaVuSansCondensed", size = 4.492] #[name_with_tag = "MJBFWM+DejaVuSansCondensed", size = 4.492]
InsnDescMisc2, InsnDescMisc2,
#[name = "MJBFWM+DejaVuSansCondensed", size = 4.641] #[name_with_tag = "MJBFWM+DejaVuSansCondensed", size = 4.641]
InsnDescMisc3, InsnDescMisc3,
#[name = "MJBFWM+DejaVuSansCondensed", size = 4.772] #[name_with_tag = "MJBFWM+DejaVuSansCondensed", size = 4.772]
InsnDescMisc4, InsnDescMisc4,
#[name = "MJBFWM+DejaVuSansCondensed", size = 4.864] #[name_with_tag = "MJBFWM+DejaVuSansCondensed", size = 4.864]
InsnDescMisc5, InsnDescMisc5,
#[name = "MJBFWM+DejaVuSansCondensed", size = 4.925] #[name_with_tag = "MJBFWM+DejaVuSansCondensed", size = 4.925]
InsnDescMisc6, InsnDescMisc6,
#[name = "MJBFWM+DejaVuSansCondensed", size = 5.097] #[name_with_tag = "MJBFWM+DejaVuSansCondensed", size = 5.097]
InsnDescMisc7, InsnDescMisc7,
#[name = "MJBFWM+DejaVuSansCondensed", size = 5.123] #[name_with_tag = "MJBFWM+DejaVuSansCondensed", size = 5.123]
InsnDescMisc8, InsnDescMisc8,
#[name = "MJBFWM+DejaVuSansCondensed", size = 5.131] #[name_with_tag = "MJBFWM+DejaVuSansCondensed", size = 5.131]
InsnDescMisc9, InsnDescMisc9,
#[name = "MJBFWM+DejaVuSansCondensed", size = 5.516] #[name_with_tag = "MJBFWM+DejaVuSansCondensed", size = 5.516]
InsnDescMisc10, InsnDescMisc10,
#[name = "MJBFWM+DejaVuSansCondensed", size = 5.604] #[name_with_tag = "MJBFWM+DejaVuSansCondensed", size = 5.604]
InsnDescMisc11, InsnDescMisc11,
#[name = "MJBFWM+DejaVuSansCondensed", size = 5.634] #[name_with_tag = "MJBFWM+DejaVuSansCondensed", size = 5.634]
InsnDescMisc12, InsnDescMisc12,
#[name = "MJBFWM+DejaVuSansCondensed", size = 5.906] #[name_with_tag = "MJBFWM+DejaVuSansCondensed", size = 5.906]
InsnDescMisc13, InsnDescMisc13,
#[name = "MJBFWM+DejaVuSansCondensed", size = 6.033] #[name_with_tag = "MJBFWM+DejaVuSansCondensed", size = 6.033]
InsnDescMisc14, InsnDescMisc14,
#[name = "MJBFWM+DejaVuSansCondensed", size = 6.068] #[name_with_tag = "MJBFWM+DejaVuSansCondensed", size = 6.068]
InsnDescMisc15, InsnDescMisc15,
#[name = "MJBFWM+DejaVuSansCondensed", size = 6.213] #[name_with_tag = "MJBFWM+DejaVuSansCondensed", size = 6.213]
InsnDescMisc16, InsnDescMisc16,
#[name = "MJBFWM+DejaVuSansCondensed", size = 6.252] #[name_with_tag = "MJBFWM+DejaVuSansCondensed", size = 6.252]
InsnDescMisc17, InsnDescMisc17,
#[name = "MJBFWM+DejaVuSansCondensed", size = 6.962] #[name_with_tag = "MJBFWM+DejaVuSansCondensed", size = 6.962]
InsnDescMisc18, InsnDescMisc18,
#[name = "MJBFWM+DejaVuSansCondensed", size = 7.977] #[name_with_tag = "MJBFWM+DejaVuSansCondensed", size = 7.977]
InsnDescMisc19, InsnDescMisc19,
}, },
#[group] #[group]
InsnDescCode { InsnDescCode {
#[name = "APUYSQ+zcoN-Regular", size = 6.974] #[name_with_tag = "APUYSQ+zcoN-Regular", size = 6.974]
InsnDescCode, InsnDescCode,
}, },
#[group] #[group]
InsnDescCodeMisc { InsnDescCodeMisc {
#[name = "APUYSQ+zcoN-Regular", size = 3.587] #[name_with_tag = "APUYSQ+zcoN-Regular", size = 3.587]
InsnDescCodeMisc0, InsnDescCodeMisc0,
#[name = "APUYSQ+zcoN-Regular", size = 4.483] #[name_with_tag = "APUYSQ+zcoN-Regular", size = 4.483]
InsnDescCodeMisc1, InsnDescCodeMisc1,
}, },
#[group] #[group]
InsnDescItalic { InsnDescItalic {
#[name = "CGMSHV+DejaVuSansCondensed-Oblique", size = 8.966] #[name_with_tag = "CGMSHV+DejaVuSansCondensed-Oblique", size = 8.966]
InsnDescItalic, InsnDescItalic,
}, },
#[group] #[group]
InsnDescBold { InsnDescBold {
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 8.966] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 8.966]
InsnDescBold, InsnDescBold,
}, },
#[group] #[group]
InsnDescBoldItalic { InsnDescBoldItalic {
#[name = "YDJYQV+DejaVuSansCondensed-BoldOblique", size = 8.966] #[name_with_tag = "YDJYQV+DejaVuSansCondensed-BoldOblique", size = 8.966]
InsnDescBoldItalic, InsnDescBoldItalic,
}, },
#[group] #[group]
InsnDescSmall { InsnDescSmall {
#[name = "MJBFWM+DejaVuSansCondensed", size = 7.97] #[name_with_tag = "MJBFWM+DejaVuSansCondensed", size = 7.97]
InsnDescSmall, InsnDescSmall,
}, },
#[group] #[group]
InsnDescSmallItalic { InsnDescSmallItalic {
#[name = "CGMSHV+DejaVuSansCondensed-Oblique", size = 7.97] #[name_with_tag = "CGMSHV+DejaVuSansCondensed-Oblique", size = 7.97]
InsnDescSmallItalic, InsnDescSmallItalic,
}, },
#[group] #[group]
InsnDescSmallBold { InsnDescSmallBold {
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 7.97] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 7.97]
InsnDescSmallBold, InsnDescSmallBold,
}, },
#[group] #[group]
InsnDescSmallBoldItalic { InsnDescSmallBoldItalic {
#[name = "YDJYQV+DejaVuSansCondensed-BoldOblique", size = 7.97] #[name_with_tag = "YDJYQV+DejaVuSansCondensed-BoldOblique", size = 7.97]
InsnDescSmallBoldItalic, InsnDescSmallBoldItalic,
}, },
#[group] #[group]
InsnDescBoldMisc { InsnDescBoldMisc {
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 2.21] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 2.21]
InsnDescBoldMisc0, InsnDescBoldMisc0,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 2.399] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 2.399]
InsnDescBoldMisc1, InsnDescBoldMisc1,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 2.763] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 2.763]
InsnDescBoldMisc2, InsnDescBoldMisc2,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 2.946] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 2.946]
InsnDescBoldMisc3, InsnDescBoldMisc3,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 2.949] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 2.949]
InsnDescBoldMisc4, InsnDescBoldMisc4,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 2.999] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 2.999]
InsnDescBoldMisc5, InsnDescBoldMisc5,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 3.065] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 3.065]
InsnDescBoldMisc6, InsnDescBoldMisc6,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 3.086] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 3.086]
InsnDescBoldMisc7, InsnDescBoldMisc7,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 3.183] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 3.183]
InsnDescBoldMisc8, InsnDescBoldMisc8,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 3.686] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 3.686]
InsnDescBoldMisc9, InsnDescBoldMisc9,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 3.744] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 3.744]
InsnDescBoldMisc10, InsnDescBoldMisc10,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 3.825] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 3.825]
InsnDescBoldMisc11, InsnDescBoldMisc11,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 3.842] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 3.842]
InsnDescBoldMisc12, InsnDescBoldMisc12,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 3.857] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 3.857]
InsnDescBoldMisc13, InsnDescBoldMisc13,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 3.979] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 3.979]
InsnDescBoldMisc14, InsnDescBoldMisc14,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 4.032] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 4.032]
InsnDescBoldMisc15, InsnDescBoldMisc15,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 4.112] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 4.112]
InsnDescBoldMisc16, InsnDescBoldMisc16,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 4.161] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 4.161]
InsnDescBoldMisc17, InsnDescBoldMisc17,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 4.206] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 4.206]
InsnDescBoldMisc18, InsnDescBoldMisc18,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 4.353] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 4.353]
InsnDescBoldMisc19, InsnDescBoldMisc19,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 4.378] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 4.378]
InsnDescBoldMisc20, InsnDescBoldMisc20,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 4.434] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 4.434]
InsnDescBoldMisc21, InsnDescBoldMisc21,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 4.595] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 4.595]
InsnDescBoldMisc22, InsnDescBoldMisc22,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 4.619] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 4.619]
InsnDescBoldMisc23, InsnDescBoldMisc23,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 4.647] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 4.647]
InsnDescBoldMisc24, InsnDescBoldMisc24,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 4.68] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 4.68]
InsnDescBoldMisc25, InsnDescBoldMisc25,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 4.693] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 4.693]
InsnDescBoldMisc26, InsnDescBoldMisc26,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 4.736] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 4.736]
InsnDescBoldMisc27, InsnDescBoldMisc27,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 4.781] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 4.781]
InsnDescBoldMisc28, InsnDescBoldMisc28,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 4.802] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 4.802]
InsnDescBoldMisc29, InsnDescBoldMisc29,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 4.995] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 4.995]
InsnDescBoldMisc30, InsnDescBoldMisc30,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 5.201] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 5.201]
InsnDescBoldMisc31, InsnDescBoldMisc31,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 5.258] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 5.258]
InsnDescBoldMisc32, InsnDescBoldMisc32,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 5.363] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 5.363]
InsnDescBoldMisc33, InsnDescBoldMisc33,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 5.442] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 5.442]
InsnDescBoldMisc34, InsnDescBoldMisc34,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 5.473] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 5.473]
InsnDescBoldMisc35, InsnDescBoldMisc35,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 5.485] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 5.485]
InsnDescBoldMisc36, InsnDescBoldMisc36,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 5.512] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 5.512]
InsnDescBoldMisc37, InsnDescBoldMisc37,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 5.543] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 5.543]
InsnDescBoldMisc38, InsnDescBoldMisc38,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 5.613] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 5.613]
InsnDescBoldMisc39, InsnDescBoldMisc39,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 5.744] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 5.744]
InsnDescBoldMisc40, InsnDescBoldMisc40,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 5.774] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 5.774]
InsnDescBoldMisc41, InsnDescBoldMisc41,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 5.809] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 5.809]
InsnDescBoldMisc42, InsnDescBoldMisc42,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 5.849] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 5.849]
InsnDescBoldMisc43, InsnDescBoldMisc43,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 5.911] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 5.911]
InsnDescBoldMisc44, InsnDescBoldMisc44,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 5.92] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 5.92]
InsnDescBoldMisc45, InsnDescBoldMisc45,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 5.962] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 5.962]
InsnDescBoldMisc46, InsnDescBoldMisc46,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 5.981] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 5.981]
InsnDescBoldMisc47, InsnDescBoldMisc47,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 6.146] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 6.146]
InsnDescBoldMisc48, InsnDescBoldMisc48,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 6.213] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 6.213]
InsnDescBoldMisc49, InsnDescBoldMisc49,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 6.221] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 6.221]
InsnDescBoldMisc50, InsnDescBoldMisc50,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 6.243] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 6.243]
InsnDescBoldMisc51, InsnDescBoldMisc51,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 6.55] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 6.55]
InsnDescBoldMisc52, InsnDescBoldMisc52,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 6.62] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 6.62]
InsnDescBoldMisc53, InsnDescBoldMisc53,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 6.699] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 6.699]
InsnDescBoldMisc54, InsnDescBoldMisc54,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 6.725] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 6.725]
InsnDescBoldMisc55, InsnDescBoldMisc55,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 6.751] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 6.751]
InsnDescBoldMisc56, InsnDescBoldMisc56,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 6.856] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 6.856]
InsnDescBoldMisc57, InsnDescBoldMisc57,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 8.029] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 8.029]
InsnDescBoldMisc58, InsnDescBoldMisc58,
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 8.406] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 8.406]
InsnDescBoldMisc59, InsnDescBoldMisc59,
}, },
#[group] #[group]
InsnDescSubscript { InsnDescSubscript {
#[name = "MJBFWM+DejaVuSansCondensed", size = 5.978] #[name_with_tag = "MJBFWM+DejaVuSansCondensed", size = 5.978]
InsnDescSubscript, InsnDescSubscript,
}, },
#[group] #[group]
InsnDescBoldSubscript { InsnDescBoldSubscript {
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 5.978] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 5.978]
InsnDescBoldSubscript, InsnDescBoldSubscript,
}, },
#[group] #[group]
InsnDescItalicSubscript { InsnDescItalicSubscript {
#[name = "CGMSHV+DejaVuSansCondensed-Oblique", size = 5.978] #[name_with_tag = "CGMSHV+DejaVuSansCondensed-Oblique", size = 5.978]
InsnDescItalicSubscript, InsnDescItalicSubscript,
}, },
#[group] #[group]
InsnDescBoldItalicSubscript { InsnDescBoldItalicSubscript {
#[name = "YDJYQV+DejaVuSansCondensed-BoldOblique", size = 5.978] #[name_with_tag = "YDJYQV+DejaVuSansCondensed-BoldOblique", size = 5.978]
InsnDescBoldItalicSubscript, InsnDescBoldItalicSubscript,
}, },
#[group] #[group]
InsnExtMnemonic { InsnExtMnemonic {
#[name = "APUYSQ+zcoN-Regular", size = 8.966] #[name_with_tag = "APUYSQ+zcoN-Regular", size = 8.966]
InsnExtMnemonic, InsnExtMnemonic,
}, },
#[group] #[group]
InsnCode { InsnCode {
#[name = "APUYSQ+zcoN-Regular", size = 7.97] #[name_with_tag = "APUYSQ+zcoN-Regular", size = 7.97]
InsnCode0, InsnCode0,
#[name = "RRFUNA+CMSY8", size = 7.97] #[name_with_tag = "RRFUNA+CMSY8", size = 7.97]
InsnCode1, InsnCode1,
#[name = "HPXOZC+CMSS8", size = 7.97] #[name_with_tag = "HPXOZC+CMSS8", size = 7.97]
InsnCode2, InsnCode2,
}, },
#[group] #[group]
InsnCodeSubscript { InsnCodeSubscript {
#[name = "APUYSQ+zcoN-Regular", size = 5.978] #[name_with_tag = "APUYSQ+zcoN-Regular", size = 5.978]
InsnCodeSubscript0, InsnCodeSubscript0,
#[name = "DBQTKF+CMSY6", size = 5.978] #[name_with_tag = "DBQTKF+CMSY6", size = 5.978]
InsnCodeSubscript1, InsnCodeSubscript1,
}, },
#[group] #[group]
TitlePageBig { TitlePageBig {
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 24.787] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 24.787]
TitlePageBig, TitlePageBig,
}, },
#[group] #[group]
TitlePageVersion { TitlePageVersion {
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 9.963] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 9.963]
TitlePageVersion, TitlePageVersion,
}, },
#[group] #[group]
TitlePageTm { TitlePageTm {
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 6.974] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 6.974]
TitlePageTm, TitlePageTm,
}, },
#[group] #[group]
TitlePageRev { TitlePageRev {
#[name = "MJBFWM+DejaVuSansCondensed", size = 6.974] #[name_with_tag = "MJBFWM+DejaVuSansCondensed", size = 6.974]
TitlePageRev, TitlePageRev,
}, },
#[group] #[group]
TitlePageBook { TitlePageBook {
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 20.663] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 20.663]
TitlePageBook, TitlePageBook,
}, },
#[group] #[group]
LegalPageItalic { LegalPageItalic {
#[name = "CGMSHV+DejaVuSansCondensed-Oblique", size = 9.963] #[name_with_tag = "CGMSHV+DejaVuSansCondensed-Oblique", size = 9.963]
LegalPageItalic, LegalPageItalic,
}, },
#[group] #[group]
ChangeSummaryPageBold { ChangeSummaryPageBold {
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 11.955] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 11.955]
ChangeSummaryPageBold, ChangeSummaryPageBold,
}, },
#[group] #[group]
ChapterTitle { ChapterTitle {
#[name = "NHUPPK+DejaVuSansCondensed-Bold", size = 17.215] #[name_with_tag = "NHUPPK+DejaVuSansCondensed-Bold", size = 17.215]
ChapterTitle, ChapterTitle,
}, },
#[group] #[group]
MathMisc { MathMisc {
#[name = "AAJMKT+CMMI6", size = 5.978] #[name_with_tag = "AAJMKT+CMMI6", size = 5.978]
MathMisc0, MathMisc0,
#[name = "CUTMFD+CMSSI8", size = 5.978] #[name_with_tag = "CUTMFD+CMSSI8", size = 5.978]
MathMisc1, MathMisc1,
#[name = "CUTMFD+CMSSI8", size = 7.97] #[name_with_tag = "CUTMFD+CMSSI8", size = 7.97]
MathMisc2, MathMisc2,
#[name = "FZTIYT+CMMI9", size = 5.734] #[name_with_tag = "FZTIYT+CMMI9", size = 5.734]
MathMisc3, MathMisc3,
#[name = "FZTIYT+CMMI9", size = 7.168] #[name_with_tag = "FZTIYT+CMMI9", size = 7.168]
MathMisc4, MathMisc4,
#[name = "HONFQS+CMMI8", size = 7.97] #[name_with_tag = "HONFQS+CMMI8", size = 7.97]
MathMisc5, MathMisc5,
#[name = "HPXOZC+CMSS8", size = 5.978] #[name_with_tag = "HPXOZC+CMSS8", size = 5.978]
MathMisc6, MathMisc6,
#[name = "LLVRDD+CMSY10", size = 11.955] #[name_with_tag = "LLVRDD+CMSY10", size = 11.955]
MathMisc7, MathMisc7,
#[name = "ZJTMSG+CMSS9", size = 7.168] #[name_with_tag = "ZJTMSG+CMSS9", size = 7.168]
MathMisc8, MathMisc8,
}, },
} }
@ -503,21 +544,6 @@ impl Font {
self.size() * const { 3.985 / Font::InsnCode0.size() } self.size() * const { 3.985 / Font::InsnCode0.size() }
} }
const fn line_height_helper(&self) -> f32 { const fn line_height_helper(&self) -> f32 {
const fn str_eq(a: &str, b: &str) -> bool {
let a = a.as_bytes();
let b = b.as_bytes();
if a.len() != b.len() {
return false;
}
let mut i = 0;
while i < a.len() {
if a[i] != b[i] {
return false;
}
i += 1;
}
true
}
let font_name = self.font_name(); let font_name = self.font_name();
let mut i = 0; let mut i = 0;
while i < KnownFontGroup::INSN_CODE_FONT_GROUPS.len() { while i < KnownFontGroup::INSN_CODE_FONT_GROUPS.len() {