module Text.Hex
(
encodeHex
, decodeHex
, lazilyEncodeHex
, Text
, LazyText
, ByteString
, LazyByteString
, lazyText
, strictText
, lazyByteString
, strictByteString
) where
import qualified Data.ByteString.Base16 as Base16
import qualified Data.ByteString.Base16.Lazy as LazyBase16
import qualified Data.ByteString as ByteString
import qualified Data.ByteString.Lazy as LazyByteString
import qualified Data.Text as Text
import qualified Data.Text.Encoding as Text
import qualified Data.Text.Lazy as LazyText
import qualified Data.Text.Lazy.Encoding as LazyText
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 =
(String -> Maybe ByteString)
-> (ByteString -> Maybe ByteString)
-> Either String ByteString
-> Maybe ByteString
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either (Maybe ByteString -> String -> Maybe ByteString
forall a b. a -> b -> a
const Maybe ByteString
forall a. Maybe a
Nothing) ByteString -> Maybe ByteString
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