@@ -13,6 +13,7 @@
14module Data.Aeson.Encode.ByteString
14module Data.Aeson.Encode.ByteString
16 , encodeToByteStringBuilder
17 , encodeToByteStringBuilder
@@ -38,17 +39,22 @@ infixr 6 <>
39-- | Efficiently serialize a JSON value as a lazy 'L.ByteString'.
40-- | Efficiently serialize a JSON value as a lazy 'L.ByteString'.
40encode :: ToJSON a => a -> L.ByteString
41encode :: ToJSON a => a -> L.ByteString
41−encode = B.toLazyByteString . encodeToByteStringBuilder . toJSON
42+encode = B.toLazyByteString . encodeToBuilder . toJSON
43-- | Encode a JSON value to a ByteString 'B.Builder'. Use this function if you
44-- | Encode a JSON value to a ByteString 'B.Builder'. Use this function if you
44-- must prepend or append further bytes to the encoded JSON value.
45-- must prepend or append further bytes to the encoded JSON value.
46+encodeToBuilder :: Value -> Builder
47+encodeToBuilder Null = null
48+encodeToBuilder (Bool b) = bool b
49+encodeToBuilder (Number n) = number n
50+encodeToBuilder (String s) = string s
51+encodeToBuilder (Array v) = array v
52+encodeToBuilder (Object m) = object m
54+-- | This function is an alias for 'encodeToBuilder'.
45encodeToByteStringBuilder :: Value -> Builder
55encodeToByteStringBuilder :: Value -> Builder
46−encodeToByteStringBuilder Null = null
56+encodeToByteStringBuilder = encodeToBuilder
47−encodeToByteStringBuilder (Bool b) = bool b
48−encodeToByteStringBuilder (Number n) = number n
49−encodeToByteStringBuilder (String s) = string s
50−encodeToByteStringBuilder (Array v) = array v
51−encodeToByteStringBuilder (Object m) = object m
57+{-# DEPRECATED encodeToByteStringBuilder "Use encodeToBuilder instead." #-}
53null :: Builder
59null :: Builder
54null = BP.primBounded (ascii4 ('n',('u',('l','l')))) ()
60null = BP.primBounded (ascii4 ('n',('u',('l','l')))) ()