{-# LANGUAGE CPP               #-}
#if defined(TAR)
{-# LANGUAGE DeriveGeneric     #-}
#endif

module GHCup.Utils.Tar.Types
  ( ArchiveResult(..)
  )
  where

#if defined(TAR)

import           Control.Exception              ( Exception )
import           Control.DeepSeq                ( NFData )
import qualified GHC.Generics                   as GHC

data ArchiveResult = ArchiveFatal
                   | ArchiveFailed
                   | ArchiveWarn
                   | ArchiveRetry
                   | ArchiveOk
                   | ArchiveEOF
  deriving (ArchiveResult -> ArchiveResult -> Bool
(ArchiveResult -> ArchiveResult -> Bool)
-> (ArchiveResult -> ArchiveResult -> Bool) -> Eq ArchiveResult
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ArchiveResult -> ArchiveResult -> Bool
== :: ArchiveResult -> ArchiveResult -> Bool
$c/= :: ArchiveResult -> ArchiveResult -> Bool
/= :: ArchiveResult -> ArchiveResult -> Bool
Eq, Int -> ArchiveResult -> ShowS
[ArchiveResult] -> ShowS
ArchiveResult -> String
(Int -> ArchiveResult -> ShowS)
-> (ArchiveResult -> String)
-> ([ArchiveResult] -> ShowS)
-> Show ArchiveResult
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ArchiveResult -> ShowS
showsPrec :: Int -> ArchiveResult -> ShowS
$cshow :: ArchiveResult -> String
show :: ArchiveResult -> String
$cshowList :: [ArchiveResult] -> ShowS
showList :: [ArchiveResult] -> ShowS
Show, (forall x. ArchiveResult -> Rep ArchiveResult x)
-> (forall x. Rep ArchiveResult x -> ArchiveResult)
-> Generic ArchiveResult
forall x. Rep ArchiveResult x -> ArchiveResult
forall x. ArchiveResult -> Rep ArchiveResult x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. ArchiveResult -> Rep ArchiveResult x
from :: forall x. ArchiveResult -> Rep ArchiveResult x
$cto :: forall x. Rep ArchiveResult x -> ArchiveResult
to :: forall x. Rep ArchiveResult x -> ArchiveResult
GHC.Generic)

instance NFData ArchiveResult

instance Exception ArchiveResult

#else

import           Codec.Archive                  ( ArchiveResult(..) )

#endif