Data.Binary
文档显示手动编写实例。有没有解决的办法?我看到here还有另一个库,SerTH,它有一个(基于模板Haskell的)派生机制,但是它的链接似乎被打破了。此外,如果您了解其他库,那么良好的性能对我们至关重要。
提前谢谢!
答案 0 :(得分:6)
请参阅http://hackage.haskell.org/packages/archive/binary/0.7.1.0/doc/html/Data-Binary.html#g:3
{-# LANGUAGE DeriveGeneric #-}
import Data.Binary
import GHC.Generics (Generic)
data Foo = Foo
deriving (Generic)
-- GHC will automatically fill out the instance
instance Binary Foo
答案 1 :(得分:5)
Neil Mitchells Derive package有一个用于派生二进制实例的模板haskell宏。
答案 2 :(得分:5)
由于您询问了其他库:
cereal数据序列化库有cereal-derive,它与GHC 7.2中的新Generics支持一起使用。这比模板Haskell具有编译时速度优势(我现在倾向于避免TH,因为它使编译速度更慢)和运行时速度优于SYB和Uniplate等数据类型泛型方法。
谷类食品非常类似于二元食品,但使用严格的ByteStrings;自2009年以来,二进制文件还没有更新,而谷物有IEEE-754 float format support这样的细节,所以如果你想要推导,我看不出任何理由不使用二进制文件。