inbus

annotate new-encoding.txt @ 5:8ecb08252c8a

Dictionary unpacker now done.
author Eric Hopper <hopper@omnifarious.org>
date Mon, 25 Feb 2008 20:11:32 -0800
parents
children
rev   line source
hopper@1 1 'c' Count (the type of an enum)
hopper@1 2 A count of something. This is not meant to have the range to
hopper@1 3 represent an arbitrary integer for the purposes of something like
hopper@1 4 cryptography that requires arbitrarily large abstract integers.
hopper@1 5
hopper@1 6 'm' a multi-precision integer (accepts length modifier giving octets in integer)
hopper@1 7 An arbitrary sized integer.
hopper@1 8 'w' an unsigned multi-precision integer (accepts length modified)
hopper@1 9 An arbitrary sized unsigned integer.
hopper@1 10
hopper@1 11 'y' a yes/no value, aka a boolean
hopper@1 12 Encoded as a single byte 0 or 1.
hopper@1 13
hopper@1 14 'b' binary
hopper@1 15 An opaque blob of binary data
hopper@1 16
hopper@1 17 's' string (accepts a length modifier for fixed length strings)
hopper@1 18 A sequence of UTF-8 encoded characters.
hopper@1 19
hopper@1 20 'k' integer 8
hopper@1 21 An 8-bit two's complement integer
hopper@1 22 'p' unsigned integer 8
hopper@1 23 An 8-bit integer that is always >= 0 (may also be used for bitfields)
hopper@1 24 'j' integer 16
hopper@1 25 A 16-bit two's complement integer
hopper@1 26 'o' unsigned integer 16 (no, 'o' makes no sense)
hopper@1 27 A 16-bit integer that is always >= 0 (may also be used for bitfields)
hopper@1 28 'i' integer 32
hopper@1 29 A 32-bit two's complement integer
hopper@1 30 'u' integer 32
hopper@1 31 A 32-bit integer that is always >= 0 (may also be used for bitfields)
hopper@1 32 'l' integer 64
hopper@1 33 A 64-bit two's complement integer
hopper@1 34 'n' integer 64
hopper@1 35 A 64-bit integer that is always >= 0 (may also be used for bitfields)
hopper@1 36
hopper@1 37 'f' floating
hopper@1 38 An IEEE 754 64 bit floating point number.
hopper@1 39 'h' half-size floating
hopper@1 40 An IEEE 754 32 bit floating point number.
hopper@1 41 'g' a giant arbitrary precision floating point (maybe)
hopper@1 42 An IEEE 754 floating point number with a sign + exponent size of 16
hopper@1 43 bits and an arbitrary number of bits of precision.
hopper@1 44
hopper@1 45 't(...)' Tuple (a ')' terminated list of types)
hopper@1 46 A grouping of values.
hopper@1 47 'a[.]' an array (contains one type, the type of all the elements)
hopper@1 48 Array's, lists and sets are largely indistinguishable in how they
hopper@1 49 look on the wire, and so they are all represented by an
hopper@1 50 array. Array's are not length delimited, there is a flag before
hopper@1 51 each element saying whether or not it's the last one.
hopper@1 52 'd{..}' a dictionary (contains two types, the key type and value type of all the elements)
hopper@1 53 A mapping from keys to values.
hopper@1 54 'v' variant type
hopper@1 55 This is a type where the type is encoded in its value.