module Text.Hex
(
encodeHex,
decodeHex,
lazilyEncodeHex,
Text,
LazyText,
ByteString,
LazyByteString,
lazyText,
strictText,
lazyByteString,
strictByteString,
)
where
import Data.ByteString qualified as ByteString
import Data.ByteString.Base16 qualified as Base16
import Data.ByteString.Base16.Lazy qualified as LazyBase16
import Data.ByteString.Lazy qualified as LazyByteString
import Data.Text qualified as Text
import Data.Text.Encoding qualified as Text
import Data.Text.Lazy qualified as LazyText
import Data.Text.Lazy.Encoding qualified as LazyText
import Prelude (Maybe (..), const, either)
type ByteString = ByteString.ByteString
type LazyByteString = LazyByteString.ByteString
type Text = Text.Text
type LazyText = LazyText.Text
encodeHex :: ByteString -> Text
encodeHex :: ByteString -> Text
encodeHex ByteString
bs =
ByteString -> Text
Text.decodeUtf8 (ByteString -> ByteString
Base16.encode ByteString
bs)
decodeHex :: Text -> Maybe ByteString
decodeHex :: Text -> Maybe ByteString
decodeHex Text
txt =
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either (forall a b. a -> b -> a
const forall a. Maybe a
Nothing) forall a. a -> Maybe a
Just (ByteString -> Either String ByteString
Base16.decode (Text -> ByteString
Text.encodeUtf8 Text
txt))
lazilyEncodeHex :: LazyByteString -> LazyText
lazilyEncodeHex :: LazyByteString -> LazyText
lazilyEncodeHex LazyByteString
bs =
LazyByteString -> LazyText
LazyText.decodeUtf8 (LazyByteString -> LazyByteString
LazyBase16.encode LazyByteString
bs)
lazyText :: Text -> LazyText
lazyText :: Text -> LazyText
lazyText = Text -> LazyText
LazyText.fromStrict
strictText :: LazyText -> Text
strictText :: LazyText -> Text
strictText = LazyText -> Text
LazyText.toStrict
lazyByteString :: ByteString -> LazyByteString
lazyByteString :: ByteString -> LazyByteString
lazyByteString = ByteString -> LazyByteString
LazyByteString.fromStrict
strictByteString :: LazyByteString -> ByteString
strictByteString :: LazyByteString -> ByteString
strictByteString = LazyByteString -> ByteString
LazyByteString.toStrict