{-# LANGUAGE GADTs #-} {-# LANGUAGE LambdaCase #-} module Cardano.CLI.EraBased.Command ( AnyEraCommand (..) , Cmds (..) , renderAnyEraCommand , renderCmds ) where import Cardano.Api.Experimental qualified as Exp import Cardano.CLI.EraBased.Genesis.Command import Cardano.CLI.EraBased.Governance.Option (GovernanceCmds, renderGovernanceCmds) import Cardano.CLI.EraBased.Query.Command import Cardano.CLI.EraBased.StakeAddress.Command import Cardano.CLI.EraBased.StakePool.Command import Cardano.CLI.EraBased.TextView.Command import Cardano.CLI.EraBased.Transaction.Command import Cardano.CLI.EraBased.Transaction.SubTransaction.Command import Cardano.CLI.EraIndependent.Address.Command import Cardano.CLI.EraIndependent.Key.Command import Cardano.CLI.EraIndependent.Node.Command import Data.Text (Text) import Data.Typeable (Typeable) data AnyEraCommand where AnyEraCommandOf :: Typeable era => Exp.Era era -> Cmds era -> AnyEraCommand renderAnyEraCommand :: AnyEraCommand -> Text renderAnyEraCommand :: AnyEraCommand -> Text renderAnyEraCommand = \case AnyEraCommandOf Era era _ Cmds era cmd -> Cmds era -> Text forall era. Cmds era -> Text renderCmds Cmds era cmd data Cmds era = AddressCmds AddressCmds | KeyCmds KeyCmds | GenesisCmds (GenesisCmds era) | GovernanceCmds (GovernanceCmds era) | NodeCmds NodeCmds | QueryCmds (QueryCmds era) | StakeAddressCmds (StakeAddressCmds era) | StakePoolCmds (StakePoolCmds era) | SubTransactionCmds SubTransactionCmds | TextViewCmds (TextViewCmds era) | TransactionCmds (TransactionCmds era) renderCmds :: Cmds era -> Text renderCmds :: forall era. Cmds era -> Text renderCmds = \case AddressCmds AddressCmds cmd -> AddressCmds -> Text renderAddressCmds AddressCmds cmd KeyCmds KeyCmds cmd -> KeyCmds -> Text renderKeyCmds KeyCmds cmd GenesisCmds GenesisCmds era cmd -> GenesisCmds era -> Text forall era. GenesisCmds era -> Text renderGenesisCmds GenesisCmds era cmd GovernanceCmds GovernanceCmds era cmd -> GovernanceCmds era -> Text forall era. GovernanceCmds era -> Text renderGovernanceCmds GovernanceCmds era cmd NodeCmds NodeCmds cmd -> NodeCmds -> Text renderNodeCmds NodeCmds cmd QueryCmds QueryCmds era cmd -> QueryCmds era -> Text forall era. QueryCmds era -> Text renderQueryCmds QueryCmds era cmd StakeAddressCmds StakeAddressCmds era cmd -> StakeAddressCmds era -> Text forall era. StakeAddressCmds era -> Text renderStakeAddressCmds StakeAddressCmds era cmd StakePoolCmds StakePoolCmds era cmd -> StakePoolCmds era -> Text forall era. StakePoolCmds era -> Text renderStakePoolCmds StakePoolCmds era cmd SubTransactionCmds SubTransactionCmds cmd -> SubTransactionCmds -> Text renderSubTransactionCmds SubTransactionCmds cmd TextViewCmds TextViewCmds era cmd -> TextViewCmds era -> Text forall era. TextViewCmds era -> Text renderTextViewCmds TextViewCmds era cmd TransactionCmds TransactionCmds era cmd -> TransactionCmds era -> Text forall era. TransactionCmds era -> Text renderTransactionCmds TransactionCmds era cmd