Data.ByteString.Base64.URL

base64-bytestring-1.0.0.0: Fast base64 encoding and deconding for ByteStrings

Copyright | (c) 2012 Deian Stefan
License | BSD-style
Maintainer | deian@cs.stanford.edu
Stability | experimental
Portability | GHC
Safe Haskell | Trustworthy
Language | Haskell98

Data.ByteString.Base64.URL

Description

Fast and efficient encoding and decoding of base64url-encoded strings.

Synopsis

- encode :: ByteString -> ByteString
- decode :: ByteString -> Either String ByteString
- decodeLenient :: ByteString -> ByteString
- joinWith :: ByteString -> Int -> ByteString -> ByteString

# Documentation

encode :: ByteString -> ByteString #

Encode a string into base64url form. The result will always be a multiple of 4 bytes in length.

decode :: ByteString -> Either String ByteString #

Decode a base64url-encoded string. This function strictly follows the specification in RFC 4648, http://www.apps.ietf.org/rfc/rfc4648.html.

decodeLenient :: ByteString -> ByteString #

Decode a base64url-encoded string. This function is lenient in following the specification from RFC 4648, http://www.apps.ietf.org/rfc/rfc4648.html, and will not generate parse errors no matter how poor its input.

joinWith #

Arguments

:: ByteString | String to intersperse and end with
-> Int | Interval at which to intersperse, in bytes
-> ByteString | String to transform
-> ByteString |

Efficiently intersperse a terminator string into another at regular intervals, and terminate the input with it.

Examples:

    joinWith "|" 2 "----" = "--|--|"

    joinWith "\r\n" 3 "foobarbaz" = "foo\r\nbar\r\nbaz\r\n"
    joinWith "x" 3 "fo" = "fox"