|
4 | 4 | * Discrete numbers: |
5 | 5 | * Signed (one-byte alignment): `i8`, `i16`, `i32`, `i64`, `i128` |
6 | 6 | * Unsigned (one-byte alignment): `u8`, `u16`, `u32`, `u64`, `u128` |
7 | | - * Unsigned (four-bit alignment): `u4` |
8 | | - * Signed and unsigned (one-bit alignment): `iN` and `uN` (`U1`, `U2`, `U3`, ... `U64`, `I2` ... `I64`) |
9 | | -* Nibble-based variable length u32: `UNib32` (1 to 11 nibbles) |
| 7 | + * Unsigned (four-bit alignment): `nib` |
| 8 | + * Signed and unsigned (one-bit alignment): `u1`, `u2`, `u3`, ... `ub64`, `i2` ... `ib64` |
| 9 | + * `u8` is byte-aligned, while `ub8` is bit-aligned |
| 10 | +* Nibble-based variable length u32: `unib32` (1 to 11 nibbles, four-bit alignment) |
10 | 11 | * Floating point numbers: `f32`, `f64` |
11 | 12 | * Textual: |
12 | 13 | * UTF-8 string `String` |
|
24 | 25 | * `RefBox<T>` for self-referential types. |
25 | 26 | * User-defined: |
26 | 27 | * Struct |
27 | | - * Enum with or without data variants |
28 | | - * U1..=U63 (1-bit aligned) and unib32 discriminants. |
| 28 | + * Enum with or without data variants, multiple discriminant options: |
| 29 | + * Bit-aligned: `u1`, `u2`, ... |
| 30 | + * Nibble-aligned: `nib` |
| 31 | + * Byte-aligned: `u8`, `u16`, `u32` |
| 32 | + * Variable length `unib32`. |
29 | 33 | * Tuple |
30 | 34 |
|
31 | 35 | * Not yet supported or not decided whether to support: |
32 | | - * Tuple |
33 | 36 | * Unicode character: `char` (4B) |
34 | 37 | * ASCII character `c_char` (1B) (ASCII) and string: `c_str` |
35 | 38 | * Map |
|
0 commit comments