module URLDecoders where import BasePrelude import qualified Data.ByteString as B import qualified Data.Text as C import qualified Data.HashMap.Strict as D import qualified BinaryParser as E import qualified URLDecoders.BinaryParser as F {-| Decodes the query part of a URL (the one following the question mark) or the content of type @application/x-www-form-urlencoded@. Produces a hash map of lists of values, interpreting the keys ending with @[]@ as arrays, as well as the repititive keys. -} {-# INLINE asciiQuery #-} asciiQuery :: B.ByteString -> Either C.Text (D.HashMap B.ByteString [B.ByteString]) asciiQuery = E.run F.asciiQuery {-| Decodes the query part of a URL (the one following the question mark) or the content of type @application/x-www-form-urlencoded@, immediately applying a UTF8-decoding to it. Produces a hash map of lists of values, interpreting the keys ending with @[]@ as arrays, as well as the repititive keys. -} {-# INLINE utf8Query #-} utf8Query :: B.ByteString -> Either C.Text (D.HashMap C.Text [C.Text]) utf8Query = E.run F.utf8Query