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