packages feed

hw-json 0.2.0.2 → 0.2.0.3

raw patch · 2 files changed

+29/−1 lines, 2 filesdep +ansi-wl-pprintPVP: minor bump suggested

API additions: PVP suggests at least a minor version bump

Dependencies added: ansi-wl-pprint

API changes (from Hackage documentation)

+ HaskellWorks.Data.Json.PartialValue: instance Text.PrettyPrint.ANSI.Leijen.Pretty HaskellWorks.Data.Json.PartialValue.JsonPartialField
+ HaskellWorks.Data.Json.PartialValue: instance Text.PrettyPrint.ANSI.Leijen.Pretty HaskellWorks.Data.Json.PartialValue.JsonPartialValue

Files

hw-json.cabal view
@@ -1,5 +1,5 @@ name:                   hw-json-version:                0.2.0.2+version:                0.2.0.3 synopsis:               Conduits for tokenizing streams. description:            Please see README.md homepage:               http://github.com/haskell-works/hw-json#readme@@ -66,6 +66,7 @@                       , HaskellWorks.Data.Json.Value.Internal   build-depends:        base                          >= 4          && < 5                       , array+                      , ansi-wl-pprint                       , attoparsec                       , bytestring                       , conduit
src/HaskellWorks/Data/Json/PartialValue.hs view
@@ -15,6 +15,7 @@ import qualified Data.ByteString                              as BS import           HaskellWorks.Data.Json.Succinct.PartialIndex import           HaskellWorks.Data.Json.Value.Internal+import           Text.PrettyPrint.ANSI.Leijen  data JsonPartialValue   = JsonPartialString String@@ -56,3 +57,29 @@             ABC.Fail    {}  -> JsonPartialError ("Invalid field: '" ++ show (BS.take 20 bs) ++ "...'")             ABC.Partial _   -> JsonPartialError "Unexpected end of field"             ABC.Done    _ s -> JsonPartialString s++data JsonPartialField = JsonPartialField String JsonPartialValue++toJsonPartialField :: (String, JsonPartialValue) -> JsonPartialField+toJsonPartialField (k, v) = JsonPartialField k v++instance Pretty JsonPartialField where+  pretty (JsonPartialField k v) = text (show k) <> text ": " <> pretty v++hEncloseSep :: Doc -> Doc -> Doc -> [Doc] -> Doc+hEncloseSep l r s ds+    = case ds of+        []  -> l <> r+        [d] -> l <> d <> r+        _   -> hcat (zipWith (<>) (l : repeat s) ds) <> r++instance Pretty JsonPartialValue where+  pretty mjpv = case mjpv of+    JsonPartialString s   -> dullgreen  (text (show s))+    JsonPartialNumber n   -> cyan       (text (show n))+    JsonPartialObject []  -> text "{}"+    JsonPartialObject kvs -> hEncloseSep (text "{{") (text "}}") (text ",") ((pretty . toJsonPartialField) `map` kvs)+    JsonPartialArray vs   -> hEncloseSep (text "[") (text "]") (text ",") (pretty `map` vs)+    JsonPartialBool w     -> red (text (show w))+    JsonPartialNull       -> text "null"+    JsonPartialError s    -> text "<error " <> text s <> text ">"