1// https://docs.microsoft.com/en-us/typography/opentype/spec/featurelist
2
3#![allow(dead_code)]
4
5use crate::Tag;
6
7// `Character Variants N` and `Stylistic Set N` are excluded.
8
9pub const ACCESS_ALL_ALTERNATES: Tag = Tag::from_bytes(b"aalt");
10pub const ABOVE_BASE_FORMS: Tag = Tag::from_bytes(b"abvf");
11pub const ABOVE_BASE_MARK_POSITIONING: Tag = Tag::from_bytes(b"abvm");
12pub const ABOVE_BASE_SUBSTITUTIONS: Tag = Tag::from_bytes(b"abvs");
13pub const ALTERNATIVE_FRACTIONS: Tag = Tag::from_bytes(b"afrc");
14pub const AKHANDS: Tag = Tag::from_bytes(b"akhn");
15pub const BELOW_BASE_FORMS: Tag = Tag::from_bytes(b"blwf");
16pub const BELOW_BASE_MARK_POSITIONING: Tag = Tag::from_bytes(b"blwm");
17pub const BELOW_BASE_SUBSTITUTIONS: Tag = Tag::from_bytes(b"blws");
18pub const CONTEXTUAL_ALTERNATES: Tag = Tag::from_bytes(b"calt");
19pub const CASE_SENSITIVE_FORMS: Tag = Tag::from_bytes(b"case");
20pub const GLYPH_COMPOSITION_DECOMPOSITION: Tag = Tag::from_bytes(b"ccmp");
21pub const CONJUNCT_FORM_AFTER_RO: Tag = Tag::from_bytes(b"cfar");
22pub const CONJUNCT_FORMS: Tag = Tag::from_bytes(b"cjct");
23pub const CONTEXTUAL_LIGATURES: Tag = Tag::from_bytes(b"clig");
24pub const CENTERED_CJK_PUNCTUATION: Tag = Tag::from_bytes(b"cpct");
25pub const CAPITAL_SPACING: Tag = Tag::from_bytes(b"cpsp");
26pub const CONTEXTUAL_SWASH: Tag = Tag::from_bytes(b"cswh");
27pub const CURSIVE_POSITIONING: Tag = Tag::from_bytes(b"curs");
28pub const PETITE_CAPITALS_FROM_CAPITALS: Tag = Tag::from_bytes(b"c2pc");
29pub const SMALL_CAPITALS_FROM_CAPITALS: Tag = Tag::from_bytes(b"c2sc");
30pub const DISTANCES: Tag = Tag::from_bytes(b"dist");
31pub const DISCRETIONARY_LIGATURES: Tag = Tag::from_bytes(b"dlig");
32pub const DENOMINATORS: Tag = Tag::from_bytes(b"dnom");
33pub const DOTLESS_FORMS: Tag = Tag::from_bytes(b"dtls");
34pub const EXPERT_FORMS: Tag = Tag::from_bytes(b"expt");
35pub const FINAL_GLYPH_ON_LINE_ALTERNATES: Tag = Tag::from_bytes(b"falt");
36pub const TERMINAL_FORMS_1: Tag = Tag::from_bytes(b"fina");
37pub const TERMINAL_FORMS_2: Tag = Tag::from_bytes(b"fin2");
38pub const TERMINAL_FORMS_3: Tag = Tag::from_bytes(b"fin3");
39pub const FLATTENED_ACCENT_FORMS: Tag = Tag::from_bytes(b"flac");
40pub const FRACTIONS: Tag = Tag::from_bytes(b"frac");
41pub const FULL_WIDTHS: Tag = Tag::from_bytes(b"fwid");
42pub const HALF_FORMS: Tag = Tag::from_bytes(b"half");
43pub const HALANT_FORMS: Tag = Tag::from_bytes(b"haln");
44pub const ALTERNATE_HALF_WIDTHS: Tag = Tag::from_bytes(b"halt");
45pub const HISTORICAL_FORMS: Tag = Tag::from_bytes(b"hist");
46pub const HORIZONTAL_KANA_ALTERNATES: Tag = Tag::from_bytes(b"hkna");
47pub const HISTORICAL_LIGATURES: Tag = Tag::from_bytes(b"hlig");
48pub const HANGUL: Tag = Tag::from_bytes(b"hngl");
49pub const HOJO_KANJI_FORMS: Tag = Tag::from_bytes(b"hojo");
50pub const HALF_WIDTHS: Tag = Tag::from_bytes(b"hwid");
51pub const INITIAL_FORMS: Tag = Tag::from_bytes(b"init");
52pub const ISOLATED_FORMS: Tag = Tag::from_bytes(b"isol");
53pub const ITALICS: Tag = Tag::from_bytes(b"ital");
54pub const JUSTIFICATION_ALTERNATES: Tag = Tag::from_bytes(b"jalt");
55pub const JIS_78_FORMS: Tag = Tag::from_bytes(b"jp78");
56pub const JIS_83_FORMS: Tag = Tag::from_bytes(b"jp83");
57pub const JIS_90_FORMS: Tag = Tag::from_bytes(b"jp90");
58pub const JIS_2004_FORMS: Tag = Tag::from_bytes(b"jp04");
59pub const KERNING: Tag = Tag::from_bytes(b"kern");
60pub const LEFT_BOUNDS: Tag = Tag::from_bytes(b"lfbd");
61pub const STANDARD_LIGATURES: Tag = Tag::from_bytes(b"liga");
62pub const LEADING_JAMO_FORMS: Tag = Tag::from_bytes(b"ljmo");
63pub const LINING_FIGURES: Tag = Tag::from_bytes(b"lnum");
64pub const LOCALIZED_FORMS: Tag = Tag::from_bytes(b"locl");
65pub const LEFT_TO_RIGHT_ALTERNATES: Tag = Tag::from_bytes(b"ltra");
66pub const LEFT_TO_RIGHT_MIRRORED_FORMS: Tag = Tag::from_bytes(b"ltrm");
67pub const MARK_POSITIONING: Tag = Tag::from_bytes(b"mark");
68pub const MEDIAL_FORMS_1: Tag = Tag::from_bytes(b"medi");
69pub const MEDIAL_FORMS_2: Tag = Tag::from_bytes(b"med2");
70pub const MATHEMATICAL_GREEK: Tag = Tag::from_bytes(b"mgrk");
71pub const MARK_TO_MARK_POSITIONING: Tag = Tag::from_bytes(b"mkmk");
72pub const MARK_POSITIONING_VIA_SUBSTITUTION: Tag = Tag::from_bytes(b"mset");
73pub const ALTERNATE_ANNOTATION_FORMS: Tag = Tag::from_bytes(b"nalt");
74pub const NLC_KANJI_FORMS: Tag = Tag::from_bytes(b"nlck");
75pub const NUKTA_FORMS: Tag = Tag::from_bytes(b"nukt");
76pub const NUMERATORS: Tag = Tag::from_bytes(b"numr");
77pub const OLDSTYLE_FIGURES: Tag = Tag::from_bytes(b"onum");
78pub const OPTICAL_BOUNDS: Tag = Tag::from_bytes(b"opbd");
79pub const ORDINALS: Tag = Tag::from_bytes(b"ordn");
80pub const ORNAMENTS: Tag = Tag::from_bytes(b"ornm");
81pub const PROPORTIONAL_ALTERNATE_WIDTHS: Tag = Tag::from_bytes(b"palt");
82pub const PETITE_CAPITALS: Tag = Tag::from_bytes(b"pcap");
83pub const PROPORTIONAL_KANA: Tag = Tag::from_bytes(b"pkna");
84pub const PROPORTIONAL_FIGURES: Tag = Tag::from_bytes(b"pnum");
85pub const PRE_BASE_FORMS: Tag = Tag::from_bytes(b"pref");
86pub const PRE_BASE_SUBSTITUTIONS: Tag = Tag::from_bytes(b"pres");
87pub const POST_BASE_FORMS: Tag = Tag::from_bytes(b"pstf");
88pub const POST_BASE_SUBSTITUTIONS: Tag = Tag::from_bytes(b"psts");
89pub const PROPORTIONAL_WIDTHS: Tag = Tag::from_bytes(b"pwid");
90pub const QUARTER_WIDTHS: Tag = Tag::from_bytes(b"qwid");
91pub const RANDOMIZE: Tag = Tag::from_bytes(b"rand");
92pub const REQUIRED_CONTEXTUAL_ALTERNATES: Tag = Tag::from_bytes(b"rclt");
93pub const RAKAR_FORMS: Tag = Tag::from_bytes(b"rkrf");
94pub const REQUIRED_LIGATURES: Tag = Tag::from_bytes(b"rlig");
95pub const REPH_FORMS: Tag = Tag::from_bytes(b"rphf");
96pub const RIGHT_BOUNDS: Tag = Tag::from_bytes(b"rtbd");
97pub const RIGHT_TO_LEFT_ALTERNATES: Tag = Tag::from_bytes(b"rtla");
98pub const RIGHT_TO_LEFT_MIRRORED_FORMS: Tag = Tag::from_bytes(b"rtlm");
99pub const RUBY_NOTATION_FORMS: Tag = Tag::from_bytes(b"ruby");
100pub const REQUIRED_VARIATION_ALTERNATES: Tag = Tag::from_bytes(b"rvrn");
101pub const STYLISTIC_ALTERNATES: Tag = Tag::from_bytes(b"salt");
102pub const SCIENTIFIC_INFERIORS: Tag = Tag::from_bytes(b"sinf");
103pub const OPTICAL_SIZE: Tag = Tag::from_bytes(b"size");
104pub const SMALL_CAPITALS: Tag = Tag::from_bytes(b"smcp");
105pub const SIMPLIFIED_FORMS: Tag = Tag::from_bytes(b"smpl");
106pub const MATH_SCRIPT_STYLE_ALTERNATES: Tag = Tag::from_bytes(b"ssty");
107pub const STRETCHING_GLYPH_DECOMPOSITION: Tag = Tag::from_bytes(b"stch");
108pub const SUBSCRIPT: Tag = Tag::from_bytes(b"subs");
109pub const SUPERSCRIPT: Tag = Tag::from_bytes(b"sups");
110pub const SWASH: Tag = Tag::from_bytes(b"swsh");
111pub const TITLING: Tag = Tag::from_bytes(b"titl");
112pub const TRAILING_JAMO_FORMS: Tag = Tag::from_bytes(b"tjmo");
113pub const TRADITIONAL_NAME_FORMS: Tag = Tag::from_bytes(b"tnam");
114pub const TABULAR_FIGURES: Tag = Tag::from_bytes(b"tnum");
115pub const TRADITIONAL_FORMS: Tag = Tag::from_bytes(b"trad");
116pub const THIRD_WIDTHS: Tag = Tag::from_bytes(b"twid");
117pub const UNICASE: Tag = Tag::from_bytes(b"unic");
118pub const ALTERNATE_VERTICAL_METRICS: Tag = Tag::from_bytes(b"valt");
119pub const VATTU_VARIANTS: Tag = Tag::from_bytes(b"vatu");
120pub const VERTICAL_WRITING: Tag = Tag::from_bytes(b"vert");
121pub const ALTERNATE_VERTICAL_HALF_METRICS: Tag = Tag::from_bytes(b"vhal");
122pub const VOWEL_JAMO_FORMS: Tag = Tag::from_bytes(b"vjmo");
123pub const VERTICAL_KANA_ALTERNATES: Tag = Tag::from_bytes(b"vkna");
124pub const VERTICAL_KERNING: Tag = Tag::from_bytes(b"vkrn");
125pub const PROPORTIONAL_ALTERNATE_VERTICAL_METRICS: Tag = Tag::from_bytes(b"vpal");
126pub const VERTICAL_ALTERNATES_AND_ROTATION: Tag = Tag::from_bytes(b"vrt2");
127pub const VERTICAL_ALTERNATES_FOR_ROTATION: Tag = Tag::from_bytes(b"vrtr");
128pub const SLASHED_ZERO: Tag = Tag::from_bytes(b"zero");
129