{-# OPTIONS_GHC -fno-warn-orphans -fsimpl-tick-factor=500 #-}
module Macro.PkgStore where

import Macro.Types
import Data.Store as Store
import Data.ByteString as BS

serialise :: [GenericPackageDescription] -> BS.ByteString
serialise pkgs = Store.encode pkgs

deserialise :: ByteString -> [GenericPackageDescription]
deserialise = (\(Right x) -> x) . Store.decode

instance Store Version
instance Store PackageName
instance Store PackageId
instance Store VersionRange
instance Store Dependency
instance Store CompilerFlavor
instance Store License
instance Store SourceRepo
instance Store RepoKind
instance Store RepoType
instance Store BuildType
instance Store Library
instance Store Executable
instance Store TestSuite
instance Store TestSuiteInterface
instance Store TestType
instance Store Benchmark
instance Store BenchmarkInterface
instance Store BenchmarkType
instance Store BuildInfo
instance Store ModuleName
instance Store Language
instance Store Extension
instance Store KnownExtension
instance Store OS
instance Store Arch
instance Store Flag
instance Store FlagName
instance (Store a, Store b, Store c) => Store (CondTree a b c)
instance Store ConfVar
instance Store a => Store (Condition a)
instance Store PackageDescription
instance Store GenericPackageDescription