on master help sign in
Add ToJSON and FromJSON instances for HashSet.
commit2877ae68bd36c55fdb34aa11cde1585d69e8417e authorBryan O'Sullivan <bos@mailrank.com> dateWed 22 Jun 2011, 11:16 (15 years ago) parent354dedd
1 file changed+9
Data/Aeson/Types.hs+9
Data/Aeson/Types.hs+9
@@ -64,6 +64,7 @@ import System.Locale (defaultTimeLocale)
6464import qualified Data.ByteString as B
6565import qualified Data.ByteString.Lazy as LB
6666import qualified Data.HashMap.Strict as H
67+import qualified Data.HashSet as HashSet
6768import qualified Data.IntSet as IntSet
6869import qualified Data.Map as M
6970import qualified Data.Set as Set
@@ -569,6 +570,14 @@ instance (Ord a, FromJSON a) => FromJSON (Set.Set a) where
569570 parseJSON = fmap Set.fromList . parseJSON
570571 {-# INLINE parseJSON #-}
571572
573+instance (ToJSON a) => ToJSON (HashSet.HashSet a) where
574+ toJSON = toJSON . HashSet.toList
575+ {-# INLINE toJSON #-}
576+
577+instance (Eq a, Hashable a, FromJSON a) => FromJSON (HashSet.HashSet a) where
578+ parseJSON = fmap HashSet.fromList . parseJSON
579+ {-# INLINE parseJSON #-}
580+
572581instance ToJSON IntSet.IntSet where
573582 toJSON = toJSON . IntSet.toList
574583 {-# INLINE toJSON #-}