| Copyright | (c) 2020 Emily Pillmore |
|---|---|
| License | BSD-style |
| Maintainer | Emily Pillmore <emilypi@cohomolo.gy> |
| Stability | stable |
| Portability | non-portable |
| Safe Haskell | Trustworthy |
| Language | Haskell2010 |
Data.ByteString.Lazy.Base16
Description
This module contains ByteString-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 :: ByteString -> Text
- encodeBase16' :: ByteString -> ByteString
- decodeBase16 :: ByteString -> Either Text ByteString
- decodeBase16Lenient :: ByteString -> ByteString
- isBase16 :: ByteString -> Bool
- isValidBase16 :: ByteString -> Bool
Documentation
encodeBase16 :: ByteString -> Text Source #
Encode a lazy ByteString value as Base16 Text with padding.
See: RFC-4648 section 8
Examples:
>>>encodeBase16 "Sun""53756e"
encodeBase16' :: ByteString -> ByteString Source #
Encode a lazy ByteString value as a Base16 ByteString value with padding.
See: RFC-4648 section 8
Examples:
>>>encodeBase16' "Sun""53756e"
decodeBase16 :: ByteString -> Either Text ByteString Source #
Decode a padded Base16-encoded lazy ByteString value.
See: RFC-4648 section 8
Examples:
>>>decodeBase16 "53756e"Right "Sun"
>>>decodeBase16 "6x"Left "invalid character at offset: 1"
decodeBase16Lenient :: ByteString -> ByteString Source #
Decode a Base16-encoded ByteString value leniently, using a
strategy that never fails
N.B.: this is not RFC 4648-compliant. It may give you garbage if you're not careful!
Examples:
>>>decodeBase16Lenient "53756e""Sun"
>>>decodeBase16Lenient "6x6x""f"
isBase16 :: ByteString -> Bool Source #
Tell whether a lazy ByteString value is base16 encoded.
Examples:
>>>isBase16 "666f6"False
>>>isBase16 "666f"True
isValidBase16 :: ByteString -> Bool Source #
Tell whether a lazy ByteString 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 alphabet. To check whether it is a true
Base16 encoded ByteString value, use isBase16.
Examples:
>>>isValidBase16 "666f+/6"False
>>>isValidBase16 "666f6"True