aeson-match-qq-1.3.0: src/Aeson/Match/QQ.hs
module Aeson.Match.QQ
( Value(..)
, Array
, Object
, Box(..)
, TypeSig(..)
, Type(..)
, Nullable(..)
, Path
, PathElem(..)
, parse
, qq
, match
, mismatch
, missingPathElem
, extraArrayValues
, extraObjectValues
) where
import Data.String (IsString(..))
import Language.Haskell.TH.Quote (QuasiQuoter(..))
import Language.Haskell.TH.Syntax (Lift(..))
import Aeson.Match.QQ.Internal.Match (Path, PathElem(..), match, mismatch, missingPathElem, extraArrayValues, extraObjectValues)
import Aeson.Match.QQ.Internal.Parse (parse)
import Aeson.Match.QQ.Internal.Value (Value(..), Box(..), Array, Object, TypeSig(..), Type(..), Nullable(..))
qq :: QuasiQuoter
qq = QuasiQuoter
{ quoteExp = \str ->
case parse (fromString str) of
Left err ->
error ("Aeson.Match.QQ.qq: " ++ err)
Right val ->
lift val
, quotePat =
\_ -> error "Aeson.Match.QQ.qq: no quotePat"
, quoteType =
\_ -> error "Aeson.Match.QQ.qq: no quoteType"
, quoteDec =
\_ -> error "Aeson.Match.QQ.qq: no quoteDec"
}