{-# LANGUAGE OverloadedStrings #-} {-# OPTIONS -Wno-orphans #-} module TextShow.Data.Aeson where import Data.Aeson (Value(..)) import qualified Data.Aeson.Key as K import qualified Data.Aeson.KeyMap as KM import Prelude () import Prelude.Compat import TextShow (TextShow(..), fromText, showbParen, showtToShowb, singleton) import TextShow.Data.Scientific () import TextShow.Data.Vector () instance TextShow K.Key where showb :: Key -> Builder showb = forall a. (a -> Text) -> a -> Builder showtToShowb forall a. TextShow a => a -> Text showt showt :: Key -> Text showt = forall a. TextShow a => a -> Text showt forall b c a. (b -> c) -> (a -> b) -> a -> c . Key -> Text K.toText instance TextShow Value where showbPrec :: Int -> Value -> Builder showbPrec Int _ Value Null = Text -> Builder fromText Text "Null" showbPrec Int d (Bool Bool b) = Bool -> Builder -> Builder showbParen (Int d forall a. Ord a => a -> a -> Bool > Int 10) forall a b. (a -> b) -> a -> b $ Text -> Builder fromText Text "Bool " forall a. Semigroup a => a -> a -> a <> forall a. TextShow a => Int -> a -> Builder showbPrec Int 11 Bool b showbPrec Int d (Number Scientific s) = Bool -> Builder -> Builder showbParen (Int d forall a. Ord a => a -> a -> Bool > Int 10) forall a b. (a -> b) -> a -> b $ Text -> Builder fromText Text "Number " forall a. Semigroup a => a -> a -> a <> forall a. TextShow a => Int -> a -> Builder showbPrec Int 11 Scientific s showbPrec Int d (String Text s) = Bool -> Builder -> Builder showbParen (Int d forall a. Ord a => a -> a -> Bool > Int 10) forall a b. (a -> b) -> a -> b $ Text -> Builder fromText Text "String " forall a. Semigroup a => a -> a -> a <> forall a. TextShow a => Int -> a -> Builder showbPrec Int 11 Text s showbPrec Int d (Array Array xs) = Bool -> Builder -> Builder showbParen (Int d forall a. Ord a => a -> a -> Bool > Int 10) forall a b. (a -> b) -> a -> b $ Text -> Builder fromText Text "Array " forall a. Semigroup a => a -> a -> a <> forall a. TextShow a => Int -> a -> Builder showbPrec Int 11 Array xs showbPrec Int d (Object Object xs) = Bool -> Builder -> Builder showbParen (Int d forall a. Ord a => a -> a -> Bool > Int 10) forall a b. (a -> b) -> a -> b $ Text -> Builder fromText Text "Object (fromList " forall a. Semigroup a => a -> a -> a <> forall a. TextShow a => Int -> a -> Builder showbPrec Int 11 (forall v. KeyMap v -> [(Key, v)] KM.toAscList Object xs) forall a. Semigroup a => a -> a -> a <> Char -> Builder singleton Char ')'