{-# LANGUAGE DeriveGeneric              #-}
{-# LANGUAGE DerivingStrategies         #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}

module Cardano.Network.LedgerStateJudgement (LedgerStateJudgement (..)) where

import GHC.Generics (Generic)
import NoThunks.Class (NoThunks)

-- | Wether the node is caught up or fell too far behind the chain
data LedgerStateJudgement = YoungEnough | TooOld
  deriving (LedgerStateJudgement -> LedgerStateJudgement -> Bool
(LedgerStateJudgement -> LedgerStateJudgement -> Bool)
-> (LedgerStateJudgement -> LedgerStateJudgement -> Bool)
-> Eq LedgerStateJudgement
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: LedgerStateJudgement -> LedgerStateJudgement -> Bool
== :: LedgerStateJudgement -> LedgerStateJudgement -> Bool
$c/= :: LedgerStateJudgement -> LedgerStateJudgement -> Bool
/= :: LedgerStateJudgement -> LedgerStateJudgement -> Bool
Eq, Int -> LedgerStateJudgement -> ShowS
[LedgerStateJudgement] -> ShowS
LedgerStateJudgement -> String
(Int -> LedgerStateJudgement -> ShowS)
-> (LedgerStateJudgement -> String)
-> ([LedgerStateJudgement] -> ShowS)
-> Show LedgerStateJudgement
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> LedgerStateJudgement -> ShowS
showsPrec :: Int -> LedgerStateJudgement -> ShowS
$cshow :: LedgerStateJudgement -> String
show :: LedgerStateJudgement -> String
$cshowList :: [LedgerStateJudgement] -> ShowS
showList :: [LedgerStateJudgement] -> ShowS
Show, (forall x. LedgerStateJudgement -> Rep LedgerStateJudgement x)
-> (forall x. Rep LedgerStateJudgement x -> LedgerStateJudgement)
-> Generic LedgerStateJudgement
forall x. Rep LedgerStateJudgement x -> LedgerStateJudgement
forall x. LedgerStateJudgement -> Rep LedgerStateJudgement x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. LedgerStateJudgement -> Rep LedgerStateJudgement x
from :: forall x. LedgerStateJudgement -> Rep LedgerStateJudgement x
$cto :: forall x. Rep LedgerStateJudgement x -> LedgerStateJudgement
to :: forall x. Rep LedgerStateJudgement x -> LedgerStateJudgement
Generic)

instance NoThunks LedgerStateJudgement