-- This Source Code Form is subject to the terms of the Mozilla Public -- License, v. 2.0. If a copy of the MPL was not distributed with this -- file, You can obtain one at http://mozilla.org/MPL/2.0/. {-# LANGUAGE OverloadedStrings #-} module Network.Wai.Routing.Parser.Shared where import Control.Applicative import Data.Attoparsec.Char8 import Data.ByteString (ByteString) import qualified Data.ByteString.Char8 as C spaces :: Parser () spaces = skipWhile (== ' ') trim :: Parser a -> Parser a trim p = spaces *> p <* spaces oneof :: ByteString -> Char -> Bool oneof s c = C.any (== c) s