{-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE PolyKinds #-} {-# LANGUAGE TypeOperators #-} module Servant.MatrixParam ( WithMatrixParams, MatrixParam, ) where import Data.Typeable (Typeable) import GHC.TypeLits (Symbol) data WithMatrixParams (path :: Symbol) (paramSpecs :: [*]) deriving (Typeable) -- | Expresses matrix parameters for path segments in APIs, e.g. -- -- @/books;author=@ -- -- would be represented as: -- -- >>> import Servant -- >>> -- >>> type MyApi = "books" :> MatrixParam "author" String :> Get '[JSON] [String] data MatrixParam (key :: Symbol) a deriving (Typeable)