aws-0.0.1: Aws/S3/Error.hs
{-# LANGUAGE DeriveDataTypeable, MultiParamTypeClasses #-}
module Aws.S3.Error
where
import Aws.Metadata
import Aws.S3.Metadata
import Control.Monad.Error.Class
import Data.Typeable
import Text.XML.Monad
import qualified Control.Exception as C
data S3Error
= S3XmlError {
fromS3XmlError :: XmlError
, s3XmlErrorMetadata :: Maybe S3Metadata
}
deriving (Show, Typeable)
instance C.Exception S3Error
instance FromXmlError S3Error where
fromXmlError = flip S3XmlError Nothing
instance Error S3Error where
noMsg = fromXmlError noMsg
strMsg = fromXmlError . strMsg
instance WithMetadata S3Error S3Metadata where
getMetadata = s3XmlErrorMetadata
setMetadata m a = a { s3XmlErrorMetadata = Just m }