Python-like 'struct' for Nim
Python-like 'struct' for Nim
This library is still under development, use it as yourown risk!
Character | Byte order |
@ | native |
= | native |
little-endian | |
> | big-endian |
! | network (= big-endian) |
Notes:
Format | C Type | Python Type | Nim Type | Size (bytes) |
x | pad byte | no value | ||
b | char | string of length 1 | char | 1 |
? | _Bool | bool | bool | 1 |
h | short | integer | integerint16 | 2 |
H | usigned short | integer | integeruint16 | 2 |
i | int | integer | integerint32 | 4 |
I | unsigned int | integer | integeruint32 | 4 |
q | long long | integer | int64 | 8 |
Q | unsigned long long | integer | uint64 | 8 |
f | float | float | float32 | 4 |
d | double | float | float64 | 8 |
s | char[] | string | string |
Notes:
# >>> from struct import *
import struct
# >>> pack('hhi', 1, 2, 3)
var output = pack("hhi", 1, 2, 3)
# alternative way to pack
# output = pack("hhi", newStructInt(1), newStructInt(1), newStructInt(3))
# >>> unpack('hhi', '\x00\x01\x00\x02\x00\x00\x00\x03')
var result = unpack("hhi", output);
echo result[0].getShort
echo result[1].getShort
echo result[2].getInt