module PercentEncoding.Charsets where

import Data.CharSet
import Platform.Prelude hiding (fromList)

-- | Characters which don't need to be percent-encoded in URLs.
{-# NOINLINE passthrough #-}
passthrough :: CharSet
passthrough :: CharSet
passthrough =
  [CharSet] -> CharSet
forall a. Monoid a => [a] -> a
mconcat
    [ CharSet
lowerAsciiAlpha,
      CharSet
upperAsciiAlpha,
      CharSet
digit,
      String -> CharSet
fromList [Char
'-', Char
'.', Char
'_', Char
'~']
    ]

lowerAsciiAlpha :: CharSet
lowerAsciiAlpha :: CharSet
lowerAsciiAlpha = String -> CharSet
fromDistinctAscList [Char
'a' .. Char
'z']

upperAsciiAlpha :: CharSet
upperAsciiAlpha :: CharSet
upperAsciiAlpha = String -> CharSet
fromDistinctAscList [Char
'A' .. Char
'Z']

digit :: CharSet
digit :: CharSet
digit = String -> CharSet
fromDistinctAscList [Char
'0' .. Char
'9']