unwitch-1.0.0: src/Unwitch/Convert/LazyText.hs
module Unwitch.Convert.LazyText
( toText
, toString
, fromString
, toLazyByteStringUtf8
, toLazyByteStringUtf16LE
, toLazyByteStringUtf16BE
, toLazyByteStringUtf32LE
, toLazyByteStringUtf32BE
, toLazyByteStringLatin1
)
where
import Data.ByteString.Lazy qualified as LBS
import Data.ByteString.Lazy.Char8 qualified as LBSC8
import Data.Text (Text)
import Data.Text.Lazy qualified as LT
import Data.Text.Lazy.Encoding qualified as LTE
toText :: LT.Text -> Text
toText = LT.toStrict
toString :: LT.Text -> String
toString = LT.unpack
fromString :: String -> LT.Text
fromString = LT.pack
toLazyByteStringUtf8 :: LT.Text -> LBS.ByteString
toLazyByteStringUtf8 = LTE.encodeUtf8
toLazyByteStringUtf16LE :: LT.Text -> LBS.ByteString
toLazyByteStringUtf16LE = LTE.encodeUtf16LE
toLazyByteStringUtf16BE :: LT.Text -> LBS.ByteString
toLazyByteStringUtf16BE = LTE.encodeUtf16BE
toLazyByteStringUtf32LE :: LT.Text -> LBS.ByteString
toLazyByteStringUtf32LE = LTE.encodeUtf32LE
toLazyByteStringUtf32BE :: LT.Text -> LBS.ByteString
toLazyByteStringUtf32BE = LTE.encodeUtf32BE
toLazyByteStringLatin1 :: LT.Text -> Maybe LBS.ByteString
toLazyByteStringLatin1 t = if LT.all isLatin1 t
then Just $ LBSC8.pack (LT.unpack t)
else Nothing
isLatin1 :: Char -> Bool
isLatin1 c = c <= '\xFF'