cabal-install-3.6.0.0: src/Distribution/Client/Types/InstallMethod.hs
{-# LANGUAGE DeriveGeneric #-}
module Distribution.Client.Types.InstallMethod where
import Distribution.Client.Compat.Prelude
import Prelude ()
import qualified Distribution.Compat.CharParsing as P
import qualified Text.PrettyPrint as PP
data InstallMethod
= InstallMethodCopy
| InstallMethodSymlink
deriving (Eq, Show, Generic, Bounded, Enum)
instance Binary InstallMethod
instance Structured InstallMethod
-- | Last
instance Semigroup InstallMethod where
_ <> x = x
instance Parsec InstallMethod where
parsec = do
name <- P.munch1 isAlpha
case name of
"copy" -> pure InstallMethodCopy
"symlink" -> pure InstallMethodSymlink
_ -> P.unexpected $ "InstallMethod: " ++ name
instance Pretty InstallMethod where
pretty InstallMethodCopy = PP.text "copy"
pretty InstallMethodSymlink = PP.text "symlink"