Skip to content

Commit a3fe733

Browse files
Merge pull request #134 from resistor/master
Add support for the oddball character set used in BinHex files on classic Macs.
2 parents afa7de6 + bfeb0cc commit a3fe733

File tree

4 files changed

+360
-0
lines changed

4 files changed

+360
-0
lines changed

examples/make_tables.rs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,26 @@ fn main() {
6767
.collect();
6868
print_encode_table(&imap_alphabet, "IMAP_MUTF7_ENCODE", 0);
6969
print_decode_table(&imap_alphabet, "IMAP_MUTF7_DECODE", 0);
70+
71+
// '!' - '-'
72+
let binhex_alphabet: Vec<u8> = (0x21..0x2E)
73+
// 0-9
74+
.chain(0x30..0x3A)
75+
// @-N
76+
.chain(0x40..0x4F)
77+
// P-V
78+
.chain(0x50..0x57)
79+
// X-[
80+
.chain(0x58..0x5C)
81+
// `-f
82+
.chain(0x60..0x66)
83+
// h-m
84+
.chain(0x68..0x6E)
85+
// p-r
86+
.chain(0x70..0x73)
87+
.collect();
88+
print_encode_table(&binhex_alphabet, "BINHEX_ENCODE", 0);
89+
print_decode_table(&binhex_alphabet, "BINHEX_DECODE", 0);
7090
}
7191

7292
fn print_encode_table(alphabet: &[u8], const_name: &str, indent_depth: usize) {

src/lib.rs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,10 @@ pub enum CharacterSet {
125125
///
126126
/// See [RFC 3501](https://tools.ietf.org/html/rfc3501#section-5.1.3)
127127
ImapMutf7,
128+
/// The character set used in BinHex 4.0 files.
129+
///
130+
/// See [BinHex 4.0 Definition](http://files.stairways.com/other/binhex-40-specs-info.txt)
131+
BinHex,
128132
}
129133

130134
impl CharacterSet {
@@ -135,6 +139,7 @@ impl CharacterSet {
135139
CharacterSet::Crypt => tables::CRYPT_ENCODE,
136140
CharacterSet::Bcrypt => tables::BCRYPT_ENCODE,
137141
CharacterSet::ImapMutf7 => tables::IMAP_MUTF7_ENCODE,
142+
CharacterSet::BinHex => tables::BINHEX_ENCODE,
138143
}
139144
}
140145

@@ -145,6 +150,7 @@ impl CharacterSet {
145150
CharacterSet::Crypt => tables::CRYPT_DECODE,
146151
CharacterSet::Bcrypt => tables::BCRYPT_DECODE,
147152
CharacterSet::ImapMutf7 => tables::IMAP_MUTF7_DECODE,
153+
CharacterSet::BinHex => tables::BINHEX_DECODE,
148154
}
149155
}
150156
}
@@ -235,3 +241,10 @@ pub const IMAP_MUTF7: Config = Config {
235241
pad: false,
236242
decode_allow_trailing_bits: false,
237243
};
244+
245+
/// BinHex character set
246+
pub const BINHEX : Config = Config {
247+
char_set: CharacterSet::BinHex,
248+
pad: false,
249+
decode_allow_trailing_bits: false,
250+
};

src/tables.rs

Lines changed: 326 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1629,3 +1629,329 @@ pub const IMAP_MUTF7_DECODE: &[u8; 256] = &[
16291629
INVALID_VALUE, // input 254 (0xFE)
16301630
INVALID_VALUE, // input 255 (0xFF)
16311631
];
1632+
#[rustfmt::skip]
1633+
pub const BINHEX_ENCODE: &[u8; 64] = &[
1634+
33, // input 0 (0x0) => '!' (0x21)
1635+
34, // input 1 (0x1) => '"' (0x22)
1636+
35, // input 2 (0x2) => '#' (0x23)
1637+
36, // input 3 (0x3) => '$' (0x24)
1638+
37, // input 4 (0x4) => '%' (0x25)
1639+
38, // input 5 (0x5) => '&' (0x26)
1640+
39, // input 6 (0x6) => ''' (0x27)
1641+
40, // input 7 (0x7) => '(' (0x28)
1642+
41, // input 8 (0x8) => ')' (0x29)
1643+
42, // input 9 (0x9) => '*' (0x2A)
1644+
43, // input 10 (0xA) => '+' (0x2B)
1645+
44, // input 11 (0xB) => ',' (0x2C)
1646+
45, // input 12 (0xC) => '-' (0x2D)
1647+
48, // input 13 (0xD) => '0' (0x30)
1648+
49, // input 14 (0xE) => '1' (0x31)
1649+
50, // input 15 (0xF) => '2' (0x32)
1650+
51, // input 16 (0x10) => '3' (0x33)
1651+
52, // input 17 (0x11) => '4' (0x34)
1652+
53, // input 18 (0x12) => '5' (0x35)
1653+
54, // input 19 (0x13) => '6' (0x36)
1654+
55, // input 20 (0x14) => '7' (0x37)
1655+
56, // input 21 (0x15) => '8' (0x38)
1656+
57, // input 22 (0x16) => '9' (0x39)
1657+
64, // input 23 (0x17) => '@' (0x40)
1658+
65, // input 24 (0x18) => 'A' (0x41)
1659+
66, // input 25 (0x19) => 'B' (0x42)
1660+
67, // input 26 (0x1A) => 'C' (0x43)
1661+
68, // input 27 (0x1B) => 'D' (0x44)
1662+
69, // input 28 (0x1C) => 'E' (0x45)
1663+
70, // input 29 (0x1D) => 'F' (0x46)
1664+
71, // input 30 (0x1E) => 'G' (0x47)
1665+
72, // input 31 (0x1F) => 'H' (0x48)
1666+
73, // input 32 (0x20) => 'I' (0x49)
1667+
74, // input 33 (0x21) => 'J' (0x4A)
1668+
75, // input 34 (0x22) => 'K' (0x4B)
1669+
76, // input 35 (0x23) => 'L' (0x4C)
1670+
77, // input 36 (0x24) => 'M' (0x4D)
1671+
78, // input 37 (0x25) => 'N' (0x4E)
1672+
80, // input 38 (0x26) => 'P' (0x50)
1673+
81, // input 39 (0x27) => 'Q' (0x51)
1674+
82, // input 40 (0x28) => 'R' (0x52)
1675+
83, // input 41 (0x29) => 'S' (0x53)
1676+
84, // input 42 (0x2A) => 'T' (0x54)
1677+
85, // input 43 (0x2B) => 'U' (0x55)
1678+
86, // input 44 (0x2C) => 'V' (0x56)
1679+
88, // input 45 (0x2D) => 'X' (0x58)
1680+
89, // input 46 (0x2E) => 'Y' (0x59)
1681+
90, // input 47 (0x2F) => 'Z' (0x5A)
1682+
91, // input 48 (0x30) => '[' (0x5B)
1683+
96, // input 49 (0x31) => '`' (0x60)
1684+
97, // input 50 (0x32) => 'a' (0x61)
1685+
98, // input 51 (0x33) => 'b' (0x62)
1686+
99, // input 52 (0x34) => 'c' (0x63)
1687+
100, // input 53 (0x35) => 'd' (0x64)
1688+
101, // input 54 (0x36) => 'e' (0x65)
1689+
104, // input 55 (0x37) => 'h' (0x68)
1690+
105, // input 56 (0x38) => 'i' (0x69)
1691+
106, // input 57 (0x39) => 'j' (0x6A)
1692+
107, // input 58 (0x3A) => 'k' (0x6B)
1693+
108, // input 59 (0x3B) => 'l' (0x6C)
1694+
109, // input 60 (0x3C) => 'm' (0x6D)
1695+
112, // input 61 (0x3D) => 'p' (0x70)
1696+
113, // input 62 (0x3E) => 'q' (0x71)
1697+
114, // input 63 (0x3F) => 'r' (0x72)
1698+
];
1699+
#[rustfmt::skip]
1700+
pub const BINHEX_DECODE: &[u8; 256] = &[
1701+
INVALID_VALUE, // input 0 (0x0)
1702+
INVALID_VALUE, // input 1 (0x1)
1703+
INVALID_VALUE, // input 2 (0x2)
1704+
INVALID_VALUE, // input 3 (0x3)
1705+
INVALID_VALUE, // input 4 (0x4)
1706+
INVALID_VALUE, // input 5 (0x5)
1707+
INVALID_VALUE, // input 6 (0x6)
1708+
INVALID_VALUE, // input 7 (0x7)
1709+
INVALID_VALUE, // input 8 (0x8)
1710+
INVALID_VALUE, // input 9 (0x9)
1711+
INVALID_VALUE, // input 10 (0xA)
1712+
INVALID_VALUE, // input 11 (0xB)
1713+
INVALID_VALUE, // input 12 (0xC)
1714+
INVALID_VALUE, // input 13 (0xD)
1715+
INVALID_VALUE, // input 14 (0xE)
1716+
INVALID_VALUE, // input 15 (0xF)
1717+
INVALID_VALUE, // input 16 (0x10)
1718+
INVALID_VALUE, // input 17 (0x11)
1719+
INVALID_VALUE, // input 18 (0x12)
1720+
INVALID_VALUE, // input 19 (0x13)
1721+
INVALID_VALUE, // input 20 (0x14)
1722+
INVALID_VALUE, // input 21 (0x15)
1723+
INVALID_VALUE, // input 22 (0x16)
1724+
INVALID_VALUE, // input 23 (0x17)
1725+
INVALID_VALUE, // input 24 (0x18)
1726+
INVALID_VALUE, // input 25 (0x19)
1727+
INVALID_VALUE, // input 26 (0x1A)
1728+
INVALID_VALUE, // input 27 (0x1B)
1729+
INVALID_VALUE, // input 28 (0x1C)
1730+
INVALID_VALUE, // input 29 (0x1D)
1731+
INVALID_VALUE, // input 30 (0x1E)
1732+
INVALID_VALUE, // input 31 (0x1F)
1733+
INVALID_VALUE, // input 32 (0x20)
1734+
0, // input 33 (0x21 char '!') => 0 (0x0)
1735+
1, // input 34 (0x22 char '"') => 1 (0x1)
1736+
2, // input 35 (0x23 char '#') => 2 (0x2)
1737+
3, // input 36 (0x24 char '$') => 3 (0x3)
1738+
4, // input 37 (0x25 char '%') => 4 (0x4)
1739+
5, // input 38 (0x26 char '&') => 5 (0x5)
1740+
6, // input 39 (0x27 char ''') => 6 (0x6)
1741+
7, // input 40 (0x28 char '(') => 7 (0x7)
1742+
8, // input 41 (0x29 char ')') => 8 (0x8)
1743+
9, // input 42 (0x2A char '*') => 9 (0x9)
1744+
10, // input 43 (0x2B char '+') => 10 (0xA)
1745+
11, // input 44 (0x2C char ',') => 11 (0xB)
1746+
12, // input 45 (0x2D char '-') => 12 (0xC)
1747+
INVALID_VALUE, // input 46 (0x2E)
1748+
INVALID_VALUE, // input 47 (0x2F)
1749+
13, // input 48 (0x30 char '0') => 13 (0xD)
1750+
14, // input 49 (0x31 char '1') => 14 (0xE)
1751+
15, // input 50 (0x32 char '2') => 15 (0xF)
1752+
16, // input 51 (0x33 char '3') => 16 (0x10)
1753+
17, // input 52 (0x34 char '4') => 17 (0x11)
1754+
18, // input 53 (0x35 char '5') => 18 (0x12)
1755+
19, // input 54 (0x36 char '6') => 19 (0x13)
1756+
20, // input 55 (0x37 char '7') => 20 (0x14)
1757+
21, // input 56 (0x38 char '8') => 21 (0x15)
1758+
22, // input 57 (0x39 char '9') => 22 (0x16)
1759+
INVALID_VALUE, // input 58 (0x3A)
1760+
INVALID_VALUE, // input 59 (0x3B)
1761+
INVALID_VALUE, // input 60 (0x3C)
1762+
INVALID_VALUE, // input 61 (0x3D)
1763+
INVALID_VALUE, // input 62 (0x3E)
1764+
INVALID_VALUE, // input 63 (0x3F)
1765+
23, // input 64 (0x40 char '@') => 23 (0x17)
1766+
24, // input 65 (0x41 char 'A') => 24 (0x18)
1767+
25, // input 66 (0x42 char 'B') => 25 (0x19)
1768+
26, // input 67 (0x43 char 'C') => 26 (0x1A)
1769+
27, // input 68 (0x44 char 'D') => 27 (0x1B)
1770+
28, // input 69 (0x45 char 'E') => 28 (0x1C)
1771+
29, // input 70 (0x46 char 'F') => 29 (0x1D)
1772+
30, // input 71 (0x47 char 'G') => 30 (0x1E)
1773+
31, // input 72 (0x48 char 'H') => 31 (0x1F)
1774+
32, // input 73 (0x49 char 'I') => 32 (0x20)
1775+
33, // input 74 (0x4A char 'J') => 33 (0x21)
1776+
34, // input 75 (0x4B char 'K') => 34 (0x22)
1777+
35, // input 76 (0x4C char 'L') => 35 (0x23)
1778+
36, // input 77 (0x4D char 'M') => 36 (0x24)
1779+
37, // input 78 (0x4E char 'N') => 37 (0x25)
1780+
INVALID_VALUE, // input 79 (0x4F)
1781+
38, // input 80 (0x50 char 'P') => 38 (0x26)
1782+
39, // input 81 (0x51 char 'Q') => 39 (0x27)
1783+
40, // input 82 (0x52 char 'R') => 40 (0x28)
1784+
41, // input 83 (0x53 char 'S') => 41 (0x29)
1785+
42, // input 84 (0x54 char 'T') => 42 (0x2A)
1786+
43, // input 85 (0x55 char 'U') => 43 (0x2B)
1787+
44, // input 86 (0x56 char 'V') => 44 (0x2C)
1788+
INVALID_VALUE, // input 87 (0x57)
1789+
45, // input 88 (0x58 char 'X') => 45 (0x2D)
1790+
46, // input 89 (0x59 char 'Y') => 46 (0x2E)
1791+
47, // input 90 (0x5A char 'Z') => 47 (0x2F)
1792+
48, // input 91 (0x5B char '[') => 48 (0x30)
1793+
INVALID_VALUE, // input 92 (0x5C)
1794+
INVALID_VALUE, // input 93 (0x5D)
1795+
INVALID_VALUE, // input 94 (0x5E)
1796+
INVALID_VALUE, // input 95 (0x5F)
1797+
49, // input 96 (0x60 char '`') => 49 (0x31)
1798+
50, // input 97 (0x61 char 'a') => 50 (0x32)
1799+
51, // input 98 (0x62 char 'b') => 51 (0x33)
1800+
52, // input 99 (0x63 char 'c') => 52 (0x34)
1801+
53, // input 100 (0x64 char 'd') => 53 (0x35)
1802+
54, // input 101 (0x65 char 'e') => 54 (0x36)
1803+
INVALID_VALUE, // input 102 (0x66)
1804+
INVALID_VALUE, // input 103 (0x67)
1805+
55, // input 104 (0x68 char 'h') => 55 (0x37)
1806+
56, // input 105 (0x69 char 'i') => 56 (0x38)
1807+
57, // input 106 (0x6A char 'j') => 57 (0x39)
1808+
58, // input 107 (0x6B char 'k') => 58 (0x3A)
1809+
59, // input 108 (0x6C char 'l') => 59 (0x3B)
1810+
60, // input 109 (0x6D char 'm') => 60 (0x3C)
1811+
INVALID_VALUE, // input 110 (0x6E)
1812+
INVALID_VALUE, // input 111 (0x6F)
1813+
61, // input 112 (0x70 char 'p') => 61 (0x3D)
1814+
62, // input 113 (0x71 char 'q') => 62 (0x3E)
1815+
63, // input 114 (0x72 char 'r') => 63 (0x3F)
1816+
INVALID_VALUE, // input 115 (0x73)
1817+
INVALID_VALUE, // input 116 (0x74)
1818+
INVALID_VALUE, // input 117 (0x75)
1819+
INVALID_VALUE, // input 118 (0x76)
1820+
INVALID_VALUE, // input 119 (0x77)
1821+
INVALID_VALUE, // input 120 (0x78)
1822+
INVALID_VALUE, // input 121 (0x79)
1823+
INVALID_VALUE, // input 122 (0x7A)
1824+
INVALID_VALUE, // input 123 (0x7B)
1825+
INVALID_VALUE, // input 124 (0x7C)
1826+
INVALID_VALUE, // input 125 (0x7D)
1827+
INVALID_VALUE, // input 126 (0x7E)
1828+
INVALID_VALUE, // input 127 (0x7F)
1829+
INVALID_VALUE, // input 128 (0x80)
1830+
INVALID_VALUE, // input 129 (0x81)
1831+
INVALID_VALUE, // input 130 (0x82)
1832+
INVALID_VALUE, // input 131 (0x83)
1833+
INVALID_VALUE, // input 132 (0x84)
1834+
INVALID_VALUE, // input 133 (0x85)
1835+
INVALID_VALUE, // input 134 (0x86)
1836+
INVALID_VALUE, // input 135 (0x87)
1837+
INVALID_VALUE, // input 136 (0x88)
1838+
INVALID_VALUE, // input 137 (0x89)
1839+
INVALID_VALUE, // input 138 (0x8A)
1840+
INVALID_VALUE, // input 139 (0x8B)
1841+
INVALID_VALUE, // input 140 (0x8C)
1842+
INVALID_VALUE, // input 141 (0x8D)
1843+
INVALID_VALUE, // input 142 (0x8E)
1844+
INVALID_VALUE, // input 143 (0x8F)
1845+
INVALID_VALUE, // input 144 (0x90)
1846+
INVALID_VALUE, // input 145 (0x91)
1847+
INVALID_VALUE, // input 146 (0x92)
1848+
INVALID_VALUE, // input 147 (0x93)
1849+
INVALID_VALUE, // input 148 (0x94)
1850+
INVALID_VALUE, // input 149 (0x95)
1851+
INVALID_VALUE, // input 150 (0x96)
1852+
INVALID_VALUE, // input 151 (0x97)
1853+
INVALID_VALUE, // input 152 (0x98)
1854+
INVALID_VALUE, // input 153 (0x99)
1855+
INVALID_VALUE, // input 154 (0x9A)
1856+
INVALID_VALUE, // input 155 (0x9B)
1857+
INVALID_VALUE, // input 156 (0x9C)
1858+
INVALID_VALUE, // input 157 (0x9D)
1859+
INVALID_VALUE, // input 158 (0x9E)
1860+
INVALID_VALUE, // input 159 (0x9F)
1861+
INVALID_VALUE, // input 160 (0xA0)
1862+
INVALID_VALUE, // input 161 (0xA1)
1863+
INVALID_VALUE, // input 162 (0xA2)
1864+
INVALID_VALUE, // input 163 (0xA3)
1865+
INVALID_VALUE, // input 164 (0xA4)
1866+
INVALID_VALUE, // input 165 (0xA5)
1867+
INVALID_VALUE, // input 166 (0xA6)
1868+
INVALID_VALUE, // input 167 (0xA7)
1869+
INVALID_VALUE, // input 168 (0xA8)
1870+
INVALID_VALUE, // input 169 (0xA9)
1871+
INVALID_VALUE, // input 170 (0xAA)
1872+
INVALID_VALUE, // input 171 (0xAB)
1873+
INVALID_VALUE, // input 172 (0xAC)
1874+
INVALID_VALUE, // input 173 (0xAD)
1875+
INVALID_VALUE, // input 174 (0xAE)
1876+
INVALID_VALUE, // input 175 (0xAF)
1877+
INVALID_VALUE, // input 176 (0xB0)
1878+
INVALID_VALUE, // input 177 (0xB1)
1879+
INVALID_VALUE, // input 178 (0xB2)
1880+
INVALID_VALUE, // input 179 (0xB3)
1881+
INVALID_VALUE, // input 180 (0xB4)
1882+
INVALID_VALUE, // input 181 (0xB5)
1883+
INVALID_VALUE, // input 182 (0xB6)
1884+
INVALID_VALUE, // input 183 (0xB7)
1885+
INVALID_VALUE, // input 184 (0xB8)
1886+
INVALID_VALUE, // input 185 (0xB9)
1887+
INVALID_VALUE, // input 186 (0xBA)
1888+
INVALID_VALUE, // input 187 (0xBB)
1889+
INVALID_VALUE, // input 188 (0xBC)
1890+
INVALID_VALUE, // input 189 (0xBD)
1891+
INVALID_VALUE, // input 190 (0xBE)
1892+
INVALID_VALUE, // input 191 (0xBF)
1893+
INVALID_VALUE, // input 192 (0xC0)
1894+
INVALID_VALUE, // input 193 (0xC1)
1895+
INVALID_VALUE, // input 194 (0xC2)
1896+
INVALID_VALUE, // input 195 (0xC3)
1897+
INVALID_VALUE, // input 196 (0xC4)
1898+
INVALID_VALUE, // input 197 (0xC5)
1899+
INVALID_VALUE, // input 198 (0xC6)
1900+
INVALID_VALUE, // input 199 (0xC7)
1901+
INVALID_VALUE, // input 200 (0xC8)
1902+
INVALID_VALUE, // input 201 (0xC9)
1903+
INVALID_VALUE, // input 202 (0xCA)
1904+
INVALID_VALUE, // input 203 (0xCB)
1905+
INVALID_VALUE, // input 204 (0xCC)
1906+
INVALID_VALUE, // input 205 (0xCD)
1907+
INVALID_VALUE, // input 206 (0xCE)
1908+
INVALID_VALUE, // input 207 (0xCF)
1909+
INVALID_VALUE, // input 208 (0xD0)
1910+
INVALID_VALUE, // input 209 (0xD1)
1911+
INVALID_VALUE, // input 210 (0xD2)
1912+
INVALID_VALUE, // input 211 (0xD3)
1913+
INVALID_VALUE, // input 212 (0xD4)
1914+
INVALID_VALUE, // input 213 (0xD5)
1915+
INVALID_VALUE, // input 214 (0xD6)
1916+
INVALID_VALUE, // input 215 (0xD7)
1917+
INVALID_VALUE, // input 216 (0xD8)
1918+
INVALID_VALUE, // input 217 (0xD9)
1919+
INVALID_VALUE, // input 218 (0xDA)
1920+
INVALID_VALUE, // input 219 (0xDB)
1921+
INVALID_VALUE, // input 220 (0xDC)
1922+
INVALID_VALUE, // input 221 (0xDD)
1923+
INVALID_VALUE, // input 222 (0xDE)
1924+
INVALID_VALUE, // input 223 (0xDF)
1925+
INVALID_VALUE, // input 224 (0xE0)
1926+
INVALID_VALUE, // input 225 (0xE1)
1927+
INVALID_VALUE, // input 226 (0xE2)
1928+
INVALID_VALUE, // input 227 (0xE3)
1929+
INVALID_VALUE, // input 228 (0xE4)
1930+
INVALID_VALUE, // input 229 (0xE5)
1931+
INVALID_VALUE, // input 230 (0xE6)
1932+
INVALID_VALUE, // input 231 (0xE7)
1933+
INVALID_VALUE, // input 232 (0xE8)
1934+
INVALID_VALUE, // input 233 (0xE9)
1935+
INVALID_VALUE, // input 234 (0xEA)
1936+
INVALID_VALUE, // input 235 (0xEB)
1937+
INVALID_VALUE, // input 236 (0xEC)
1938+
INVALID_VALUE, // input 237 (0xED)
1939+
INVALID_VALUE, // input 238 (0xEE)
1940+
INVALID_VALUE, // input 239 (0xEF)
1941+
INVALID_VALUE, // input 240 (0xF0)
1942+
INVALID_VALUE, // input 241 (0xF1)
1943+
INVALID_VALUE, // input 242 (0xF2)
1944+
INVALID_VALUE, // input 243 (0xF3)
1945+
INVALID_VALUE, // input 244 (0xF4)
1946+
INVALID_VALUE, // input 245 (0xF5)
1947+
INVALID_VALUE, // input 246 (0xF6)
1948+
INVALID_VALUE, // input 247 (0xF7)
1949+
INVALID_VALUE, // input 248 (0xF8)
1950+
INVALID_VALUE, // input 249 (0xF9)
1951+
INVALID_VALUE, // input 250 (0xFA)
1952+
INVALID_VALUE, // input 251 (0xFB)
1953+
INVALID_VALUE, // input 252 (0xFC)
1954+
INVALID_VALUE, // input 253 (0xFD)
1955+
INVALID_VALUE, // input 254 (0xFE)
1956+
INVALID_VALUE, // input 255 (0xFF)
1957+
];

0 commit comments

Comments
 (0)