{-# LANGUAGE LambdaCase #-}

module Cardano.CLI.Types.Errors.StakeAddressCmdError
  ( StakeAddressCmdError (..)
  )
where

import           Cardano.Api

import           Cardano.CLI.Types.Errors.DelegationError
import           Cardano.CLI.Types.Errors.ScriptDecodeError
import           Cardano.CLI.Types.Errors.StakeAddressRegistrationError
import           Cardano.CLI.Types.Errors.StakeCredentialError

data StakeAddressCmdError
  = StakeAddressCmdReadKeyFileError !(FileError InputDecodeError)
  | StakeAddressCmdReadScriptFileError !(FileError ScriptDecodeError)
  | StakeAddressCmdStakeCredentialError !StakeCredentialError
  | StakeAddressCmdWriteFileError !(FileError ())
  | StakeAddressCmdDelegationError !DelegationError
  | StakeAddressCmdRegistrationError !StakeAddressRegistrationError
  deriving Int -> StakeAddressCmdError -> ShowS
[StakeAddressCmdError] -> ShowS
StakeAddressCmdError -> String
(Int -> StakeAddressCmdError -> ShowS)
-> (StakeAddressCmdError -> String)
-> ([StakeAddressCmdError] -> ShowS)
-> Show StakeAddressCmdError
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> StakeAddressCmdError -> ShowS
showsPrec :: Int -> StakeAddressCmdError -> ShowS
$cshow :: StakeAddressCmdError -> String
show :: StakeAddressCmdError -> String
$cshowList :: [StakeAddressCmdError] -> ShowS
showList :: [StakeAddressCmdError] -> ShowS
Show

instance Error StakeAddressCmdError where
  prettyError :: forall ann. StakeAddressCmdError -> Doc ann
prettyError = \case
    StakeAddressCmdReadKeyFileError FileError InputDecodeError
e -> FileError InputDecodeError -> Doc ann
forall e ann. Error e => e -> Doc ann
forall ann. FileError InputDecodeError -> Doc ann
prettyError FileError InputDecodeError
e
    StakeAddressCmdReadScriptFileError FileError ScriptDecodeError
e -> FileError ScriptDecodeError -> Doc ann
forall e ann. Error e => e -> Doc ann
forall ann. FileError ScriptDecodeError -> Doc ann
prettyError FileError ScriptDecodeError
e
    StakeAddressCmdStakeCredentialError StakeCredentialError
e -> StakeCredentialError -> Doc ann
forall e ann. Error e => e -> Doc ann
forall ann. StakeCredentialError -> Doc ann
prettyError StakeCredentialError
e
    StakeAddressCmdWriteFileError FileError ()
e -> FileError () -> Doc ann
forall e ann. Error e => e -> Doc ann
forall ann. FileError () -> Doc ann
prettyError FileError ()
e
    StakeAddressCmdDelegationError DelegationError
e -> DelegationError -> Doc ann
forall e ann. Error e => e -> Doc ann
forall ann. DelegationError -> Doc ann
prettyError DelegationError
e
    StakeAddressCmdRegistrationError StakeAddressRegistrationError
e -> StakeAddressRegistrationError -> Doc ann
forall e ann. Error e => e -> Doc ann
forall ann. StakeAddressRegistrationError -> Doc ann
prettyError StakeAddressRegistrationError
e