argo-0.2021.10.17: source/library/Argo/QuasiQuoter.hs
module Argo.QuasiQuoter where
import qualified Argo.Decode as Decode
import qualified Data.Text as Text
import qualified Data.Text.Encoding as Text
import qualified Language.Haskell.TH.Quote as QQ
import qualified Language.Haskell.TH.Syntax as TH
value :: QQ.QuasiQuoter
value = QQ.QuasiQuoter
{ QQ.quoteDec = const $ fail "quoteDec"
, QQ.quoteExp = maybe (fail "invalid JSON") TH.lift
. Decode.decodeWith pure
. Text.encodeUtf8
. Text.pack
, QQ.quotePat = const $ fail "quotePat"
, QQ.quoteType = const $ fail "quoteType"
}