{-# LANGUAGE DeriveGeneric #-} module Distribution.Client.Types.OverwritePolicy where import Distribution.Client.Compat.Prelude import Prelude () import qualified Distribution.Compat.CharParsing as P import qualified Text.PrettyPrint as PP data OverwritePolicy = NeverOverwrite | AlwaysOverwrite | PromptOverwrite deriving (Int -> OverwritePolicy -> ShowS [OverwritePolicy] -> ShowS OverwritePolicy -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [OverwritePolicy] -> ShowS $cshowList :: [OverwritePolicy] -> ShowS show :: OverwritePolicy -> String $cshow :: OverwritePolicy -> String showsPrec :: Int -> OverwritePolicy -> ShowS $cshowsPrec :: Int -> OverwritePolicy -> ShowS Show, OverwritePolicy -> OverwritePolicy -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: OverwritePolicy -> OverwritePolicy -> Bool $c/= :: OverwritePolicy -> OverwritePolicy -> Bool == :: OverwritePolicy -> OverwritePolicy -> Bool $c== :: OverwritePolicy -> OverwritePolicy -> Bool Eq, forall x. Rep OverwritePolicy x -> OverwritePolicy forall x. OverwritePolicy -> Rep OverwritePolicy x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep OverwritePolicy x -> OverwritePolicy $cfrom :: forall x. OverwritePolicy -> Rep OverwritePolicy x Generic, OverwritePolicy forall a. a -> a -> Bounded a maxBound :: OverwritePolicy $cmaxBound :: OverwritePolicy minBound :: OverwritePolicy $cminBound :: OverwritePolicy Bounded, Int -> OverwritePolicy OverwritePolicy -> Int OverwritePolicy -> [OverwritePolicy] OverwritePolicy -> OverwritePolicy OverwritePolicy -> OverwritePolicy -> [OverwritePolicy] OverwritePolicy -> OverwritePolicy -> OverwritePolicy -> [OverwritePolicy] forall a. (a -> a) -> (a -> a) -> (Int -> a) -> (a -> Int) -> (a -> [a]) -> (a -> a -> [a]) -> (a -> a -> [a]) -> (a -> a -> a -> [a]) -> Enum a enumFromThenTo :: OverwritePolicy -> OverwritePolicy -> OverwritePolicy -> [OverwritePolicy] $cenumFromThenTo :: OverwritePolicy -> OverwritePolicy -> OverwritePolicy -> [OverwritePolicy] enumFromTo :: OverwritePolicy -> OverwritePolicy -> [OverwritePolicy] $cenumFromTo :: OverwritePolicy -> OverwritePolicy -> [OverwritePolicy] enumFromThen :: OverwritePolicy -> OverwritePolicy -> [OverwritePolicy] $cenumFromThen :: OverwritePolicy -> OverwritePolicy -> [OverwritePolicy] enumFrom :: OverwritePolicy -> [OverwritePolicy] $cenumFrom :: OverwritePolicy -> [OverwritePolicy] fromEnum :: OverwritePolicy -> Int $cfromEnum :: OverwritePolicy -> Int toEnum :: Int -> OverwritePolicy $ctoEnum :: Int -> OverwritePolicy pred :: OverwritePolicy -> OverwritePolicy $cpred :: OverwritePolicy -> OverwritePolicy succ :: OverwritePolicy -> OverwritePolicy $csucc :: OverwritePolicy -> OverwritePolicy Enum) instance Binary OverwritePolicy instance Structured OverwritePolicy instance Parsec OverwritePolicy where parsec :: forall (m :: * -> *). CabalParsing m => m OverwritePolicy parsec = do String name <- forall (m :: * -> *). CharParsing m => (Char -> Bool) -> m String P.munch1 Char -> Bool isAlpha case String name of String "always" -> forall (f :: * -> *) a. Applicative f => a -> f a pure OverwritePolicy AlwaysOverwrite String "never" -> forall (f :: * -> *) a. Applicative f => a -> f a pure OverwritePolicy NeverOverwrite String "prompt" -> forall (f :: * -> *) a. Applicative f => a -> f a pure OverwritePolicy PromptOverwrite String _ -> forall (m :: * -> *) a. Parsing m => String -> m a P.unexpected forall a b. (a -> b) -> a -> b $ String "OverwritePolicy: " forall a. [a] -> [a] -> [a] ++ String name instance Pretty OverwritePolicy where pretty :: OverwritePolicy -> Doc pretty OverwritePolicy NeverOverwrite = String -> Doc PP.text String "never" pretty OverwritePolicy AlwaysOverwrite = String -> Doc PP.text String "always" pretty OverwritePolicy PromptOverwrite = String -> Doc PP.text String "prompt"