| Safe Haskell | None | 
|---|---|
| Language | Haskell2010 | 
Servant.API.ResponseHeaders
Description
This module provides facilities for adding headers to a response.
>>>let headerVal = addHeader "some-url" 5 :: Headers '[Header "Location" String] Int
The value is added to the header specified by the type (Location in the example above).
- data Headers ls a = Headers {- getResponse :: a
- getHeadersHList :: HList ls
 
- class AddHeader h v orig new | h v orig -> new, new -> h, new -> v, new -> orig where
- class BuildHeadersTo hs where
- class GetHeaders ls where
- type family HeaderValMap (f :: * -> *) (xs :: [*]) where ...
- data HList a where
Documentation
Response Header objects. You should never need to construct one directly. Instead, use addHeader.
Constructors
| Headers | |
| Fields 
 | |
Instances
| (KnownSymbol h, ToHttpApiData v) => AddHeader Symbol h v (Headers ((:) * fst rest) a) (Headers ((:) * (Header h v) ((:) * fst rest)) a) Source # | |
| Functor (Headers ls) Source # | |
| (KnownSymbol h, GetHeaders (HList rest), ToHttpApiData v) => GetHeaders (Headers ((:) * (Header h v) rest) a) Source # | |
| GetHeaders (Headers ([] *) a) Source # | |
class AddHeader h v orig new | h v orig -> new, new -> h, new -> v, new -> orig where Source #
Minimal complete definition
class BuildHeadersTo hs where Source #
Minimal complete definition
Methods
buildHeadersTo :: [Header] -> HList hs Source #
Note: if there are multiple occurences of a header in the argument, the values are interspersed with commas before deserialization (see RFC2616 Sec 4.2)
Instances
| BuildHeadersTo ([] *) Source # | |
| (FromHttpApiData v, BuildHeadersTo xs, KnownSymbol h) => BuildHeadersTo ((:) * (Header h v) xs) Source # | |
class GetHeaders ls where Source #
Minimal complete definition
Methods
getHeaders :: ls -> [Header] Source #
Instances
| (KnownSymbol h, ToHttpApiData x, GetHeaders (HList xs)) => GetHeaders (HList ((:) * (Header h x) xs)) Source # | |
| GetHeaders (HList ([] *)) Source # | |
| (KnownSymbol h, GetHeaders (HList rest), ToHttpApiData v) => GetHeaders (Headers ((:) * (Header h v) rest) a) Source # | |
| GetHeaders (Headers ([] *) a) Source # | |
type family HeaderValMap (f :: * -> *) (xs :: [*]) where ... Source #
Equations
| HeaderValMap f '[] = '[] | |
| HeaderValMap f (Header h x ': xs) = Header h (f x) ': HeaderValMap f xs | 
Instances
| (KnownSymbol h, ToHttpApiData x, GetHeaders (HList xs)) => GetHeaders (HList ((:) * (Header h x) xs)) Source # | |
| GetHeaders (HList ([] *)) Source # | |