{-# LANGUAGE CPP #-}
module Base64
( encodeBase64
, decodeBase64
) where
import Data.ByteString (ByteString)
import Data.Either (Either)
import Data.Function ((.))
import Data.Text (Text)
import Data.Text.Encoding qualified as T
#if MIN_VERSION_base64(1,0,0)
import Data.Base64.Types qualified as I (extractBase64)
import Data.ByteString.Base64.URL qualified as I (decodeBase64Untyped, encodeBase64)
#else
import Data.ByteString.Base64.URL qualified as I (decodeBase64, encodeBase64)
#endif
encodeBase64 :: ByteString -> Text
decodeBase64 :: Text -> Either Text ByteString
#if MIN_VERSION_base64(1,0,0)
encodeBase64 = I.extractBase64 . I.encodeBase64
decodeBase64 = I.decodeBase64Untyped . T.encodeUtf8
#else
encodeBase64 = I.encodeBase64
decodeBase64 = I.decodeBase64 . T.encodeUtf8
#endif