module Unwitch.Convert.ByteString
( toLazyByteString
, toShortByteString
, toWord8s
, fromWord8s
, toTextLatin1
#ifdef __GLASGOW_HASKELL__
, toTextUtf8
, toTextUtf16LE
, toTextUtf16BE
, toTextUtf32LE
, toTextUtf32BE
#endif
)
where
import Data.ByteString (ByteString)
import Data.ByteString qualified as BS
import Data.ByteString.Lazy qualified as LBS
import Data.ByteString.Short qualified as SBS
import Data.ByteString.Short (ShortByteString)
import Data.Text (Text)
import Data.Text.Encoding qualified as TE
import Data.Word (Word8)
#ifdef __GLASGOW_HASKELL__
import Data.Text.Encoding.Error (UnicodeException)
import Unwitch.TryEvaluate (tryEvaluate)
#endif
toLazyByteString :: ByteString -> LBS.ByteString
toLazyByteString :: ByteString -> ByteString
toLazyByteString = ByteString -> ByteString
LBS.fromStrict
toShortByteString :: ByteString -> ShortByteString
toShortByteString :: ByteString -> ShortByteString
toShortByteString = ByteString -> ShortByteString
SBS.toShort
toWord8s :: ByteString -> [Word8]
toWord8s :: ByteString -> [Word8]
toWord8s = ByteString -> [Word8]
BS.unpack
fromWord8s :: [Word8] -> ByteString
fromWord8s :: [Word8] -> ByteString
fromWord8s = [Word8] -> ByteString
BS.pack
toTextLatin1 :: ByteString -> Text
toTextLatin1 :: ByteString -> Text
toTextLatin1 = ByteString -> Text
TE.decodeLatin1
#ifdef __GLASGOW_HASKELL__
toTextUtf8 :: ByteString -> Either UnicodeException Text
toTextUtf8 :: ByteString -> Either UnicodeException Text
toTextUtf8 = ByteString -> Either UnicodeException Text
TE.decodeUtf8'
toTextUtf16LE :: ByteString -> Either UnicodeException Text
toTextUtf16LE :: ByteString -> Either UnicodeException Text
toTextUtf16LE = Text -> Either UnicodeException Text
forall e a. Exception e => a -> Either e a
tryEvaluate (Text -> Either UnicodeException Text)
-> (ByteString -> Text)
-> ByteString
-> Either UnicodeException Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> Text
TE.decodeUtf16LE
toTextUtf16BE :: ByteString -> Either UnicodeException Text
toTextUtf16BE :: ByteString -> Either UnicodeException Text
toTextUtf16BE = Text -> Either UnicodeException Text
forall e a. Exception e => a -> Either e a
tryEvaluate (Text -> Either UnicodeException Text)
-> (ByteString -> Text)
-> ByteString
-> Either UnicodeException Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> Text
TE.decodeUtf16BE
toTextUtf32LE :: ByteString -> Either UnicodeException Text
toTextUtf32LE :: ByteString -> Either UnicodeException Text
toTextUtf32LE = Text -> Either UnicodeException Text
forall e a. Exception e => a -> Either e a
tryEvaluate (Text -> Either UnicodeException Text)
-> (ByteString -> Text)
-> ByteString
-> Either UnicodeException Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> Text
TE.decodeUtf32LE
toTextUtf32BE :: ByteString -> Either UnicodeException Text
toTextUtf32BE :: ByteString -> Either UnicodeException Text
toTextUtf32BE = Text -> Either UnicodeException Text
forall e a. Exception e => a -> Either e a
tryEvaluate (Text -> Either UnicodeException Text)
-> (ByteString -> Text)
-> ByteString
-> Either UnicodeException Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> Text
TE.decodeUtf32BE
#endif