packages feed

natskell-0.0.0.1: internal/Types/Err.hs

module Types.Err
  ( Reason
  , Err (..)
  , isFatal
  ) where

import           Data.ByteString (ByteString)

type Reason = ByteString

data Err = ErrUnknownOp Reason
         | ErrRoutePortConn Reason
         | ErrAuthViolation Reason
         | ErrAuthTimeout Reason
         | ErrInvalidProtocol Reason
         | ErrMaxControlLineEx Reason
         | ErrErr Reason
         | ErrTlsRequired Reason
         | ErrStaleConn Reason
         | ErrMaxConnsEx Reason
         | ErrSlowConsumer Reason
         | ErrMaxPayload Reason
         | ErrInvalidSubject Reason
         | ErrPermViolation Reason
  deriving (Eq, Show)

isFatal :: Err -> Bool
isFatal (ErrInvalidSubject _) = False
isFatal (ErrPermViolation _)  = False
isFatal _                     = True