__author__ = "Matthieu Gallet"

TYPE_NIL = b"0"
TYPE_TRUE = b"T"
TYPE_FALSE = b"F"
TYPE_FIXNUM = b"i"
TYPE_ARRAY = b"["
TYPE_SYMBOL = b":"
TYPE_STRING = b'"'
TYPE_IVAR = b"I"
TYPE_HASH = b"{"
TYPE_FLOAT = b"f"
TYPE_BIGNUM = b"l"
TYPE_REGEXP = b"/"
TYPE_USRMARSHAL = b"U"
TYPE_SYMLINK = b";"
TYPE_LINK = b"@"
TYPE_EXTENDED = b"e"
TYPE_UCLASS = b"C"
TYPE_OBJECT = b"o"
TYPE_DATA = b"d"
TYPE_USERDEF = b"u"
TYPE_HASH_DEF = b"}"
TYPE_STRUCT = b"S"
TYPE_MODULE_OLD = b"M"
TYPE_CLASS = b"c"
TYPE_MODULE = b"m"

TYPES = {
    TYPE_NIL: "TYPE_NIL",
    TYPE_TRUE: "TYPE_TRUE",
    TYPE_FALSE: "TYPE_FALSE",
    TYPE_FIXNUM: "TYPE_FIXNUM",
    TYPE_ARRAY: "TYPE_ARRAY",
    TYPE_SYMBOL: "TYPE_SYMBOL",
    TYPE_STRING: "TYPE_STRING",
    TYPE_IVAR: "TYPE_IVAR",
    TYPE_HASH: "TYPE_HASH",
    TYPE_FLOAT: "TYPE_FLOAT",
    TYPE_BIGNUM: "TYPE_BIGNUM",
    TYPE_REGEXP: "TYPE_REGEXP",
    TYPE_USRMARSHAL: "TYPE_USRMARSHAL",
    TYPE_SYMLINK: "TYPE_SYMLINK",
    TYPE_LINK: "TYPE_LINK",
    TYPE_EXTENDED: "TYPE_EXTENDED",
    TYPE_UCLASS: "TYPE_UCLASS",
    TYPE_OBJECT: "TYPE_OBJECT",
    TYPE_DATA: "TYPE_DATA",
    TYPE_USERDEF: "TYPE_USERDEF",
    TYPE_HASH_DEF: "TYPE_HASH_DEF",
    TYPE_STRUCT: "TYPE_STRUCT",
    TYPE_MODULE_OLD: "TYPE_MODULE_OLD",
    TYPE_CLASS: "TYPE_CLASS",
    TYPE_MODULE: "TYPE_MODULE",
}
