@@ -284,6 +284,21 @@ parseBoundedTextData = parseMaybeTextData (flip lookup values . T.toLower)
285 values = map (showTextData &&& id) [minBound..maxBound]
285 values = map (showTextData &&& id) [minBound..maxBound]
287+parseBoundedUrlPiece :: (ToHttpApiData a, Bounded a, Enum a) => Text -> Either Text a
288+parseBoundedUrlPiece = parseMaybeTextData (flip lookup values . T.toLower)
290+ values = map (toUrlPiece &&& id) [minBound..maxBound]
292+parseBoundedQueryParam :: (ToHttpApiData a, Bounded a, Enum a) => Text -> Either Text a
293+parseBoundedQueryParam = parseMaybeTextData (flip lookup values . T.toLower)
295+ values = map (toQueryParam &&& id) [minBound..maxBound]
297+parseBoundedHeader :: (ToHttpApiData a, Bounded a, Enum a) => Text -> Either Text a
298+parseBoundedHeader = parseMaybeTextData (flip lookup values . T.toLower)
300+ values = map (decodeUtf8 . toHeader &&& id) [minBound..maxBound]
287-- | Parse URL piece using @'Read'@ instance.
302-- | Parse URL piece using @'Read'@ instance.
289-- Use for types which do not involve letters:
304-- Use for types which do not involve letters: