@@ -1,9 +1,12 @@
11{-# LANGUAGE OverloadedStrings #-}
22{-# LANGUAGE RecordWildCards #-}
3+{-# LANGUAGE DeriveDataTypeable #-}
34module Servant.Server.Internal.ServantErr where
45
6+import Control.Exception (Exception)
57import qualified Data.ByteString.Char8 as BS
68import qualified Data.ByteString.Lazy as LBS
9+import Data.Typeable (Typeable)
710import qualified Network.HTTP.Types as HTTP
811import Network.Wai (Response, responseLBS)
912
@@ -11,7 +14,9 @@ data ServantErr = ServantErr { errHTTPCode :: Int
1114 , errReasonPhrase :: String
1215 , errBody :: LBS.ByteString
1316 , errHeaders :: [HTTP.Header]
14− } deriving (Show, Eq, Read)
17+ } deriving (Show, Eq, Read, Typeable)
18+
19+instance Exception ServantErr
1520
1621responseServantErr :: ServantErr -> Response
1722responseServantErr ServantErr{..} = responseLBS status errHeaders errBody