restoring array conversion using toBson/fromBson

This commit is contained in:
Scott R. Parish 2010-03-09 08:22:30 -06:00
parent d1366e2261
commit c1b8a21366
2 changed files with 98 additions and 6 deletions

View file

@ -472,3 +472,98 @@ instance BsonConv Word64 where
fromBson (BsonInt32 i) = fromIntegral i fromBson (BsonInt32 i) = fromIntegral i
fromBson (BsonInt64 i) = fromIntegral i fromBson (BsonInt64 i) = fromIntegral i
fromBson _ = throwUnsupConv fromBson _ = throwUnsupConv
instance BsonConv [Double] where
toBson = BsonArray . List.map toBson
fromBson (BsonArray ss) = List.map fromBson ss
fromBson _ = throwUnsupConv
instance BsonConv [Float] where
toBson = BsonArray . List.map toBson
fromBson (BsonArray ss) = List.map fromBson ss
fromBson _ = throwUnsupConv
instance BsonConv [Int] where
toBson = BsonArray . List.map toBson
fromBson (BsonArray ss) = List.map fromBson ss
fromBson _ = throwUnsupConv
instance BsonConv [Int8] where
toBson = BsonArray . List.map toBson
fromBson (BsonArray ss) = List.map fromBson ss
fromBson _ = throwUnsupConv
instance BsonConv [Int16] where
toBson = BsonArray . List.map toBson
fromBson (BsonArray ss) = List.map fromBson ss
fromBson _ = throwUnsupConv
instance BsonConv [Int32] where
toBson = BsonArray . List.map toBson
fromBson (BsonArray ss) = List.map fromBson ss
fromBson _ = throwUnsupConv
instance BsonConv [Int64] where
toBson = BsonArray . List.map toBson
fromBson (BsonArray ss) = List.map fromBson ss
fromBson _ = throwUnsupConv
instance BsonConv [Integer] where
toBson = BsonArray . List.map toBson
fromBson (BsonArray ss) = List.map fromBson ss
fromBson _ = throwUnsupConv
instance BsonConv [Word] where
toBson = BsonArray . List.map toBson
fromBson (BsonArray ss) = List.map fromBson ss
fromBson _ = throwUnsupConv
instance BsonConv [Word8] where
toBson = BsonArray . List.map toBson
fromBson (BsonArray ss) = List.map fromBson ss
fromBson _ = throwUnsupConv
instance BsonConv [Word16] where
toBson = BsonArray . List.map toBson
fromBson (BsonArray ss) = List.map fromBson ss
fromBson _ = throwUnsupConv
instance BsonConv [Word32] where
toBson = BsonArray . List.map toBson
fromBson (BsonArray ss) = List.map fromBson ss
fromBson _ = throwUnsupConv
instance BsonConv [Word64] where
toBson = BsonArray . List.map toBson
fromBson (BsonArray ss) = List.map fromBson ss
fromBson _ = throwUnsupConv
instance BsonConv [Bool] where
toBson = BsonArray . List.map toBson
fromBson (BsonArray ss) = List.map fromBson ss
fromBson _ = throwUnsupConv
instance BsonConv [POSIXTime] where
toBson = BsonArray . List.map toBson
fromBson (BsonArray ss) = List.map fromBson ss
fromBson _ = throwUnsupConv
instance BsonConv [String] where
toBson = BsonArray . List.map toBson
fromBson (BsonArray ss) = List.map fromBson ss
fromBson _ = throwUnsupConv
instance BsonConv [L8.ByteString] where
toBson = BsonArray . List.map toBson
fromBson (BsonArray ss) = List.map fromBson ss
fromBson _ = throwUnsupConv
instance BsonConv [S8.ByteString] where
toBson = BsonArray . List.map toBson
fromBson (BsonArray ss) = List.map fromBson ss
fromBson _ = throwUnsupConv
instance BsonConv [BsonDoc] where
toBson = BsonArray . List.map toBson
fromBson (BsonArray ss) = List.map fromBson ss
fromBson _ = throwUnsupConv

View file

@ -25,14 +25,11 @@ map/reduce queries on:
> :{ > :{
insertMany c col [ insertMany c col [
(toBsonDoc [("x", BsonInt32 1), (toBsonDoc [("x", BsonInt32 1),
("tags", BsonArray [toBson "dog", ("tags", toBson ["dog", "cat"])]),
toBson "cat"])]),
(toBsonDoc [("x", BsonInt32 2), (toBsonDoc [("x", BsonInt32 2),
("tags", BsonArray [toBson "cat"])]), ("tags", toBson ["cat"])]),
(toBsonDoc [("x", BsonInt32 3), (toBsonDoc [("x", BsonInt32 3),
("tags", BsonArray [toBson "mouse", ("tags", toBson ["mouse", "cat", "doc"])]),
toBson "cat",
toBson "doc"])]),
(toBsonDoc [("x", BsonInt32 4), (toBsonDoc [("x", BsonInt32 4),
("tags", BsonArray [])]) ("tags", BsonArray [])])
] ]