-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | RFC 4648-compliant Base16 encodings/decodings -- -- 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.2.0.1 -- | This module contains the combinators implementing the RFC 4648 -- specification for the Base16 encoding including unpadded and lenient -- variants for bytestrings module Data.ByteString.Base16 -- | Encode a ByteString value as Base16 Text with padding. -- -- See: RFC-4648 section 8 encodeBase16 :: ByteString -> Text -- | Encode a ByteString value as a Base16 ByteString value -- with padding. -- -- See: RFC-4648 section 8 encodeBase16' :: ByteString -> ByteString -- | Decode a Base16-encoded ByteString value. -- -- See: RFC-4648 section 8 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 :: ByteString -> ByteString -- | Tell whether a ByteString value is base16 encoded. -- -- Examples: -- -- This example will fail. It conforms to the alphabet, but is not valid -- because it has an incorrect (odd) length. -- --
--   >>> isBase16 "666f6"
--   False
--   
-- -- This example will succeed because it satisfies the alphabet and is -- considered "valid" (i.e. of the correct size and shape). -- --
--   >>> 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. -- -- Examples: -- -- This example will fail because it does not conform to the Hex -- alphabet. -- --
--   >>> isValidBase16 "666f+/6"
--   False
--   
-- -- This example will succeed because it satisfies the alphabet and is -- considered "valid" (i.e. of the correct size and shape), but is not -- correct base16 because it is the wrong shape. -- --
--   >>> isValidBase16 "666f6"
--   True
--   
isValidBase16 :: ByteString -> Bool -- | This module contains the combinators implementing the RFC 4648 -- specification for the Base16 encoding including unpadded and lenient -- variants for lazy bytestrings module Data.ByteString.Lazy.Base16 -- | Encode a lazy ByteString value as Base16 Text with -- padding. -- -- See: RFC-4648 section 8 encodeBase16 :: ByteString -> Text -- | Encode a lazy ByteString value as a Base16 ByteString -- value with padding. -- -- See: RFC-4648 section 8 encodeBase16' :: ByteString -> ByteString -- | Decode a padded Base16-encoded lazy ByteString value. -- -- See: RFC-4648 section 8 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 :: ByteString -> ByteString -- | Tell whether a lazy ByteString value is base16 encoded. -- -- Examples: -- -- This example will fail. It conforms to the alphabet, but is not valid -- because it has an incorrect (odd) length. -- --
--   >>> isBase16 "666f6"
--   False
--   
-- -- This example will succeed because it satisfies the alphabet and is -- considered "valid" (i.e. of the correct size and shape). -- --
--   >>> 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. -- -- Examples: -- -- This example will fail because it does not conform to the Hex -- alphabet. -- --
--   >>> isValidBase16 "666f+/6"
--   False
--   
-- -- This example will succeed because it satisfies the alphabet and is -- considered "valid" (i.e. of the correct size and shape), but is not -- correct base16 because it is the wrong shape. -- --
--   >>> isValidBase16 "666f6"
--   True
--   
isValidBase16 :: ByteString -> Bool -- | This module contains the error types raised (not as exceptions!) 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.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) -- | This module contains the combinators implementing the RFC 4648 -- specification for the Base16 encoding including unpadded and lenient -- variants for text values module Data.Text.Encoding.Base16 -- | Encode a Text value in Base16 with padding. -- -- See: RFC-4648 section 8 encodeBase16 :: Text -> Text -- | Decode a Base16-encoded lazy Text value. -- -- See: RFC-4648 section 8 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 -- -- Example: -- --
--   decodeBase16With decodeUtf8'
--     :: Text -> Either (Base16Error UnicodeException) Text
--   
decodeBase16With :: (ByteString -> Either err Text) -> Text -> Either (Base16Error err) Text -- | 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. decodeBase16Lenient :: Text -> Text -- | Tell whether a Text value is Base16-encoded. -- -- Examples: -- -- This example will fail. It conforms to the alphabet, but is not valid -- because it has an incorrect (odd) length. -- --
--   >>> isBase16 "666f6"
--   False
--   
-- -- This example will succeed because it satisfies the alphabet and is -- considered "valid" (i.e. of the correct size and shape). -- --
--   >>> 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. -- -- Examples: -- -- This example will fail because it does not conform to the Hex -- alphabet. -- --
--   >>> isValidBase16 "666f+/6"
--   False
--   
-- -- This example will succeed because it satisfies the alphabet and is -- considered "valid" (i.e. of the correct size and shape), but is not -- correct base16 because it is the wrong shape. -- --
--   >>> isValidBase16 "666f6"
--   True
--   
isValidBase16 :: Text -> Bool -- | This module contains the combinators implementing the RFC 4648 -- specification for the Base16 encoding including unpadded and lenient -- variants for lazy textual values module Data.Text.Lazy.Encoding.Base16 -- | Encode a lazy Text value in Base16 with padding. -- -- See: RFC-4648 section 8 encodeBase16 :: Text -> Text -- | Decode a Base16-encoded lazy Text value. -- -- See: RFC-4648 section 8 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 -- -- Example: -- --
--   decodeBase16With decodeUtf8'
--     :: Text -> Either (Base16Error UnicodeException) Text
--   
decodeBase16With :: (ByteString -> Either err Text) -> Text -> 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 :: Text -> Text -- | Tell whether a lazy Text value is Base16-encoded. -- -- Examples: -- -- This example will fail. It conforms to the alphabet, but is not valid -- because it has an incorrect (odd) length. -- --
--   >>> isBase16 "666f6"
--   False
--   
-- -- This example will succeed because it satisfies the alphabet and is -- considered "valid" (i.e. of the correct size and shape). -- --
--   >>> 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. -- -- Examples: -- -- This example will fail because it does not conform to the Hex -- alphabet. -- --
--   >>> isValidBase16 "666f+/6"
--   False
--   
-- -- This example will succeed because it satisfies the alphabet and is -- considered "valid" (i.e. of the correct size and shape), but is not -- correct base16 because it is the wrong shape. -- --
--   >>> isValidBase16 "666f6"
--   True
--   
isValidBase16 :: Text -> Bool