module Data.Aeson.Attoparsec where import Data.Aeson (FromJSON (..), Value (String)) import Data.Aeson.Types (typeMismatch) import qualified Data.Aeson as Aeson import qualified Data.Aeson.Types as Aeson import Data.Attoparsec.Text (parseOnly) import qualified Data.Attoparsec.Text as Attoparsec attoAeson :: Attoparsec.Parser a -> Value -> Aeson.Parser a attoAeson parser (String x) = case parseOnly parser x of Left e -> fail e Right x -> pure x attoAeson _ x = typeMismatch "Attoparsec" x