write_fonts/generated/
generated_hhea.rs1#[allow(unused_imports)]
6use crate::codegen_prelude::*;
7
8#[derive(Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
10#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
11pub struct Hhea {
12 pub ascender: FWord,
14 pub descender: FWord,
16 pub line_gap: FWord,
19 pub advance_width_max: UfWord,
21 pub min_left_side_bearing: FWord,
24 pub min_right_side_bearing: FWord,
27 pub x_max_extent: FWord,
29 pub caret_slope_rise: i16,
32 pub caret_slope_run: i16,
34 pub caret_offset: i16,
38 pub number_of_h_metrics: u16,
40}
41
42impl Hhea {
43 #[allow(clippy::too_many_arguments)]
45 pub fn new(
46 ascender: FWord,
47 descender: FWord,
48 line_gap: FWord,
49 advance_width_max: UfWord,
50 min_left_side_bearing: FWord,
51 min_right_side_bearing: FWord,
52 x_max_extent: FWord,
53 caret_slope_rise: i16,
54 caret_slope_run: i16,
55 caret_offset: i16,
56 number_of_h_metrics: u16,
57 ) -> Self {
58 Self {
59 ascender,
60 descender,
61 line_gap,
62 advance_width_max,
63 min_left_side_bearing,
64 min_right_side_bearing,
65 x_max_extent,
66 caret_slope_rise,
67 caret_slope_run,
68 caret_offset,
69 number_of_h_metrics,
70 }
71 }
72}
73
74impl FontWrite for Hhea {
75 #[allow(clippy::unnecessary_cast)]
76 fn write_into(&self, writer: &mut TableWriter) {
77 (MajorMinor::VERSION_1_0 as MajorMinor).write_into(writer);
78 self.ascender.write_into(writer);
79 self.descender.write_into(writer);
80 self.line_gap.write_into(writer);
81 self.advance_width_max.write_into(writer);
82 self.min_left_side_bearing.write_into(writer);
83 self.min_right_side_bearing.write_into(writer);
84 self.x_max_extent.write_into(writer);
85 self.caret_slope_rise.write_into(writer);
86 self.caret_slope_run.write_into(writer);
87 self.caret_offset.write_into(writer);
88 (0 as i16).write_into(writer);
89 (0 as i16).write_into(writer);
90 (0 as i16).write_into(writer);
91 (0 as i16).write_into(writer);
92 (0 as i16).write_into(writer);
93 self.number_of_h_metrics.write_into(writer);
94 }
95 fn table_type(&self) -> TableType {
96 TableType::TopLevel(Hhea::TAG)
97 }
98}
99
100impl Validate for Hhea {
101 fn validate_impl(&self, _ctx: &mut ValidationCtx) {}
102}
103
104impl TopLevelTable for Hhea {
105 const TAG: Tag = Tag::new(b"hhea");
106}
107
108impl<'a> FromObjRef<read_fonts::tables::hhea::Hhea<'a>> for Hhea {
109 fn from_obj_ref(obj: &read_fonts::tables::hhea::Hhea<'a>, _: FontData) -> Self {
110 Hhea {
111 ascender: obj.ascender(),
112 descender: obj.descender(),
113 line_gap: obj.line_gap(),
114 advance_width_max: obj.advance_width_max(),
115 min_left_side_bearing: obj.min_left_side_bearing(),
116 min_right_side_bearing: obj.min_right_side_bearing(),
117 x_max_extent: obj.x_max_extent(),
118 caret_slope_rise: obj.caret_slope_rise(),
119 caret_slope_run: obj.caret_slope_run(),
120 caret_offset: obj.caret_offset(),
121 number_of_h_metrics: obj.number_of_h_metrics(),
122 }
123 }
124}
125
126#[allow(clippy::needless_lifetimes)]
127impl<'a> FromTableRef<read_fonts::tables::hhea::Hhea<'a>> for Hhea {}
128
129impl<'a> FontRead<'a> for Hhea {
130 fn read(data: FontData<'a>) -> Result<Self, ReadError> {
131 <read_fonts::tables::hhea::Hhea as FontRead>::read(data).map(|x| x.to_owned_table())
132 }
133}