{-# OPTIONS_GHC -fno-warn-orphans -fsimpl-tick-factor=500 #-} module Macro.PkgBinary where import Macro.Types import Data.Binary as Binary import Data.Binary.Get as Binary import Data.ByteString.Lazy as BS serialise :: [GenericPackageDescription] -> BS.ByteString serialise pkgs = Binary.encode pkgs deserialise :: BS.ByteString -> [GenericPackageDescription] deserialise = Binary.decode deserialiseNull :: BS.ByteString -> () deserialiseNull = Binary.runGet $ do n <- get :: Get Int go n where go 0 = return () go i = do x <- get :: Get GenericPackageDescription x `seq` go (i-1) instance Binary Version instance Binary PackageName instance Binary PackageId instance Binary VersionRange instance Binary Dependency instance Binary CompilerFlavor instance Binary License instance Binary SourceRepo instance Binary RepoKind instance Binary RepoType instance Binary BuildType instance Binary Library instance Binary Executable instance Binary TestSuite instance Binary TestSuiteInterface instance Binary TestType instance Binary Benchmark instance Binary BenchmarkInterface instance Binary BenchmarkType instance Binary BuildInfo instance Binary ModuleName instance Binary Language instance Binary Extension instance Binary KnownExtension instance Binary PackageDescription instance Binary OS instance Binary Arch instance Binary Flag instance Binary FlagName instance (Binary a, Binary b, Binary c) => Binary (CondTree a b c) instance Binary ConfVar instance Binary a => Binary (Condition a) instance Binary GenericPackageDescription