read_fonts/tables/
base.rs1use super::{layout::DeviceOrVariationIndex, variations::ItemVariationStore};
4
5include!("../../generated/generated_base.rs");
6
7#[cfg(test)]
8mod tests {
9 use font_test_data::bebuffer::BeBuffer;
10 use font_types::MajorMinor;
11
12 use super::*;
13
14 #[test]
15 fn example_1() {
17 let data = BeBuffer::new()
18 .push(MajorMinor::VERSION_1_0)
19 .push(8u16) .push(0x10c_u16) .push(4u16) .push(0x12_u16) .push(3u16) .push(Tag::new(b"hang"))
27 .push(Tag::new(b"ideo"))
28 .push(Tag::new(b"romn"))
29 .push(4u16) .push(Tag::new(b"cyrl"))
32 .push(0x1a_u16)
33 .push(Tag::new(b"devn"))
34 .push(0x60_u16)
35 .push(Tag::new(b"hani"))
36 .push(0x8a_u16)
37 .push(Tag::new(b"latn"))
38 .push(0xb4_u16);
39
40 let base = Base::read(data.data().into()).unwrap();
41 assert_eq!(base.version(), MajorMinor::VERSION_1_0);
42 let horiz = base.horiz_axis().unwrap().unwrap();
43 let base_tag = horiz.base_tag_list().unwrap().unwrap();
44 assert_eq!(
45 base_tag.baseline_tags(),
46 &[Tag::new(b"hang"), Tag::new(b"ideo"), Tag::new(b"romn")]
47 );
48 assert_eq!(base_tag.min_byte_range().end, 14);
49 let base_script = horiz.base_script_list().unwrap();
50 assert_eq!(
51 base_script.base_script_records()[3].base_script_tag(),
52 Tag::new(b"latn")
53 );
54 }
55}