http-media-0.8.1.1: Processing HTTP Content-Type and Accept headers

Safe Haskell | Safe-Inferred
Language | Haskell2010

Network.HTTP.Media.Accept

Description

Defines the `Accept` type class, designed to unify types on the matching functions in the Media module.

Synopsis

- class Show a => Accept a where
  - parseAccept :: ByteString -> Maybe a
  - matches :: a -> a -> Bool
  - moreSpecificThan :: a -> a -> Bool
  - hasExtensionParameters :: Proxy a -> Bool

# Documentation

class Show a => Accept a where Source #

Defines methods for a type whose values can be matched against each other in terms of an HTTP Accept-* header.

This allows functions to work on both the standard Accept header and others such as Accept-Language that still may use quality values.

Minimal complete definition

parseAccept, matches, moreSpecificThan

Methods

parseAccept :: ByteString -> Maybe a Source #

Specifies how to parse an Accept-* header after quality has been handled.

matches :: a -> a -> Bool Source #

Evaluates whether either the left argument matches the right one.

This relation must be a total order, where more specific terms on the left can produce a match, but a less specific term on the left can never produce a match. For instance, when matching against media types it is important that if the client asks for a general type then we can choose a more specific offering from the server, but if a client asks for a specific type and the server only offers a more general form, then we cannot generalise. In this case, the server types will be the left argument, and the client types the right.

For types with no concept of specificity, this operation is just equality.

moreSpecificThan :: a -> a -> Bool Source #

Evaluates whether the left argument is more specific than the right.

This relation must be irreflexive and transitive. For types with no concept of specificity, this is the empty relation (always false).

hasExtensionParameters :: Proxy a -> Bool Source #

Indicates whether extension parameters are permitted after the weight parameter when this type appears in an Accept header. Defaults to false.

#### Instances

Instances details

Accept ByteString Source # |
Instance details Defined in Network.HTTP.Media.Accept Methods parseAccept :: ByteString -> Maybe ByteString Source # matches :: ByteString -> ByteString -> Bool Source # moreSpecificThan :: ByteString -> ByteString -> Bool Source # hasExtensionParameters :: Proxy ByteString -> Bool Source #
Accept Charset Source # |
Instance details Defined in Network.HTTP.Media.Charset.Internal Methods parseAccept :: ByteString -> Maybe Charset Source # matches :: Charset -> Charset -> Bool Source # moreSpecificThan :: Charset -> Charset -> Bool Source # hasExtensionParameters :: Proxy Charset -> Bool Source #
Accept Encoding Source # |
Instance details Defined in Network.HTTP.Media.Encoding.Internal Methods parseAccept :: ByteString -> Maybe Encoding Source # matches :: Encoding -> Encoding -> Bool Source # moreSpecificThan :: Encoding -> Encoding -> Bool Source # hasExtensionParameters :: Proxy Encoding -> Bool Source #
Accept Language Source # |
Instance details Defined in Network.HTTP.Media.Language.Internal Methods parseAccept :: ByteString -> Maybe Language Source # matches :: Language -> Language -> Bool Source # moreSpecificThan :: Language -> Language -> Bool Source # hasExtensionParameters :: Proxy Language -> Bool Source #
Accept MediaType Source # |
Instance details Defined in Network.HTTP.Media.MediaType.Internal Methods parseAccept :: ByteString -> Maybe MediaType Source # matches :: MediaType -> MediaType -> Bool Source # moreSpecificThan :: MediaType -> MediaType -> Bool Source # hasExtensionParameters :: Proxy MediaType -> Bool Source #