base64-lens-0.2.0: Optics for the Base64 library

Copyright(c) 2019 Emily Pillmore
LicenseBSD-style
MaintainerEmily Pillmore <emilypi@cohomolo.gy>
StabilityExperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

Data.ByteString.Base64.Lens

Contents

Description

This module contains Prism's for Base64-encoding and decoding ByteString values.

Synopsis

Prisms

_Base64 :: Prism' ByteString ByteString Source #

A Prism' into the Base64 encoding of a ByteString value

>>> _Base64 # "Sun"
"U3Vu"
>>> "U3Vu" ^? _Base64
Just "Sun"

_Base64Url :: Prism' ByteString ByteString Source #

A Prism' into the Base64url encoding of a ByteString value

>>> _Base64Url # "Sun"
"U3Vu"
>>> "PDw_Pz8-Pg==" ^? _Base64Url
Just "<<???>>"

_Base64UrlUnpadded :: Prism' ByteString ByteString Source #

A Prism' into the Base64url encoding of a ByteString value

Please note that unpadded variants should only be used when assumptions about the data can be made. In particular, if the length of the input is divisible by 3, then this is a safe function to call.

>>> _Base64UrlUnpadded # "<<??>>"
"PDw_Pz4-"
>>> "PDw_Pz4-" ^? _Base64UrlUnpadded
Just "<<??>>"

_Base64Lenient :: Iso' ByteString ByteString Source #

An Iso' into the Base64 encoding of a ByteString value using lenient decoding.

_Note:_ This is not a lawful Iso.

>>> "Sun" ^. _Base64Lenient
"U3Vu"
>>> "U3Vu" ^. from _Base64Lenient
"Sun"

_Base64UrlLenient :: Iso' ByteString ByteString Source #

An Iso' into the Base64url encoding of a ByteString value using lenient decoding.

_Note:_ This is not a lawful Iso.

>>> "<<??>>" ^. _Base64UrlLenient
"PDw_Pz4-"
>>> "PDw_Pz4-" ^. from _Base64UrlLenient
"<<??>>"

Patterns

pattern Base64 :: ByteString -> ByteString Source #

Bidirectional pattern synonym for base64-encoded ByteString values.

pattern Base64Url :: ByteString -> ByteString Source #

Bidirectional pattern synonym for base64url-encoded ByteString values.

pattern Base64UrlUnpadded :: ByteString -> ByteString Source #

Bidirectional pattern synonym for unpadded base64url-encoded ByteString values.

pattern Base64Lenient :: ByteString -> ByteString Source #

Bidirectional pattern synonym for leniently Base64-encoded ByteString values

pattern Base64UrlLenient :: ByteString -> ByteString Source #

Bidirectional pattern synonym for leniently Base64-encoded ByteString values