aeson-match-qq-1.0.0: src/Aeson/Match/QQ.hs
module Aeson.Match.QQ
( Value(..)
, Array
, Object
, Box(..)
, 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)
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"
}