1 //! State for managing active programs and decoding instructions.
2 
3 mod args;
4 
5 pub use args::Args;
6 
7 /// Describes the source for a piece of bytecode.
8 #[derive(Copy, Clone, PartialEq, Eq, Default, Debug)]
9 #[repr(u8)]
10 pub enum ProgramKind {
11     /// Program that initializes the function and instruction tables. Stored
12     /// in the `fpgm` table.
13     #[default]
14     Font = 0,
15     /// Program that initializes CVT and storage based on font size and other
16     /// parameters. Stored in the `prep` table.
17     ControlValue = 1,
18     /// Glyph specified program. Stored per-glyph in the `glyf` table.
19     Glyph = 2,
20 }
21 
22 #[cfg(test)]
23 pub(crate) use args::MockArgs;
24