| Copyright | (c) 2020 Emily Pillmore | 
|---|---|
| License | BSD-style | 
| Maintainer | Emily Pillmore <emilypi@cohomolo.gy> | 
| Stability | stable | 
| Portability | non-portable | 
| Safe Haskell | Safe | 
| Language | Haskell2010 | 
Data.Text.Encoding.Base16
Description
This module contains Text-valued combinators for
 implementing the RFC 4648 specification of the Base16
 encoding format. This includes lenient decoding variants, as well as
 internal and external validation for canonicity.
Synopsis
- encodeBase16 :: Text -> Text
- decodeBase16 :: Text -> Either Text Text
- decodeBase16With :: (ByteString -> Either err Text) -> ByteString -> Either (Base16Error err) Text
- decodeBase16Lenient :: Text -> Text
- isBase16 :: Text -> Bool
- isValidBase16 :: Text -> Bool
Documentation
encodeBase16 :: Text -> Text Source #
Encode a Text value in Base16 with padding.
See: RFC-4648 section 8
Examples:
>>>encodeBase16 "Sun""53756e"
decodeBase16 :: Text -> Either Text Text Source #
Decode a Base16-encoded lazy Text value.
See: RFC-4648 section 8
Examples:
>>>decodeBase16 "53756e"Right "Sun"
>>>decodeBase16 "6x"Left "invalid character at offset: 1"
Arguments
| :: (ByteString -> Either err Text) | convert a bytestring to text (e.g.  | 
| -> ByteString | Input to decode | 
| -> Either (Base16Error err) Text | 
Attempt to decode a lazy Text value as Base16, converting from
 ByteString to Text according to some encoding function. In practice,
 This is something like decodeUtf8', which may produce an error.
See: RFC-4648 section 8
Example:
decodeBase16WithdecodeUtf8'::ByteString->Either(Base16ErrorUnicodeException)Text
Since: 0.3.0.0
decodeBase16Lenient :: Text -> Text Source #
Decode a Base16-encoded lazy Text value leniently, using a
 strategy that never fails, catching unicode exceptions raised in the
 process of converting to text values.
N.B.: this is not RFC 4648-compliant.
Examples:
>>>decodeBase16Lenient "53756e""Sun"
>>>decodeBase16Lenient "6x6x""f"
isBase16 :: Text -> Bool Source #
Tell whether a Text value is Base16-encoded.
Examples:
>>>isBase16 "666f6"False
>>>isBase16 "666f"True
isValidBase16 :: Text -> Bool Source #
Tell whether a Text value is a valid Base16 format.
This will not tell you whether or not this is a correct Base16 representation,
 only that it conforms to the correct shape. To check whether it is a true
 Base16 encoded Text value, use isBase16.
Examples:
>>>isValidBase16 "666f+/6"False
>>>isValidBase16 "666f6"True