ttf_name_decoder/
windows.rs

1use crate::macros::generate_id_table;
2use crate::{decoders, Decoder, Error, Result};
3
4pub fn get_decoder(encoding_id: u16) -> Result<Decoder> {
5    match EncodingId::try_from(encoding_id)? {
6        EncodingId::Symbol => Err(Error::UnsupportedEncoding),
7        EncodingId::UnicodeBMP => Ok(decoders::utf16_be_decode),
8        EncodingId::ShiftJIS => Ok(decoders::shift_jis_decode),
9        EncodingId::PRC => Ok(decoders::gb18030_decode),
10        EncodingId::Big5 => Ok(decoders::big5_decode),
11        EncodingId::Wansung => Err(Error::UnsupportedEncoding),
12        EncodingId::Johab => Err(Error::UnsupportedEncoding),
13        EncodingId::UnicodeFull => Ok(decoders::utf16_be_decode),
14    }
15}
16
17// ref. https://docs.microsoft.com/en-us/typography/opentype/spec/name#platform-ids
18generate_id_table! (EncodingId, Error::UnsupportedEncoding, {
19    Symbol: 0,
20    UnicodeBMP: 1,
21    ShiftJIS: 2,
22    PRC: 3,
23    Big5: 4,
24    Wansung: 5,
25    Johab: 6,
26    UnicodeFull: 10,
27});