-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Fast RFC 4648-compliant Base16 encoding -- -- RFC 4648-compliant Base16 encodings and decodings. This library -- provides performant encoding and decoding primitives, as well as -- support for textual values. @package base16 @version 0.3.1.0 -- | 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. module Data.ByteString.Base16 -- | Encode a ByteString value as Base16 Text with padding. -- -- See: RFC-4648 section 8 -- --
-- >>> encodeBase16 "Sun" -- "53756e" --encodeBase16 :: ByteString -> Text -- | Encode a ByteString value as a Base16 ByteString value -- with padding. -- -- See: RFC-4648 section 8 -- --
-- >>> encodeBase16' "Sun" -- "53756e" --encodeBase16' :: ByteString -> ByteString -- | Decode a Base16-encoded ByteString value. -- -- See: RFC-4648 section 8 -- --
-- >>> decodeBase16 "53756e" -- Right "Sun" ---- --
-- >>> decodeBase16 "6x" -- Left "invalid character at offset: 1" --decodeBase16 :: ByteString -> Either Text ByteString -- | Decode a Base16-encoded ByteString value leniently, using a -- strategy that never fails -- -- N.B.: this is not RFC 4648-compliant -- --
-- >>> decodeBase16Lenient "53756e" -- "Sun" ---- --
-- >>> decodeBase16Lenient "6x6x" -- "f" --decodeBase16Lenient :: ByteString -> ByteString -- | Tell whether a ByteString value is base16 encoded. -- --
-- >>> isBase16 "666f6" -- False ---- --
-- >>> isBase16 "666f" -- True --isBase16 :: ByteString -> Bool -- | Tell whether a 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. -- --
-- >>> isValidBase16 "666f+/6" -- False ---- --
-- >>> isValidBase16 "666f6" -- True --isValidBase16 :: ByteString -> Bool -- | 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. module Data.ByteString.Lazy.Base16 -- | Encode a lazy ByteString value as Base16 Text with -- padding. -- -- See: RFC-4648 section 8 -- --
-- >>> encodeBase16 "Sun" -- "53756e" --encodeBase16 :: ByteString -> Text -- | Encode a lazy ByteString value as a Base16 ByteString -- value with padding. -- -- See: RFC-4648 section 8 -- --
-- >>> encodeBase16' "Sun" -- "53756e" --encodeBase16' :: ByteString -> ByteString -- | Decode a padded Base16-encoded lazy ByteString value. -- -- See: RFC-4648 section 8 -- --
-- >>> decodeBase16 "53756e" -- Right "Sun" ---- --
-- >>> decodeBase16 "6x" -- Left "invalid character at offset: 1" --decodeBase16 :: ByteString -> Either Text ByteString -- | 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! -- --
-- >>> decodeBase16Lenient "53756e" -- "Sun" ---- --
-- >>> decodeBase16Lenient "6x6x" -- "f" --decodeBase16Lenient :: ByteString -> ByteString -- | Tell whether a lazy ByteString value is base16 encoded. -- --
-- >>> isBase16 "666f6" -- False ---- --
-- >>> isBase16 "666f" -- True --isBase16 :: ByteString -> Bool -- | 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. -- --
-- >>> isValidBase16 "666f+/6" -- False ---- --
-- >>> isValidBase16 "666f6" -- True --isValidBase16 :: ByteString -> Bool -- | This module contains ShortByteString-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. module Data.ByteString.Short.Base16 -- | Encode a ShortByteString value as Base16 ShortText with -- padding. -- -- See: RFC-4648 section 8 -- --
-- >>> encodeBase16 "Sun" -- "53756e" --encodeBase16 :: ShortByteString -> ShortText -- | Encode a ShortByteString value as a Base16 -- ShortByteString value with padding. -- -- See: RFC-4648 section 8 -- --
-- >>> encodeBase16' "Sun" -- "53756e" --encodeBase16' :: ShortByteString -> ShortByteString -- | Decode a Base16-encoded ShortByteString value. -- -- See: RFC-4648 section 8 -- --
-- >>> decodeBase16 "53756e" -- Right "Sun" ---- --
-- >>> decodeBase16 "6x" -- Left "invalid character at offset: 1" --decodeBase16 :: ShortByteString -> Either Text ShortByteString -- | Decode a Base16-encoded ShortByteString value leniently, using -- a strategy that never fails -- -- N.B.: this is not RFC 4648-compliant -- --
-- >>> decodeBase16Lenient "53756e" -- "Sun" ---- --
-- >>> decodeBase16Lenient "6x6x" -- "f" --decodeBase16Lenient :: ShortByteString -> ShortByteString -- | Tell whether a ShortByteString value is base16 encoded. -- --
-- >>> isBase16 "666f6" -- False ---- --
-- >>> isBase16 "666f" -- True --isBase16 :: ShortByteString -> Bool -- | Tell whether a ShortByteString 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 ShortByteString -- value, use isBase16. -- --
-- >>> isValidBase16 "666f+/6" -- False ---- --
-- >>> isValidBase16 "666f6" -- True --isValidBase16 :: ShortByteString -> Bool -- | This module contains the error types raised in the decoding process. module Data.Text.Encoding.Base16.Error -- | This data type represents the type of decoding errors of various kinds -- as they pertain to decoding Text values. Namely, to distinguish -- between decoding errors from opaque unicode exceptions caught in the -- unicode decoding process. data Base16Error e -- | The error associated with decoding failure as a result of the Base16 -- decoding process DecodeError :: Text -> Base16Error e -- | The error associated with the decoding failure as a result of the -- conversion process ConversionError :: e -> Base16Error e instance GHC.Generics.Generic (Data.Text.Encoding.Base16.Error.Base16Error e) instance GHC.Show.Show e => GHC.Show.Show (Data.Text.Encoding.Base16.Error.Base16Error e) instance GHC.Classes.Eq e => GHC.Classes.Eq (Data.Text.Encoding.Base16.Error.Base16Error e) instance GHC.Exception.Type.Exception e => GHC.Exception.Type.Exception (Data.Text.Encoding.Base16.Error.Base16Error e) instance Control.DeepSeq.NFData e => Control.DeepSeq.NFData (Data.Text.Encoding.Base16.Error.Base16Error e) -- | 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. module Data.Text.Encoding.Base16 -- | Encode a Text value in Base16 with padding. -- -- See: RFC-4648 section 8 -- --
-- >>> encodeBase16 "Sun" -- "53756e" --encodeBase16 :: Text -> Text -- | Decode a Base16-encoded Text value. -- -- See: RFC-4648 section 8 -- --
-- >>> decodeBase16 "53756e" -- Right "Sun" ---- --
-- >>> decodeBase16 "6x" -- Left "invalid character at offset: 1" --decodeBase16 :: Text -> Either Text Text -- | Attempt to decode a 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 -- --
-- decodeBase16With decodeUtf8' -- :: ByteString -> Either (Base16Error UnicodeException) Text --decodeBase16With :: (ByteString -> Either err Text) -> ByteString -> Either (Base16Error err) Text -- | Decode a Base16-encoded 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. -- --
-- >>> decodeBase16Lenient "53756e" -- "Sun" ---- --
-- >>> decodeBase16Lenient "6x6x" -- "f" --decodeBase16Lenient :: Text -> Text -- | Tell whether a Text value is Base16-encoded. -- --
-- >>> isBase16 "666f6" -- False ---- --
-- >>> isBase16 "666f" -- True --isBase16 :: Text -> Bool -- | 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. -- --
-- >>> isValidBase16 "666f+/6" -- False ---- --
-- >>> isValidBase16 "666f6" -- True --isValidBase16 :: Text -> Bool -- | 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. module Data.Text.Lazy.Encoding.Base16 -- | Encode a lazy Text value in Base16 with padding. -- -- See: RFC-4648 section 8 -- --
-- >>> encodeBase16 "Sun" -- "53756e" --encodeBase16 :: Text -> Text -- | Decode a Base16-encoded lazy Text value. -- -- See: RFC-4648 section 8 -- --
-- >>> decodeBase16 "53756e" -- Right "Sun" ---- --
-- >>> decodeBase16 "6x" -- Left "invalid character at offset: 1" --decodeBase16 :: Text -> Either Text 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 -- --
-- decodeBase16With decodeUtf8' -- :: ByteString -> Either (Base16Error UnicodeException) Text --decodeBase16With :: (ByteString -> Either err Text) -> ByteString -> Either (Base16Error err) Text -- | Decode a Base16-encoded lazy Text value leniently, using a -- strategy that never fails. -- -- Warning: in the conversion to unicode text, exceptions may be -- thrown. Please use decodeBase16' if you are unsure if you are -- working with base16-encoded values, or if you expect garbage. -- -- N.B.: this is not RFC 4648-compliant. It may give you garbage if -- you're not careful! -- --
-- >>> decodeBase16Lenient "53756e" -- "Sun" ---- --
-- >>> decodeBase16Lenient "6x6x" -- "f" --decodeBase16Lenient :: Text -> Text -- | Tell whether a lazy Text value is Base16-encoded. -- --
-- >>> isBase16 "666f6" -- False ---- --
-- >>> isBase16 "666f" -- True --isBase16 :: Text -> Bool -- | Tell whether a lazy 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. -- --
-- >>> isValidBase16 "666f+/6" -- False ---- --
-- >>> isValidBase16 "666f6" -- True --isValidBase16 :: Text -> Bool -- | This module contains ShortText-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. module Data.Text.Short.Encoding.Base16 -- | Encode a ShortText value in Base16 with padding. -- -- See: RFC-4648 section 8 -- --
-- >>> encodeBase16 "Sun" -- "53756e" --encodeBase16 :: ShortText -> ShortText -- | Decode a Base16-encoded ShortText value. -- -- See: RFC-4648 section 8 -- --
-- >>> decodeBase16 "53756e" -- Right "Sun" ---- --
-- >>> decodeBase16 "6x" -- Left "invalid character at offset: 1" --decodeBase16 :: ShortText -> Either Text ShortText -- | Attempt to decode a ShortText value as Base16, converting from -- ByteString to ShortText according to some encoding -- function. In practice, This is something like decodeUtf8', -- which may produce an error. -- -- See: RFC-4648 section 8 -- --
-- decodeBase16With (fmap fromText . decodeUtf8' . fromShort) -- :: ShortByteString -> Either (Base16Error UnicodeException) ShortText --decodeBase16With :: (ShortByteString -> Either err ShortText) -> ShortByteString -> Either (Base16Error err) ShortText -- | Decode a Base16-encoded ShortText 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. -- --
-- >>> decodeBase16Lenient "53756e" -- "Sun" ---- --
-- >>> decodeBase16Lenient "6x6x" -- "f" --decodeBase16Lenient :: ShortText -> ShortText -- | Tell whether a ShortText value is Base16-encoded. -- --
-- >>> isBase16 "666f6" -- False ---- --
-- >>> isBase16 "666f" -- True --isBase16 :: ShortText -> Bool -- | Tell whether a ShortText 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 ShortText value, use -- isBase16. -- --
-- >>> isValidBase16 "666f+/6" -- False ---- --
-- >>> isValidBase16 "666f6" -- True --isValidBase16 :: ShortText -> Bool