Add file
This commit is contained in:
@@ -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
|
||||||
Reference in New Issue
Block a user