{-|
Module      : Data.MessagePack.Spec
Description : Message Pack specification values
Copyright   : (c) Rodrigo Setti, 2014
License     : MIT
Maintainer  : rodrigosetti@gmail.com
Stability   : experimental
Portability : portable

Define, in a single place, all the message-pack specification binary type
markers.
-}
module Data.MessagePack.Spec where

import Data.Word

posFixintMask :: Word8
posFixintMask = Word8
0x80    -- 10000000
negFixintMask :: Word8
negFixintMask = Word8
0xe0    -- 11100000
fixmapMask :: Word8
fixmapMask    = Word8
0xf0    -- 11110000
fixarrayMask :: Word8
fixarrayMask  = Word8
0xf0    -- 11110000
fixstrMask :: Word8
fixstrMask    = Word8
0xe0    -- 11100000

posFixint :: Word8
posFixint = Word8
0x00        -- 0xxxxxxx
negFixint :: Word8
negFixint = Word8
0xe0        -- 111xxxxx
fixmap :: Word8
fixmap    = Word8
0x80        -- 1000xxxx
fixarray :: Word8
fixarray  = Word8
0x90        -- 1001xxxx
fixstr :: Word8
fixstr    = Word8
0xa0        -- 101xxxxx
nil :: Word8
nil       = Word8
0xc0        -- 11000000
false :: Word8
false     = Word8
0xc2        -- 11000010
true :: Word8
true      = Word8
0xc3        -- 11000011
bin8 :: Word8
bin8      = Word8
0xc4        -- 11000100
bin16 :: Word8
bin16     = Word8
0xc5        -- 11000101
bin32 :: Word8
bin32     = Word8
0xc6        -- 11000110
ext8 :: Word8
ext8      = Word8
0xc7        -- 11000111
ext16 :: Word8
ext16     = Word8
0xc8        -- 11001000
ext32 :: Word8
ext32     = Word8
0xc9        -- 11001001
float32 :: Word8
float32   = Word8
0xca        -- 11001010
float64 :: Word8
float64   = Word8
0xcb        -- 11001011
uint8 :: Word8
uint8     = Word8
0xcc        -- 11001100
uint16 :: Word8
uint16    = Word8
0xcd        -- 11001101
uint32 :: Word8
uint32    = Word8
0xce        -- 11001110
uint64 :: Word8
uint64    = Word8
0xcf        -- 11001111
int8 :: Word8
int8      = Word8
0xd0        -- 11010000
int16 :: Word8
int16     = Word8
0xd1        -- 11010001
int32 :: Word8
int32     = Word8
0xd2        -- 11010010
int64 :: Word8
int64     = Word8
0xd3        -- 11010011
fixext1 :: Word8
fixext1   = Word8
0xd4        -- 11010100
fixext2 :: Word8
fixext2   = Word8
0xd5        -- 11010101
fixext4 :: Word8
fixext4   = Word8
0xd6        -- 11010110
fixext8 :: Word8
fixext8   = Word8
0xd7        -- 11010111
fixext16 :: Word8
fixext16  = Word8
0xd8        -- 11011000
str8 :: Word8
str8      = Word8
0xd9        -- 11011001
str16 :: Word8
str16     = Word8
0xda        -- 11011010
str32 :: Word8
str32     = Word8
0xdb        -- 11011011
array16 :: Word8
array16   = Word8
0xdc        -- 11011100
array32 :: Word8
array32   = Word8
0xdd        -- 11011101
map16 :: Word8
map16     = Word8
0xde        -- 11011110
map32 :: Word8
map32     = Word8
0xdf        -- 11011111

posFixintMask :: Word8
negFixintMask :: Word8
fixmapMask    :: Word8
fixarrayMask  :: Word8
fixstrMask    :: Word8

posFixint :: Word8
negFixint :: Word8
fixmap    :: Word8
fixarray  :: Word8
fixstr    :: Word8
nil       :: Word8
false     :: Word8
true      :: Word8
bin8      :: Word8
bin16     :: Word8
bin32     :: Word8
ext8      :: Word8
ext16     :: Word8
ext32     :: Word8
float32   :: Word8
float64   :: Word8
uint8     :: Word8
uint16    :: Word8
uint32    :: Word8
uint64    :: Word8
int8      :: Word8
int16     :: Word8
int32     :: Word8
int64     :: Word8
fixext1   :: Word8
fixext2   :: Word8
fixext4   :: Word8
fixext8   :: Word8
fixext16  :: Word8
str8      :: Word8
str16     :: Word8
str32     :: Word8
array16   :: Word8
array32   :: Word8
map16     :: Word8
map32     :: Word8