read_fonts::tables::glyf::bytecode

Enum Opcode

source
#[repr(u8)]
pub enum Opcode {
Show 256 variants SVTCA0 = 0, SVTCA1 = 1, SPVTCA0 = 2, SPVTCA1 = 3, SFVTCA0 = 4, SFVTCA1 = 5, SPVTL0 = 6, SPVTL1 = 7, SFVTL0 = 8, SFVTL1 = 9, SPVFS = 10, SFVFS = 11, GPV = 12, GFV = 13, SFVTPV = 14, ISECT = 15, SRP0 = 16, SRP1 = 17, SRP2 = 18, SZP0 = 19, SZP1 = 20, SZP2 = 21, SZPS = 22, SLOOP = 23, RTG = 24, RTHG = 25, SMD = 26, ELSE = 27, JMPR = 28, SCVTCI = 29, SSWCI = 30, SSW = 31, DUP = 32, POP = 33, CLEAR = 34, SWAP = 35, DEPTH = 36, CINDEX = 37, MINDEX = 38, ALIGNPTS = 39, INS28 = 40, UTP = 41, LOOPCALL = 42, CALL = 43, FDEF = 44, ENDF = 45, MDAP0 = 46, MDAP1 = 47, IUP0 = 48, IUP1 = 49, SHP0 = 50, SHP1 = 51, SHC0 = 52, SHC1 = 53, SHZ0 = 54, SHZ1 = 55, SHPIX = 56, IP = 57, MSIRP0 = 58, MSIRP1 = 59, ALIGNRP = 60, RTDG = 61, MIAP0 = 62, MIAP1 = 63, NPUSHB = 64, NPUSHW = 65, WS = 66, RS = 67, WCVTP = 68, RCVT = 69, GC0 = 70, GC1 = 71, SCFS = 72, MD0 = 73, MD1 = 74, MPPEM = 75, MPS = 76, FLIPON = 77, FLIPOFF = 78, DEBUG = 79, LT = 80, LTEQ = 81, GT = 82, GTEQ = 83, EQ = 84, NEQ = 85, ODD = 86, EVEN = 87, IF = 88, EIF = 89, AND = 90, OR = 91, NOT = 92, DELTAP1 = 93, SDB = 94, SDS = 95, ADD = 96, SUB = 97, DIV = 98, MUL = 99, ABS = 100, NEG = 101, FLOOR = 102, CEILING = 103, ROUND00 = 104, ROUND01 = 105, ROUND10 = 106, ROUND11 = 107, NROUND00 = 108, NROUND01 = 109, NROUND10 = 110, NROUND11 = 111, WCVTF = 112, DELTAP2 = 113, DELTAP3 = 114, DELTAC1 = 115, DELTAC2 = 116, DELTAC3 = 117, SROUND = 118, S45ROUND = 119, JROT = 120, JROF = 121, ROFF = 122, INS7B = 123, RUTG = 124, RDTG = 125, SANGW = 126, AA = 127, FLIPPT = 128, FLIPRGON = 129, FLIPRGOFF = 130, INS83 = 131, INS84 = 132, SCANCTRL = 133, SDPVTL0 = 134, SDPVTL1 = 135, GETINFO = 136, IDEF = 137, ROLL = 138, MAX = 139, MIN = 140, SCANTYPE = 141, INSTCTRL = 142, INS8F = 143, INS90 = 144, GETVARIATION = 145, GETDATA = 146, INS93 = 147, INS94 = 148, INS95 = 149, INS96 = 150, INS97 = 151, INS98 = 152, INS99 = 153, INS9A = 154, INS9B = 155, INS9C = 156, INS9D = 157, INS9E = 158, INS9F = 159, INSA0 = 160, INSA1 = 161, INSA2 = 162, INSA3 = 163, INSA4 = 164, INSA5 = 165, INSA6 = 166, INSA7 = 167, INSA8 = 168, INSA9 = 169, INSAA = 170, INSAB = 171, INSAC = 172, INSAD = 173, INSAE = 174, INSAF = 175, PUSHB000 = 176, PUSHB001 = 177, PUSHB010 = 178, PUSHB011 = 179, PUSHB100 = 180, PUSHB101 = 181, PUSHB110 = 182, PUSHB111 = 183, PUSHW000 = 184, PUSHW001 = 185, PUSHW010 = 186, PUSHW011 = 187, PUSHW100 = 188, PUSHW101 = 189, PUSHW110 = 190, PUSHW111 = 191, MDRP00000 = 192, MDRP00001 = 193, MDRP00010 = 194, MDRP00011 = 195, MDRP00100 = 196, MDRP00101 = 197, MDRP00110 = 198, MDRP00111 = 199, MDRP01000 = 200, MDRP01001 = 201, MDRP01010 = 202, MDRP01011 = 203, MDRP01100 = 204, MDRP01101 = 205, MDRP01110 = 206, MDRP01111 = 207, MDRP10000 = 208, MDRP10001 = 209, MDRP10010 = 210, MDRP10011 = 211, MDRP10100 = 212, MDRP10101 = 213, MDRP10110 = 214, MDRP10111 = 215, MDRP11000 = 216, MDRP11001 = 217, MDRP11010 = 218, MDRP11011 = 219, MDRP11100 = 220, MDRP11101 = 221, MDRP11110 = 222, MDRP11111 = 223, MIRP00000 = 224, MIRP00001 = 225, MIRP00010 = 226, MIRP00011 = 227, MIRP00100 = 228, MIRP00101 = 229, MIRP00110 = 230, MIRP00111 = 231, MIRP01000 = 232, MIRP01001 = 233, MIRP01010 = 234, MIRP01011 = 235, MIRP01100 = 236, MIRP01101 = 237, MIRP01110 = 238, MIRP01111 = 239, MIRP10000 = 240, MIRP10001 = 241, MIRP10010 = 242, MIRP10011 = 243, MIRP10100 = 244, MIRP10101 = 245, MIRP10110 = 246, MIRP10111 = 247, MIRP11000 = 248, MIRP11001 = 249, MIRP11010 = 250, MIRP11011 = 251, MIRP11100 = 252, MIRP11101 = 253, MIRP11110 = 254, MIRP11111 = 255,
}
Expand description

Operation code for a TrueType instruction.

See the TrueType instruction set from the OpenType specification for more detail.

Variants§

§

SVTCA0 = 0

§

SVTCA1 = 1

§

SPVTCA0 = 2

§

SPVTCA1 = 3

§

SFVTCA0 = 4

§

SFVTCA1 = 5

§

SPVTL0 = 6

§

SPVTL1 = 7

§

SFVTL0 = 8

§

SFVTL1 = 9

§

SPVFS = 10

§

SFVFS = 11

§

GPV = 12

§

GFV = 13

§

SFVTPV = 14

§

ISECT = 15

§

SRP0 = 16

§

SRP1 = 17

§

SRP2 = 18

§

SZP0 = 19

§

SZP1 = 20

§

SZP2 = 21

§

SZPS = 22

§

SLOOP = 23

§

RTG = 24

§

RTHG = 25

§

SMD = 26

§

ELSE = 27

§

JMPR = 28

§

SCVTCI = 29

§

SSWCI = 30

§

SSW = 31

§

DUP = 32

§

POP = 33

§

CLEAR = 34

§

SWAP = 35

§

DEPTH = 36

§

CINDEX = 37

§

MINDEX = 38

§

ALIGNPTS = 39

§

INS28 = 40

§

UTP = 41

§

LOOPCALL = 42

§

CALL = 43

§

FDEF = 44

§

ENDF = 45

§

MDAP0 = 46

§

MDAP1 = 47

§

IUP0 = 48

§

IUP1 = 49

§

SHP0 = 50

§

SHP1 = 51

§

SHC0 = 52

§

SHC1 = 53

§

SHZ0 = 54

§

SHZ1 = 55

§

SHPIX = 56

§

IP = 57

§

MSIRP0 = 58

§

MSIRP1 = 59

§

ALIGNRP = 60

§

RTDG = 61

§

MIAP0 = 62

§

MIAP1 = 63

§

NPUSHB = 64

§

NPUSHW = 65

§

WS = 66

§

RS = 67

§

WCVTP = 68

§

RCVT = 69

§

GC0 = 70

§

GC1 = 71

§

SCFS = 72

§

MD0 = 73

§

MD1 = 74

§

MPPEM = 75

§

MPS = 76

§

FLIPON = 77

§

FLIPOFF = 78

§

DEBUG = 79

§

LT = 80

§

LTEQ = 81

§

GT = 82

§

GTEQ = 83

§

EQ = 84

§

NEQ = 85

§

ODD = 86

§

EVEN = 87

§

IF = 88

§

EIF = 89

§

AND = 90

§

OR = 91

§

NOT = 92

§

DELTAP1 = 93

§

SDB = 94

§

SDS = 95

§

ADD = 96

§

SUB = 97

§

DIV = 98

§

MUL = 99

§

ABS = 100

§

NEG = 101

§

FLOOR = 102

§

CEILING = 103

§

ROUND00 = 104

§

ROUND01 = 105

§

ROUND10 = 106

§

ROUND11 = 107

§

NROUND00 = 108

§

NROUND01 = 109

§

NROUND10 = 110

§

NROUND11 = 111

§

WCVTF = 112

§

DELTAP2 = 113

§

DELTAP3 = 114

§

DELTAC1 = 115

§

DELTAC2 = 116

§

DELTAC3 = 117

§

SROUND = 118

§

S45ROUND = 119

§

JROT = 120

§

JROF = 121

§

ROFF = 122

§

INS7B = 123

§

RUTG = 124

§

RDTG = 125

§

SANGW = 126

§

AA = 127

§

FLIPPT = 128

§

FLIPRGON = 129

§

FLIPRGOFF = 130

§

INS83 = 131

§

INS84 = 132

§

SCANCTRL = 133

§

SDPVTL0 = 134

§

SDPVTL1 = 135

§

GETINFO = 136

§

IDEF = 137

§

ROLL = 138

§

MAX = 139

§

MIN = 140

§

SCANTYPE = 141

§

INSTCTRL = 142

§

INS8F = 143

§

INS90 = 144

§

GETVARIATION = 145

§

GETDATA = 146

§

INS93 = 147

§

INS94 = 148

§

INS95 = 149

§

INS96 = 150

§

INS97 = 151

§

INS98 = 152

§

INS99 = 153

§

INS9A = 154

§

INS9B = 155

§

INS9C = 156

§

INS9D = 157

§

INS9E = 158

§

INS9F = 159

§

INSA0 = 160

§

INSA1 = 161

§

INSA2 = 162

§

INSA3 = 163

§

INSA4 = 164

§

INSA5 = 165

§

INSA6 = 166

§

INSA7 = 167

§

INSA8 = 168

§

INSA9 = 169

§

INSAA = 170

§

INSAB = 171

§

INSAC = 172

§

INSAD = 173

§

INSAE = 174

§

INSAF = 175

§

PUSHB000 = 176

§

PUSHB001 = 177

§

PUSHB010 = 178

§

PUSHB011 = 179

§

PUSHB100 = 180

§

PUSHB101 = 181

§

PUSHB110 = 182

§

PUSHB111 = 183

§

PUSHW000 = 184

§

PUSHW001 = 185

§

PUSHW010 = 186

§

PUSHW011 = 187

§

PUSHW100 = 188

§

PUSHW101 = 189

§

PUSHW110 = 190

§

PUSHW111 = 191

§

MDRP00000 = 192

§

MDRP00001 = 193

§

MDRP00010 = 194

§

MDRP00011 = 195

§

MDRP00100 = 196

§

MDRP00101 = 197

§

MDRP00110 = 198

§

MDRP00111 = 199

§

MDRP01000 = 200

§

MDRP01001 = 201

§

MDRP01010 = 202

§

MDRP01011 = 203

§

MDRP01100 = 204

§

MDRP01101 = 205

§

MDRP01110 = 206

§

MDRP01111 = 207

§

MDRP10000 = 208

§

MDRP10001 = 209

§

MDRP10010 = 210

§

MDRP10011 = 211

§

MDRP10100 = 212

§

MDRP10101 = 213

§

MDRP10110 = 214

§

MDRP10111 = 215

§

MDRP11000 = 216

§

MDRP11001 = 217

§

MDRP11010 = 218

§

MDRP11011 = 219

§

MDRP11100 = 220

§

MDRP11101 = 221

§

MDRP11110 = 222

§

MDRP11111 = 223

§

MIRP00000 = 224

§

MIRP00001 = 225

§

MIRP00010 = 226

§

MIRP00011 = 227

§

MIRP00100 = 228

§

MIRP00101 = 229

§

MIRP00110 = 230

§

MIRP00111 = 231

§

MIRP01000 = 232

§

MIRP01001 = 233

§

MIRP01010 = 234

§

MIRP01011 = 235

§

MIRP01100 = 236

§

MIRP01101 = 237

§

MIRP01110 = 238

§

MIRP01111 = 239

§

MIRP10000 = 240

§

MIRP10001 = 241

§

MIRP10010 = 242

§

MIRP10011 = 243

§

MIRP10100 = 244

§

MIRP10101 = 245

§

MIRP10110 = 246

§

MIRP10111 = 247

§

MIRP11000 = 248

§

MIRP11001 = 249

§

MIRP11010 = 250

§

MIRP11011 = 251

§

MIRP11100 = 252

§

MIRP11101 = 253

§

MIRP11110 = 254

§

MIRP11111 = 255

Implementations§

source§

impl Opcode

source

pub fn from_byte(byte: u8) -> Self

Creates an opcode from the given byte.

There is a 1:1 mapping between bytes and opcodes.

source

pub fn name(self) -> &'static str

Returns a more descriptive name for the opcode.

source

pub fn is_push(self) -> bool

Returns true if this is an instruction that pushes values onto the stack.

Trait Implementations§

source§

impl Clone for Opcode

source§

fn clone(&self) -> Opcode

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Opcode

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Opcode

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Hash for Opcode

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for Opcode

source§

fn cmp(&self, other: &Opcode) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for Opcode

source§

fn eq(&self, other: &Opcode) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for Opcode

source§

fn partial_cmp(&self, other: &Opcode) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl Copy for Opcode

source§

impl Eq for Opcode

source§

impl StructuralPartialEq for Opcode

Auto Trait Implementations§

§

impl Freeze for Opcode

§

impl RefUnwindSafe for Opcode

§

impl Send for Opcode

§

impl Sync for Opcode

§

impl Unpin for Opcode

§

impl UnwindSafe for Opcode

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.