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