This commit is contained in:
2023-05-01 10:27:16 +01:00
parent d0534e6fa3
commit 1a746adad2
+23
View File
@@ -0,0 +1,23 @@
module AesonHelp where
import Data.Aeson (ToJSON)
import qualified Data.Aeson.Encode.Pretty as AEP
import Data.ByteString.Lazy.Char8 (unpack)
import Data.Maybe
getPretty :: ToJSON a => a -> [String]
getPretty = lines . unpack . AEP.encodePretty' (AEP.Config (AEP.Spaces 2) compare AEP.Generic False)
getPrettyShort :: ToJSON a => a -> [String]
getPrettyShort = mapMaybe cullPretty . getPretty
cullPretty :: String -> Maybe String
cullPretty s = case dropWhile (== ' ') s of
']':_ -> Nothing
'[':_ -> Nothing
'}':_ -> Nothing
'{':_ -> Nothing
_ -> Just $ filter f s
where
f '_' = False
f '"' = False
f _ = True