-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathVmTypes.ts
10 lines (7 loc) · 16.9 KB
/
VmTypes.ts
1
2
3
4
5
6
7
8
9
// VM types
export type MemByte = '\x00' | '\x01' | '\x02' | '\x03' | '\x04' | '\x05' | '\x06' | '\x07' | '\x08' | '\x09' | '\x0a' | '\x0b' | '\x0c' | '\x0d' | '\x0e' | '\x0f' | '\x10' | '\x11' | '\x12' | '\x13' | '\x14' | '\x15' | '\x16' | '\x17' | '\x18' | '\x19' | '\x1a' | '\x1b' | '\x1c' | '\x1d' | '\x1e' | '\x1f' | '\x20' | '\x21' | '\x22' | '\x23' | '\x24' | '\x25' | '\x26' | '\x27' | '\x28' | '\x29' | '\x2a' | '\x2b' | '\x2c' | '\x2d' | '\x2e' | '\x2f' | '\x30' | '\x31' | '\x32' | '\x33' | '\x34' | '\x35' | '\x36' | '\x37' | '\x38' | '\x39' | '\x3a' | '\x3b' | '\x3c' | '\x3d' | '\x3e' | '\x3f' | '\x40' | '\x41' | '\x42' | '\x43' | '\x44' | '\x45' | '\x46' | '\x47' | '\x48' | '\x49' | '\x4a' | '\x4b' | '\x4c' | '\x4d' | '\x4e' | '\x4f' | '\x50' | '\x51' | '\x52' | '\x53' | '\x54' | '\x55' | '\x56' | '\x57' | '\x58' | '\x59' | '\x5a' | '\x5b' | '\x5c' | '\x5d' | '\x5e' | '\x5f' | '\x60' | '\x61' | '\x62' | '\x63' | '\x64' | '\x65' | '\x66' | '\x67' | '\x68' | '\x69' | '\x6a' | '\x6b' | '\x6c' | '\x6d' | '\x6e' | '\x6f' | '\x70' | '\x71' | '\x72' | '\x73' | '\x74' | '\x75' | '\x76' | '\x77' | '\x78' | '\x79' | '\x7a' | '\x7b' | '\x7c' | '\x7d' | '\x7e' | '\x7f' | '\x80' | '\x81' | '\x82' | '\x83' | '\x84' | '\x85' | '\x86' | '\x87' | '\x88' | '\x89' | '\x8a' | '\x8b' | '\x8c' | '\x8d' | '\x8e' | '\x8f' | '\x90' | '\x91' | '\x92' | '\x93' | '\x94' | '\x95' | '\x96' | '\x97' | '\x98' | '\x99' | '\x9a' | '\x9b' | '\x9c' | '\x9d' | '\x9e' | '\x9f' | '\xa0' | '\xa1' | '\xa2' | '\xa3' | '\xa4' | '\xa5' | '\xa6' | '\xa7' | '\xa8' | '\xa9' | '\xaa' | '\xab' | '\xac' | '\xad' | '\xae' | '\xaf' | '\xb0' | '\xb1' | '\xb2' | '\xb3' | '\xb4' | '\xb5' | '\xb6' | '\xb7' | '\xb8' | '\xb9' | '\xba' | '\xbb' | '\xbc' | '\xbd' | '\xbe' | '\xbf' | '\xc0' | '\xc1' | '\xc2' | '\xc3' | '\xc4' | '\xc5' | '\xc6' | '\xc7' | '\xc8' | '\xc9' | '\xca' | '\xcb' | '\xcc' | '\xcd' | '\xce' | '\xcf' | '\xd0' | '\xd1' | '\xd2' | '\xd3' | '\xd4' | '\xd5' | '\xd6' | '\xd7' | '\xd8' | '\xd9' | '\xda' | '\xdb' | '\xdc' | '\xdd' | '\xde' | '\xdf' | '\xe0' | '\xe1' | '\xe2' | '\xe3' | '\xe4' | '\xe5' | '\xe6' | '\xe7' | '\xe8' | '\xe9' | '\xea' | '\xeb' | '\xec' | '\xed' | '\xee' | '\xef' | '\xf0' | '\xf1' | '\xf2' | '\xf3' | '\xf4' | '\xf5' | '\xf6' | '\xf7' | '\xf8' | '\xf9' | '\xfa' | '\xfb' | '\xfc' | '\xfd' | '\xfe' | '\xff'
export type Instr = '+' | '-' | '>' | '<' | ',' | '.' | '[' | ']'
export type Increment<T extends MemByte> = T extends '\x00' ? '\x01' : T extends '\x01' ? '\x02' : T extends '\x02' ? '\x03' : T extends '\x03' ? '\x04' : T extends '\x04' ? '\x05' : T extends '\x05' ? '\x06' : T extends '\x06' ? '\x07' : T extends '\x07' ? '\x08' : T extends '\x08' ? '\x09' : T extends '\x09' ? '\x0A' : T extends '\x0A' ? '\x0B' : T extends '\x0B' ? '\x0C' : T extends '\x0C' ? '\x0D' : T extends '\x0D' ? '\x0E' : T extends '\x0E' ? '\x0F' : T extends '\x0F' ? '\x10' : T extends '\x10' ? '\x11' : T extends '\x11' ? '\x12' : T extends '\x12' ? '\x13' : T extends '\x13' ? '\x14' : T extends '\x14' ? '\x15' : T extends '\x15' ? '\x16' : T extends '\x16' ? '\x17' : T extends '\x17' ? '\x18' : T extends '\x18' ? '\x19' : T extends '\x19' ? '\x1A' : T extends '\x1A' ? '\x1B' : T extends '\x1B' ? '\x1C' : T extends '\x1C' ? '\x1D' : T extends '\x1D' ? '\x1E' : T extends '\x1E' ? '\x1F' : T extends '\x1F' ? '\x20' : T extends '\x20' ? '\x21' : T extends '\x21' ? '\x22' : T extends '\x22' ? '\x23' : T extends '\x23' ? '\x24' : T extends '\x24' ? '\x25' : T extends '\x25' ? '\x26' : T extends '\x26' ? '\x27' : T extends '\x27' ? '\x28' : T extends '\x28' ? '\x29' : T extends '\x29' ? '\x2A' : T extends '\x2A' ? '\x2B' : T extends '\x2B' ? '\x2C' : T extends '\x2C' ? '\x2D' : T extends '\x2D' ? '\x2E' : T extends '\x2E' ? '\x2F' : T extends '\x2F' ? '\x30' : T extends '\x30' ? '\x31' : T extends '\x31' ? '\x32' : T extends '\x32' ? '\x33' : T extends '\x33' ? '\x34' : T extends '\x34' ? '\x35' : T extends '\x35' ? '\x36' : T extends '\x36' ? '\x37' : T extends '\x37' ? '\x38' : T extends '\x38' ? '\x39' : T extends '\x39' ? '\x3A' : T extends '\x3A' ? '\x3B' : T extends '\x3B' ? '\x3C' : T extends '\x3C' ? '\x3D' : T extends '\x3D' ? '\x3E' : T extends '\x3E' ? '\x3F' : T extends '\x3F' ? '\x40' : T extends '\x40' ? '\x41' : T extends '\x41' ? '\x42' : T extends '\x42' ? '\x43' : T extends '\x43' ? '\x44' : T extends '\x44' ? '\x45' : T extends '\x45' ? '\x46' : T extends '\x46' ? '\x47' : T extends '\x47' ? '\x48' : T extends '\x48' ? '\x49' : T extends '\x49' ? '\x4A' : T extends '\x4A' ? '\x4B' : T extends '\x4B' ? '\x4C' : T extends '\x4C' ? '\x4D' : T extends '\x4D' ? '\x4E' : T extends '\x4E' ? '\x4F' : T extends '\x4F' ? '\x50' : T extends '\x50' ? '\x51' : T extends '\x51' ? '\x52' : T extends '\x52' ? '\x53' : T extends '\x53' ? '\x54' : T extends '\x54' ? '\x55' : T extends '\x55' ? '\x56' : T extends '\x56' ? '\x57' : T extends '\x57' ? '\x58' : T extends '\x58' ? '\x59' : T extends '\x59' ? '\x5A' : T extends '\x5A' ? '\x5B' : T extends '\x5B' ? '\x5C' : T extends '\x5C' ? '\x5D' : T extends '\x5D' ? '\x5E' : T extends '\x5E' ? '\x5F' : T extends '\x5F' ? '\x60' : T extends '\x60' ? '\x61' : T extends '\x61' ? '\x62' : T extends '\x62' ? '\x63' : T extends '\x63' ? '\x64' : T extends '\x64' ? '\x65' : T extends '\x65' ? '\x66' : T extends '\x66' ? '\x67' : T extends '\x67' ? '\x68' : T extends '\x68' ? '\x69' : T extends '\x69' ? '\x6A' : T extends '\x6A' ? '\x6B' : T extends '\x6B' ? '\x6C' : T extends '\x6C' ? '\x6D' : T extends '\x6D' ? '\x6E' : T extends '\x6E' ? '\x6F' : T extends '\x6F' ? '\x70' : T extends '\x70' ? '\x71' : T extends '\x71' ? '\x72' : T extends '\x72' ? '\x73' : T extends '\x73' ? '\x74' : T extends '\x74' ? '\x75' : T extends '\x75' ? '\x76' : T extends '\x76' ? '\x77' : T extends '\x77' ? '\x78' : T extends '\x78' ? '\x79' : T extends '\x79' ? '\x7A' : T extends '\x7A' ? '\x7B' : T extends '\x7B' ? '\x7C' : T extends '\x7C' ? '\x7D' : T extends '\x7D' ? '\x7E' : T extends '\x7E' ? '\x7F' : T extends '\x7F' ? '\x80' : T extends '\x80' ? '\x81' : T extends '\x81' ? '\x82' : T extends '\x82' ? '\x83' : T extends '\x83' ? '\x84' : T extends '\x84' ? '\x85' : T extends '\x85' ? '\x86' : T extends '\x86' ? '\x87' : T extends '\x87' ? '\x88' : T extends '\x88' ? '\x89' : T extends '\x89' ? '\x8A' : T extends '\x8A' ? '\x8B' : T extends '\x8B' ? '\x8C' : T extends '\x8C' ? '\x8D' : T extends '\x8D' ? '\x8E' : T extends '\x8E' ? '\x8F' : T extends '\x8F' ? '\x90' : T extends '\x90' ? '\x91' : T extends '\x91' ? '\x92' : T extends '\x92' ? '\x93' : T extends '\x93' ? '\x94' : T extends '\x94' ? '\x95' : T extends '\x95' ? '\x96' : T extends '\x96' ? '\x97' : T extends '\x97' ? '\x98' : T extends '\x98' ? '\x99' : T extends '\x99' ? '\x9A' : T extends '\x9A' ? '\x9B' : T extends '\x9B' ? '\x9C' : T extends '\x9C' ? '\x9D' : T extends '\x9D' ? '\x9E' : T extends '\x9E' ? '\x9F' : T extends '\x9F' ? '\xA0' : T extends '\xA0' ? '\xA1' : T extends '\xA1' ? '\xA2' : T extends '\xA2' ? '\xA3' : T extends '\xA3' ? '\xA4' : T extends '\xA4' ? '\xA5' : T extends '\xA5' ? '\xA6' : T extends '\xA6' ? '\xA7' : T extends '\xA7' ? '\xA8' : T extends '\xA8' ? '\xA9' : T extends '\xA9' ? '\xAA' : T extends '\xAA' ? '\xAB' : T extends '\xAB' ? '\xAC' : T extends '\xAC' ? '\xAD' : T extends '\xAD' ? '\xAE' : T extends '\xAE' ? '\xAF' : T extends '\xAF' ? '\xB0' : T extends '\xB0' ? '\xB1' : T extends '\xB1' ? '\xB2' : T extends '\xB2' ? '\xB3' : T extends '\xB3' ? '\xB4' : T extends '\xB4' ? '\xB5' : T extends '\xB5' ? '\xB6' : T extends '\xB6' ? '\xB7' : T extends '\xB7' ? '\xB8' : T extends '\xB8' ? '\xB9' : T extends '\xB9' ? '\xBA' : T extends '\xBA' ? '\xBB' : T extends '\xBB' ? '\xBC' : T extends '\xBC' ? '\xBD' : T extends '\xBD' ? '\xBE' : T extends '\xBE' ? '\xBF' : T extends '\xBF' ? '\xC0' : T extends '\xC0' ? '\xC1' : T extends '\xC1' ? '\xC2' : T extends '\xC2' ? '\xC3' : T extends '\xC3' ? '\xC4' : T extends '\xC4' ? '\xC5' : T extends '\xC5' ? '\xC6' : T extends '\xC6' ? '\xC7' : T extends '\xC7' ? '\xC8' : T extends '\xC8' ? '\xC9' : T extends '\xC9' ? '\xCA' : T extends '\xCA' ? '\xCB' : T extends '\xCB' ? '\xCC' : T extends '\xCC' ? '\xCD' : T extends '\xCD' ? '\xCE' : T extends '\xCE' ? '\xCF' : T extends '\xCF' ? '\xD0' : T extends '\xD0' ? '\xD1' : T extends '\xD1' ? '\xD2' : T extends '\xD2' ? '\xD3' : T extends '\xD3' ? '\xD4' : T extends '\xD4' ? '\xD5' : T extends '\xD5' ? '\xD6' : T extends '\xD6' ? '\xD7' : T extends '\xD7' ? '\xD8' : T extends '\xD8' ? '\xD9' : T extends '\xD9' ? '\xDA' : T extends '\xDA' ? '\xDB' : T extends '\xDB' ? '\xDC' : T extends '\xDC' ? '\xDD' : T extends '\xDD' ? '\xDE' : T extends '\xDE' ? '\xDF' : T extends '\xDF' ? '\xE0' : T extends '\xE0' ? '\xE1' : T extends '\xE1' ? '\xE2' : T extends '\xE2' ? '\xE3' : T extends '\xE3' ? '\xE4' : T extends '\xE4' ? '\xE5' : T extends '\xE5' ? '\xE6' : T extends '\xE6' ? '\xE7' : T extends '\xE7' ? '\xE8' : T extends '\xE8' ? '\xE9' : T extends '\xE9' ? '\xEA' : T extends '\xEA' ? '\xEB' : T extends '\xEB' ? '\xEC' : T extends '\xEC' ? '\xED' : T extends '\xED' ? '\xEE' : T extends '\xEE' ? '\xEF' : T extends '\xEF' ? '\xF0' : T extends '\xF0' ? '\xF1' : T extends '\xF1' ? '\xF2' : T extends '\xF2' ? '\xF3' : T extends '\xF3' ? '\xF4' : T extends '\xF4' ? '\xF5' : T extends '\xF5' ? '\xF6' : T extends '\xF6' ? '\xF7' : T extends '\xF7' ? '\xF8' : T extends '\xF8' ? '\xF9' : T extends '\xF9' ? '\xFA' : T extends '\xFA' ? '\xFB' : T extends '\xFB' ? '\xFC' : T extends '\xFC' ? '\xFD' : T extends '\xFD' ? '\xFE' : T extends '\xFE' ? '\xFF' : null
export type Decrement<T extends MemByte> = T extends '\xFF' ? '\xFE' : T extends '\xFE' ? '\xFD' : T extends '\xFD' ? '\xFC' : T extends '\xFC' ? '\xFB' : T extends '\xFB' ? '\xFA' : T extends '\xFA' ? '\xF9' : T extends '\xF9' ? '\xF8' : T extends '\xF8' ? '\xF7' : T extends '\xF7' ? '\xF6' : T extends '\xF6' ? '\xF5' : T extends '\xF5' ? '\xF4' : T extends '\xF4' ? '\xF3' : T extends '\xF3' ? '\xF2' : T extends '\xF2' ? '\xF1' : T extends '\xF1' ? '\xF0' : T extends '\xF0' ? '\xEF' : T extends '\xEF' ? '\xEE' : T extends '\xEE' ? '\xED' : T extends '\xED' ? '\xEC' : T extends '\xEC' ? '\xEB' : T extends '\xEB' ? '\xEA' : T extends '\xEA' ? '\xE9' : T extends '\xE9' ? '\xE8' : T extends '\xE8' ? '\xE7' : T extends '\xE7' ? '\xE6' : T extends '\xE6' ? '\xE5' : T extends '\xE5' ? '\xE4' : T extends '\xE4' ? '\xE3' : T extends '\xE3' ? '\xE2' : T extends '\xE2' ? '\xE1' : T extends '\xE1' ? '\xE0' : T extends '\xE0' ? '\xDF' : T extends '\xDF' ? '\xDE' : T extends '\xDE' ? '\xDD' : T extends '\xDD' ? '\xDC' : T extends '\xDC' ? '\xDB' : T extends '\xDB' ? '\xDA' : T extends '\xDA' ? '\xD9' : T extends '\xD9' ? '\xD8' : T extends '\xD8' ? '\xD7' : T extends '\xD7' ? '\xD6' : T extends '\xD6' ? '\xD5' : T extends '\xD5' ? '\xD4' : T extends '\xD4' ? '\xD3' : T extends '\xD3' ? '\xD2' : T extends '\xD2' ? '\xD1' : T extends '\xD1' ? '\xD0' : T extends '\xD0' ? '\xCF' : T extends '\xCF' ? '\xCE' : T extends '\xCE' ? '\xCD' : T extends '\xCD' ? '\xCC' : T extends '\xCC' ? '\xCB' : T extends '\xCB' ? '\xCA' : T extends '\xCA' ? '\xC9' : T extends '\xC9' ? '\xC8' : T extends '\xC8' ? '\xC7' : T extends '\xC7' ? '\xC6' : T extends '\xC6' ? '\xC5' : T extends '\xC5' ? '\xC4' : T extends '\xC4' ? '\xC3' : T extends '\xC3' ? '\xC2' : T extends '\xC2' ? '\xC1' : T extends '\xC1' ? '\xC0' : T extends '\xC0' ? '\xBF' : T extends '\xBF' ? '\xBE' : T extends '\xBE' ? '\xBD' : T extends '\xBD' ? '\xBC' : T extends '\xBC' ? '\xBB' : T extends '\xBB' ? '\xBA' : T extends '\xBA' ? '\xB9' : T extends '\xB9' ? '\xB8' : T extends '\xB8' ? '\xB7' : T extends '\xB7' ? '\xB6' : T extends '\xB6' ? '\xB5' : T extends '\xB5' ? '\xB4' : T extends '\xB4' ? '\xB3' : T extends '\xB3' ? '\xB2' : T extends '\xB2' ? '\xB1' : T extends '\xB1' ? '\xB0' : T extends '\xB0' ? '\xAF' : T extends '\xAF' ? '\xAE' : T extends '\xAE' ? '\xAD' : T extends '\xAD' ? '\xAC' : T extends '\xAC' ? '\xAB' : T extends '\xAB' ? '\xAA' : T extends '\xAA' ? '\xA9' : T extends '\xA9' ? '\xA8' : T extends '\xA8' ? '\xA7' : T extends '\xA7' ? '\xA6' : T extends '\xA6' ? '\xA5' : T extends '\xA5' ? '\xA4' : T extends '\xA4' ? '\xA3' : T extends '\xA3' ? '\xA2' : T extends '\xA2' ? '\xA1' : T extends '\xA1' ? '\xA0' : T extends '\xA0' ? '\x9F' : T extends '\x9F' ? '\x9E' : T extends '\x9E' ? '\x9D' : T extends '\x9D' ? '\x9C' : T extends '\x9C' ? '\x9B' : T extends '\x9B' ? '\x9A' : T extends '\x9A' ? '\x99' : T extends '\x99' ? '\x98' : T extends '\x98' ? '\x97' : T extends '\x97' ? '\x96' : T extends '\x96' ? '\x95' : T extends '\x95' ? '\x94' : T extends '\x94' ? '\x93' : T extends '\x93' ? '\x92' : T extends '\x92' ? '\x91' : T extends '\x91' ? '\x90' : T extends '\x90' ? '\x8F' : T extends '\x8F' ? '\x8E' : T extends '\x8E' ? '\x8D' : T extends '\x8D' ? '\x8C' : T extends '\x8C' ? '\x8B' : T extends '\x8B' ? '\x8A' : T extends '\x8A' ? '\x89' : T extends '\x89' ? '\x88' : T extends '\x88' ? '\x87' : T extends '\x87' ? '\x86' : T extends '\x86' ? '\x85' : T extends '\x85' ? '\x84' : T extends '\x84' ? '\x83' : T extends '\x83' ? '\x82' : T extends '\x82' ? '\x81' : T extends '\x81' ? '\x80' : T extends '\x80' ? '\x7F' : T extends '\x7F' ? '\x7E' : T extends '\x7E' ? '\x7D' : T extends '\x7D' ? '\x7C' : T extends '\x7C' ? '\x7B' : T extends '\x7B' ? '\x7A' : T extends '\x7A' ? '\x79' : T extends '\x79' ? '\x78' : T extends '\x78' ? '\x77' : T extends '\x77' ? '\x76' : T extends '\x76' ? '\x75' : T extends '\x75' ? '\x74' : T extends '\x74' ? '\x73' : T extends '\x73' ? '\x72' : T extends '\x72' ? '\x71' : T extends '\x71' ? '\x70' : T extends '\x70' ? '\x6F' : T extends '\x6F' ? '\x6E' : T extends '\x6E' ? '\x6D' : T extends '\x6D' ? '\x6C' : T extends '\x6C' ? '\x6B' : T extends '\x6B' ? '\x6A' : T extends '\x6A' ? '\x69' : T extends '\x69' ? '\x68' : T extends '\x68' ? '\x67' : T extends '\x67' ? '\x66' : T extends '\x66' ? '\x65' : T extends '\x65' ? '\x64' : T extends '\x64' ? '\x63' : T extends '\x63' ? '\x62' : T extends '\x62' ? '\x61' : T extends '\x61' ? '\x60' : T extends '\x60' ? '\x5F' : T extends '\x5F' ? '\x5E' : T extends '\x5E' ? '\x5D' : T extends '\x5D' ? '\x5C' : T extends '\x5C' ? '\x5B' : T extends '\x5B' ? '\x5A' : T extends '\x5A' ? '\x59' : T extends '\x59' ? '\x58' : T extends '\x58' ? '\x57' : T extends '\x57' ? '\x56' : T extends '\x56' ? '\x55' : T extends '\x55' ? '\x54' : T extends '\x54' ? '\x53' : T extends '\x53' ? '\x52' : T extends '\x52' ? '\x51' : T extends '\x51' ? '\x50' : T extends '\x50' ? '\x4F' : T extends '\x4F' ? '\x4E' : T extends '\x4E' ? '\x4D' : T extends '\x4D' ? '\x4C' : T extends '\x4C' ? '\x4B' : T extends '\x4B' ? '\x4A' : T extends '\x4A' ? '\x49' : T extends '\x49' ? '\x48' : T extends '\x48' ? '\x47' : T extends '\x47' ? '\x46' : T extends '\x46' ? '\x45' : T extends '\x45' ? '\x44' : T extends '\x44' ? '\x43' : T extends '\x43' ? '\x42' : T extends '\x42' ? '\x41' : T extends '\x41' ? '\x40' : T extends '\x40' ? '\x3F' : T extends '\x3F' ? '\x3E' : T extends '\x3E' ? '\x3D' : T extends '\x3D' ? '\x3C' : T extends '\x3C' ? '\x3B' : T extends '\x3B' ? '\x3A' : T extends '\x3A' ? '\x39' : T extends '\x39' ? '\x38' : T extends '\x38' ? '\x37' : T extends '\x37' ? '\x36' : T extends '\x36' ? '\x35' : T extends '\x35' ? '\x34' : T extends '\x34' ? '\x33' : T extends '\x33' ? '\x32' : T extends '\x32' ? '\x31' : T extends '\x31' ? '\x30' : T extends '\x30' ? '\x2F' : T extends '\x2F' ? '\x2E' : T extends '\x2E' ? '\x2D' : T extends '\x2D' ? '\x2C' : T extends '\x2C' ? '\x2B' : T extends '\x2B' ? '\x2A' : T extends '\x2A' ? '\x29' : T extends '\x29' ? '\x28' : T extends '\x28' ? '\x27' : T extends '\x27' ? '\x26' : T extends '\x26' ? '\x25' : T extends '\x25' ? '\x24' : T extends '\x24' ? '\x23' : T extends '\x23' ? '\x22' : T extends '\x22' ? '\x21' : T extends '\x21' ? '\x20' : T extends '\x20' ? '\x1F' : T extends '\x1F' ? '\x1E' : T extends '\x1E' ? '\x1D' : T extends '\x1D' ? '\x1C' : T extends '\x1C' ? '\x1B' : T extends '\x1B' ? '\x1A' : T extends '\x1A' ? '\x19' : T extends '\x19' ? '\x18' : T extends '\x18' ? '\x17' : T extends '\x17' ? '\x16' : T extends '\x16' ? '\x15' : T extends '\x15' ? '\x14' : T extends '\x14' ? '\x13' : T extends '\x13' ? '\x12' : T extends '\x12' ? '\x11' : T extends '\x11' ? '\x10' : T extends '\x10' ? '\x0F' : T extends '\x0F' ? '\x0E' : T extends '\x0E' ? '\x0D' : T extends '\x0D' ? '\x0C' : T extends '\x0C' ? '\x0B' : T extends '\x0B' ? '\x0A' : T extends '\x0A' ? '\x09' : T extends '\x09' ? '\x08' : T extends '\x08' ? '\x07' : T extends '\x07' ? '\x06' : T extends '\x06' ? '\x05' : T extends '\x05' ? '\x04' : T extends '\x04' ? '\x03' : T extends '\x03' ? '\x02' : T extends '\x02' ? '\x01' : T extends '\x01' ? '\x00' : null
// 255 null bytes
export type EmptyMem = '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0'