{-# LANGUAGE DeriveGeneric #-}

module Ouroboros.Network.PeerSelection.PeerTrustable (PeerTrustable (..)) where

import GHC.Generics (Generic)

-- | Is this Peer trustable as a bootstrap peer?
--
-- This trustability flag is used on local root peers (pre-genesis) to
-- distinguish which locally configured peer is considered safe to trust for
-- bootstrap purposes
--
data PeerTrustable = IsTrustable
                   | IsNotTrustable
  deriving (PeerTrustable -> PeerTrustable -> Bool
(PeerTrustable -> PeerTrustable -> Bool)
-> (PeerTrustable -> PeerTrustable -> Bool) -> Eq PeerTrustable
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PeerTrustable -> PeerTrustable -> Bool
== :: PeerTrustable -> PeerTrustable -> Bool
$c/= :: PeerTrustable -> PeerTrustable -> Bool
/= :: PeerTrustable -> PeerTrustable -> Bool
Eq, Int -> PeerTrustable -> ShowS
[PeerTrustable] -> ShowS
PeerTrustable -> String
(Int -> PeerTrustable -> ShowS)
-> (PeerTrustable -> String)
-> ([PeerTrustable] -> ShowS)
-> Show PeerTrustable
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> PeerTrustable -> ShowS
showsPrec :: Int -> PeerTrustable -> ShowS
$cshow :: PeerTrustable -> String
show :: PeerTrustable -> String
$cshowList :: [PeerTrustable] -> ShowS
showList :: [PeerTrustable] -> ShowS
Show, Eq PeerTrustable
Eq PeerTrustable =>
(PeerTrustable -> PeerTrustable -> Ordering)
-> (PeerTrustable -> PeerTrustable -> Bool)
-> (PeerTrustable -> PeerTrustable -> Bool)
-> (PeerTrustable -> PeerTrustable -> Bool)
-> (PeerTrustable -> PeerTrustable -> Bool)
-> (PeerTrustable -> PeerTrustable -> PeerTrustable)
-> (PeerTrustable -> PeerTrustable -> PeerTrustable)
-> Ord PeerTrustable
PeerTrustable -> PeerTrustable -> Bool
PeerTrustable -> PeerTrustable -> Ordering
PeerTrustable -> PeerTrustable -> PeerTrustable
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: PeerTrustable -> PeerTrustable -> Ordering
compare :: PeerTrustable -> PeerTrustable -> Ordering
$c< :: PeerTrustable -> PeerTrustable -> Bool
< :: PeerTrustable -> PeerTrustable -> Bool
$c<= :: PeerTrustable -> PeerTrustable -> Bool
<= :: PeerTrustable -> PeerTrustable -> Bool
$c> :: PeerTrustable -> PeerTrustable -> Bool
> :: PeerTrustable -> PeerTrustable -> Bool
$c>= :: PeerTrustable -> PeerTrustable -> Bool
>= :: PeerTrustable -> PeerTrustable -> Bool
$cmax :: PeerTrustable -> PeerTrustable -> PeerTrustable
max :: PeerTrustable -> PeerTrustable -> PeerTrustable
$cmin :: PeerTrustable -> PeerTrustable -> PeerTrustable
min :: PeerTrustable -> PeerTrustable -> PeerTrustable
Ord, (forall x. PeerTrustable -> Rep PeerTrustable x)
-> (forall x. Rep PeerTrustable x -> PeerTrustable)
-> Generic PeerTrustable
forall x. Rep PeerTrustable x -> PeerTrustable
forall x. PeerTrustable -> Rep PeerTrustable x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. PeerTrustable -> Rep PeerTrustable x
from :: forall x. PeerTrustable -> Rep PeerTrustable x
$cto :: forall x. Rep PeerTrustable x -> PeerTrustable
to :: forall x. Rep PeerTrustable x -> PeerTrustable
Generic)