mirror of
https://github.com/msgpack/msgpack-c.git
synced 2025-10-21 23:56:55 +02:00
haskell: finish template-haskell deriving implement
This commit is contained in:
@@ -7,7 +7,7 @@ import qualified Data.ByteString.Char8 as B
|
||||
import qualified Data.ByteString.Lazy.Char8 as L
|
||||
import Data.MessagePack
|
||||
|
||||
mid :: (ObjectGet a, ObjectPut a) => a -> a
|
||||
mid :: (Packable a, Unpackable a) => a -> a
|
||||
mid = unpack . pack
|
||||
|
||||
prop_mid_int a = a == mid a
|
||||
|
||||
@@ -10,6 +10,13 @@ data T
|
||||
|
||||
$(deriveObject ''T)
|
||||
|
||||
data U
|
||||
= C { c1 :: Int, c2 :: String }
|
||||
| D { d1 :: Double }
|
||||
deriving (Show)
|
||||
|
||||
$(deriveObject ''U)
|
||||
|
||||
main = do
|
||||
let bs = pack $ A 123 "hoge"
|
||||
print bs
|
||||
@@ -17,3 +24,22 @@ main = do
|
||||
let cs = pack $ B 3.14
|
||||
print cs
|
||||
print (unpack cs :: T)
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user