write_fonts/tables/
instance_record.rs1#[allow(unused_imports)]
4use crate::codegen_prelude::*;
5
6#[derive(Debug, Clone, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
8#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
9pub struct InstanceRecord {
10 pub subfamily_name_id: NameId,
12 pub flags: u16,
14 pub coordinates: Vec<Fixed>,
16 pub post_script_name_id: Option<NameId>,
18}
19
20impl FontWrite for InstanceRecord {
21 fn write_into(&self, writer: &mut TableWriter) {
22 self.subfamily_name_id.write_into(writer);
23 self.flags.write_into(writer);
24 self.coordinates.write_into(writer);
25 if let Some(name_id) = self.post_script_name_id {
26 name_id.write_into(writer);
27 }
28 }
29}
30
31impl Validate for InstanceRecord {
32 fn validate_impl(&self, _ctx: &mut ValidationCtx) {}
33}
34
35impl<'a> FromObjRef<read_fonts::tables::fvar::InstanceRecord<'a>> for InstanceRecord {
36 fn from_obj_ref(from: &read_fonts::tables::fvar::InstanceRecord<'a>, _data: FontData) -> Self {
37 InstanceRecord {
38 subfamily_name_id: from.subfamily_name_id,
39 flags: from.flags,
40 coordinates: from.coordinates.iter().map(|be| be.get()).collect(),
41 post_script_name_id: from.post_script_name_id,
42 }
43 }
44}