composite-aeson-0.8.2.2: src/Composite/Aeson/Compat.hs
module Composite.Aeson.Compat
( CompositeFormat(..)
) where
import Composite.Aeson.Base (parseJsonWithFormat', toJsonWithFormat)
import Composite.Aeson.Formats.Default (DefaultJsonFormat(..))
import Data.Aeson (FromJSON(..), ToJSON(..))
newtype CompositeFormat a = CompositeFormat {unCompositeFormat :: a}
instance DefaultJsonFormat a => FromJSON (CompositeFormat a) where
parseJSON = fmap CompositeFormat . parseJsonWithFormat' defaultJsonFormat
instance DefaultJsonFormat a => ToJSON (CompositeFormat a) where
toJSON = toJsonWithFormat defaultJsonFormat . unCompositeFormat