ascii-superset-1.2.6.0: library/ASCII/SupersetConversion.hs
module ASCII.SupersetConversion
(
{- * Class -} StringSupersetConversion (..),
{- * Utilities -} convertRefinedString,
)
where
import ASCII.Superset
import {-# source #-} ASCII.Refinement.Internal (convertRefinedString)
import qualified Data.ByteString as BS
import qualified Data.ByteString.Char8 as BS.Char8
import qualified Data.ByteString.Lazy as LBS
import qualified Data.ByteString.Lazy.Char8 as LBS.Char8
import qualified Data.Char as Unicode
import qualified Data.Text as T
import qualified Data.Text.Encoding as T
import qualified Data.Text.Lazy as LT
import qualified Data.Text.Lazy.Encoding as LT
class (StringSuperset a, StringSuperset b) => StringSupersetConversion a b where
convertStringUnsafe :: a -> b
instance StringSupersetConversion T.Text BS.ByteString where
convertStringUnsafe = T.encodeUtf8
instance StringSupersetConversion BS.ByteString T.Text where
convertStringUnsafe = T.decodeUtf8
instance StringSupersetConversion LT.Text LBS.ByteString where
convertStringUnsafe = LT.encodeUtf8
instance StringSupersetConversion LBS.ByteString LT.Text where
convertStringUnsafe = LT.decodeUtf8
instance StringSupersetConversion T.Text LT.Text where
convertStringUnsafe = LT.fromStrict
instance StringSupersetConversion LT.Text T.Text where
convertStringUnsafe = LT.toStrict
instance StringSupersetConversion BS.ByteString LBS.ByteString where
convertStringUnsafe = LBS.fromStrict
instance StringSupersetConversion LBS.ByteString BS.ByteString where
convertStringUnsafe = LBS.toStrict
---
instance StringSupersetConversion T.Text [Unicode.Char] where
convertStringUnsafe = T.unpack
instance StringSupersetConversion [Unicode.Char] T.Text where
convertStringUnsafe = T.pack
instance StringSupersetConversion LT.Text [Unicode.Char] where
convertStringUnsafe = LT.unpack
instance StringSupersetConversion [Unicode.Char] LT.Text where
convertStringUnsafe = LT.pack
instance StringSupersetConversion BS.ByteString [Unicode.Char] where
convertStringUnsafe = BS.Char8.unpack
instance StringSupersetConversion [Unicode.Char] BS.ByteString where
convertStringUnsafe = BS.Char8.pack
instance StringSupersetConversion LBS.ByteString [Unicode.Char] where
convertStringUnsafe = LBS.Char8.unpack
instance StringSupersetConversion [Unicode.Char] LBS.ByteString where
convertStringUnsafe = LBS.Char8.pack