-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | ByteString-Text hexidecimal conversions -- -- Encode a ByteString as a hexidecimal Text value, or decode hexidecimal -- Text as a ByteString. @package hex-text @version 0.1.0.7 module Text.Hex -- | Encodes a byte string as hexidecimal number represented in text. Each -- byte of the input is converted into two characters in the resulting -- text. -- --
-- >>> (encodeHex . ByteString.singleton) 192 -- "c0" ---- --
-- >>> (encodeHex . ByteString.singleton) 168 -- "a8" ---- --
-- >>> (encodeHex . ByteString.pack) [192, 168, 1, 2] -- "c0a80102" ---- -- Text produced by encodeHex can be converted back to a -- ByteString using decodeHex. -- -- The lazy variant of encodeHex is lazilyEncodeHex. encodeHex :: ByteString -> Text -- | Decodes hexidecimal text as a byte string. If the text contains an -- even number of characters and consists only of the digits 0 -- through 9 and letters a through f, then the -- result is a Just value. -- -- Unpacking the ByteString in the following examples allows for prettier -- printing in the REPL. -- --
-- >>> (fmap ByteString.unpack . decodeHex . Text.pack) "c0a80102" -- Just [192,168,1,2] ---- -- If the text contains an odd number of characters, decoding fails and -- produces Nothing. -- --
-- >>> (fmap ByteString.unpack . decodeHex . Text.pack) "c0a8010" -- Nothing ---- -- If the text contains non-hexidecimal characters, decoding fails and -- produces Nothing. -- --
-- >>> (fmap ByteString.unpack . decodeHex . Text.pack) "x0a80102" -- Nothing ---- -- The letters may be in either upper or lower case. This next example -- therefore gives the same result as the first one above: -- --
-- >>> (fmap ByteString.unpack . decodeHex . Text.pack) "C0A80102" -- Just [192,168,1,2] --decodeHex :: Text -> Maybe ByteString -- | lazilyEncodeHex is the lazy variant of encodeHex. -- -- With laziness, it is possible to encode byte strings of infinite -- length: -- --
-- >>> (LazyText.take 8 . lazilyEncodeHex . LazyByteString.pack . cycle) [1, 2, 3] -- "01020301" --lazilyEncodeHex :: LazyByteString -> LazyText -- | Strict text type Text = Text -- | Lazy text type LazyText = Text -- | Strict byte string type ByteString = ByteString -- | Lazy byte string type LazyByteString = ByteString lazyText :: Text -> LazyText strictText :: LazyText -> Text lazyByteString :: ByteString -> LazyByteString strictByteString :: LazyByteString -> ByteString