attoparsec-base64-0.0.0: src/Data/Attoparsec/Text/Base64.hs
{-# LANGUAGE OverloadedStrings #-}
module Data.Attoparsec.Text.Base64 where
import qualified Data.Attoparsec.Text as Atto
import Data.Text (Text)
import Data.Char (isAlphaNum)
import Data.Monoid ((<>))
base64 :: Atto.Parser Text
base64 = do
init <- Atto.takeWhile1 (\c -> isAlphaNum c || c == '+' || c == '/') Atto.<?> "content"
padding <- Atto.takeWhile (== '=') Atto.<?> "padding"
pure (init <> padding)