http-types-0.12.4: Generic HTTP types for Haskell (for both client and server code).

Safe Haskell | Safe-Inferred
Language | Haskell2010

Network.HTTP.Types.QueryLike

Description

Some type classes to make more general functions when handling query strings.

Synopsis

- class QueryLike a where
  - toQuery :: a -> Query
- class QueryKeyLike a where
  - toQueryKey :: a -> ByteString
- class QueryValueLike a where
  - toQueryValue :: a -> Maybe ByteString

# Documentation

class QueryLike a where #

Types which can, and commonly are, converted to `Query` are in this class.

You can use lists of simple key value pairs, with `ByteString` (strict, or lazy: `ByteString`), `Text`, or `String` as the key/value types. You can also have the value type lifted into a Maybe to support keys without values; and finally it is possible to put each pair into a Maybe for key-value pairs that aren't always present.

Since: 0.7.0

Methods

toQuery :: a -> Query #

Convert to `Query`.

#### Instances

Instances details

(QueryKeyLike k, QueryValueLike v) => QueryLike [Maybe (k, v)] # |
Instance details Defined in Network.HTTP.Types.QueryLike Methods toQuery :: [Maybe (k, v)] -> Query #
(QueryKeyLike k, QueryValueLike v) => QueryLike [(k, v)] # |
Instance details Defined in Network.HTTP.Types.QueryLike Methods toQuery :: [(k, v)] -> Query #

class QueryKeyLike a where #

Types which, in a Query-like key-value list, are used in the Key position.

Since: 0.7.0

Methods

toQueryKey :: a -> ByteString #

#### Instances

Instances details

QueryKeyLike ByteString # |
Instance details Defined in Network.HTTP.Types.QueryLike Methods toQueryKey :: ByteString -> ByteString #
QueryKeyLike ByteString # |
Instance details Defined in Network.HTTP.Types.QueryLike Methods toQueryKey :: ByteString -> ByteString #
QueryKeyLike Text # |
Instance details Defined in Network.HTTP.Types.QueryLike Methods toQueryKey :: Text -> ByteString #
QueryKeyLike [Char] # |
Instance details Defined in Network.HTTP.Types.QueryLike Methods toQueryKey :: [Char] -> ByteString #

class QueryValueLike a where #

Types which, in a Query-like key-value list, are used in the Value position.

Since: 0.7.0

Methods

toQueryValue :: a -> Maybe ByteString #

#### Instances

Instances details

QueryValueLike ByteString # |
Instance details Defined in Network.HTTP.Types.QueryLike Methods toQueryValue :: ByteString -> Maybe ByteString #
QueryValueLike ByteString # |
Instance details Defined in Network.HTTP.Types.QueryLike Methods toQueryValue :: ByteString -> Maybe ByteString #
QueryValueLike Text # |
Instance details Defined in Network.HTTP.Types.QueryLike Methods toQueryValue :: Text -> Maybe ByteString #
QueryValueLike a => QueryValueLike (Maybe a) # |
Instance details Defined in Network.HTTP.Types.QueryLike Methods toQueryValue :: Maybe a -> Maybe ByteString #
QueryValueLike [Char] # |
Instance details Defined in Network.HTTP.Types.QueryLike Methods toQueryValue :: [Char] -> Maybe ByteString #