{-# LANGUAGE DataKinds #-}
{-# LANGUAGE InstanceSigs #-}
{-# LANGUAGE LambdaCase #-}

module Cardano.CLI.Type.Error.NodeCmdError
  ( NodeCmdError (..)
  , renderNodeCmdError
  )
where

import Cardano.Api

newtype NodeCmdError
  = NodeCmdReadFileError (FileError TextEnvelopeError)
  deriving Int -> NodeCmdError -> ShowS
[NodeCmdError] -> ShowS
NodeCmdError -> String
(Int -> NodeCmdError -> ShowS)
-> (NodeCmdError -> String)
-> ([NodeCmdError] -> ShowS)
-> Show NodeCmdError
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> NodeCmdError -> ShowS
showsPrec :: Int -> NodeCmdError -> ShowS
$cshow :: NodeCmdError -> String
show :: NodeCmdError -> String
$cshowList :: [NodeCmdError] -> ShowS
showList :: [NodeCmdError] -> ShowS
Show

instance Error NodeCmdError where
  prettyError :: NodeCmdError -> Doc ann
  prettyError :: forall ann. NodeCmdError -> Doc ann
prettyError = NodeCmdError -> Doc ann
forall ann. NodeCmdError -> Doc ann
renderNodeCmdError

renderNodeCmdError :: NodeCmdError -> Doc ann
renderNodeCmdError :: forall ann. NodeCmdError -> Doc ann
renderNodeCmdError = \case
  NodeCmdReadFileError FileError TextEnvelopeError
fileErr ->
    FileError TextEnvelopeError -> Doc ann
forall e ann. Error e => e -> Doc ann
forall ann. FileError TextEnvelopeError -> Doc ann
prettyError FileError TextEnvelopeError
fileErr