{-# LANGUAGE FlexibleInstances #-} {-# OPTIONS_GHC -fno-warn-orphans #-} module Data.ByteString.Extended ( ) where import Data.Aeson import Data.ByteString import qualified Data.CaseInsensitive import Data.Text.Encoding import qualified Data.Text.Encoding.Error instance FromJSON ByteString where parseJSON = withText "ByteString" $ pure . Data.Text.Encoding.encodeUtf8 instance ToJSON Data.ByteString.ByteString where toJSON = String . Data.Text.Encoding.decodeUtf8With Data.Text.Encoding.Error.lenientDecode instance ToJSON (Data.CaseInsensitive.CI Data.ByteString.ByteString) where toJSON = toJSON . Data.CaseInsensitive.foldedCase instance FromJSON (Data.CaseInsensitive.CI Data.ByteString.ByteString) where parseJSON = withText "CI ByteString" $ pure . Data.CaseInsensitive.mk . Data.Text.Encoding.encodeUtf8