module Data.Convertible.Instances.Text()
where
import Data.Convertible.Base
import qualified Data.Text as TS
import qualified Data.Text.Lazy as TL
import qualified Data.ByteString as BS
import qualified Data.ByteString.Lazy as BL
import Data.Word (Word8)
instance Convertible [Char] TS.Text where
safeConvert = Right . TS.pack
instance Convertible TS.Text [Char] where
safeConvert = Right . TS.unpack
instance Convertible [Char] TL.Text where
safeConvert = Right . TL.pack
instance Convertible TL.Text [Char] where
safeConvert = Right . TL.unpack
#if MIN_VERSION_text(0,8,1)
instance Convertible TS.Text TL.Text where
safeConvert = Right . TL.fromStrict
instance Convertible TL.Text TS.Text where
safeConvert = Right . TL.toStrict
#else
instance Convertible TS.Text TL.Text where
safeConvert = Right . TL.fromChunks . (:[])
instance Convertible TL.Text TS.Text where
safeConvert = Right . TS.concat . TL.toChunks
#endif
instance Convertible [Word8] BS.ByteString where
safeConvert = Right . BS.pack
instance Convertible BS.ByteString [Word8] where
safeConvert = Right . BS.unpack
instance Convertible [Word8] BL.ByteString where
safeConvert = Right . BL.pack
instance Convertible BL.ByteString [Word8] where
safeConvert = Right . BL.unpack
instance Convertible BS.ByteString BL.ByteString where
safeConvert = Right . BL.fromChunks . (:[])
instance Convertible BL.ByteString BS.ByteString where
safeConvert = Right . BS.concat . BL.toChunks