2010-09-23 00:04:34 +09:00
|
|
|
{-# Language TemplateHaskell #-}
|
|
|
|
|
|
|
|
import Data.MessagePack
|
|
|
|
import Data.MessagePack.Derive
|
|
|
|
|
|
|
|
data T
|
|
|
|
= A Int String
|
|
|
|
| B Double
|
|
|
|
deriving (Show)
|
|
|
|
|
|
|
|
$(deriveObject ''T)
|
|
|
|
|
2010-09-24 01:24:13 +09:00
|
|
|
data U
|
|
|
|
= C { c1 :: Int, c2 :: String }
|
|
|
|
| D { d1 :: Double }
|
|
|
|
deriving (Show)
|
|
|
|
|
|
|
|
$(deriveObject ''U)
|
|
|
|
|
2010-09-23 00:04:34 +09:00
|
|
|
main = do
|
|
|
|
let bs = pack $ A 123 "hoge"
|
|
|
|
print bs
|
|
|
|
print (unpack bs :: T)
|
|
|
|
let cs = pack $ B 3.14
|
|
|
|
print cs
|
|
|
|
print (unpack cs :: T)
|
2010-09-24 01:24:13 +09:00
|
|
|
let oa = toObject $ A 123 "hoge"
|
|
|
|
print oa
|
|
|
|
print (fromObject oa :: T)
|
|
|
|
let ob = toObject $ B 3.14
|
|
|
|
print ob
|
|
|
|
print (fromObject ob :: T)
|
|
|
|
|
|
|
|
let ds = pack $ C 123 "hoge"
|
|
|
|
print ds
|
|
|
|
print (unpack ds :: U)
|
|
|
|
let es = pack $ D 3.14
|
|
|
|
print es
|
|
|
|
print (unpack es :: U)
|
|
|
|
let oc = toObject $ C 123 "hoge"
|
|
|
|
print oc
|
|
|
|
print (fromObject oc :: U)
|
|
|
|
let od = toObject $ D 3.14
|
|
|
|
print od
|
|
|
|
print (fromObject od :: U)
|