{-# LANGUAGE DeriveGeneric         #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE ScopedTypeVariables   #-}

module HaskellWorks.CabalCache.Error
  ( DecodeError(DecodeError),
    ExitFailure(ExitFailure),
    CopyFailed(CopyFailed),
    InvalidUrl(InvalidUrl),
    NotFound(NotFound),
    NotImplemented(NotImplemented),
    UnsupportedUri(UnsupportedUri),
  ) where

import HaskellWorks.Prelude
import Network.URI  (URI)

data DecodeError = DecodeError Text deriving (DecodeError -> DecodeError -> Bool
(DecodeError -> DecodeError -> Bool)
-> (DecodeError -> DecodeError -> Bool) -> Eq DecodeError
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DecodeError -> DecodeError -> Bool
== :: DecodeError -> DecodeError -> Bool
$c/= :: DecodeError -> DecodeError -> Bool
/= :: DecodeError -> DecodeError -> Bool
Eq, Int -> DecodeError -> ShowS
[DecodeError] -> ShowS
DecodeError -> String
(Int -> DecodeError -> ShowS)
-> (DecodeError -> String)
-> ([DecodeError] -> ShowS)
-> Show DecodeError
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> DecodeError -> ShowS
showsPrec :: Int -> DecodeError -> ShowS
$cshow :: DecodeError -> String
show :: DecodeError -> String
$cshowList :: [DecodeError] -> ShowS
showList :: [DecodeError] -> ShowS
Show, (forall x. DecodeError -> Rep DecodeError x)
-> (forall x. Rep DecodeError x -> DecodeError)
-> Generic DecodeError
forall x. Rep DecodeError x -> DecodeError
forall x. DecodeError -> Rep DecodeError x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. DecodeError -> Rep DecodeError x
from :: forall x. DecodeError -> Rep DecodeError x
$cto :: forall x. Rep DecodeError x -> DecodeError
to :: forall x. Rep DecodeError x -> DecodeError
Generic)

data ExitFailure = ExitFailure deriving (ExitFailure -> ExitFailure -> Bool
(ExitFailure -> ExitFailure -> Bool)
-> (ExitFailure -> ExitFailure -> Bool) -> Eq ExitFailure
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ExitFailure -> ExitFailure -> Bool
== :: ExitFailure -> ExitFailure -> Bool
$c/= :: ExitFailure -> ExitFailure -> Bool
/= :: ExitFailure -> ExitFailure -> Bool
Eq, Int -> ExitFailure -> ShowS
[ExitFailure] -> ShowS
ExitFailure -> String
(Int -> ExitFailure -> ShowS)
-> (ExitFailure -> String)
-> ([ExitFailure] -> ShowS)
-> Show ExitFailure
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ExitFailure -> ShowS
showsPrec :: Int -> ExitFailure -> ShowS
$cshow :: ExitFailure -> String
show :: ExitFailure -> String
$cshowList :: [ExitFailure] -> ShowS
showList :: [ExitFailure] -> ShowS
Show, (forall x. ExitFailure -> Rep ExitFailure x)
-> (forall x. Rep ExitFailure x -> ExitFailure)
-> Generic ExitFailure
forall x. Rep ExitFailure x -> ExitFailure
forall x. ExitFailure -> Rep ExitFailure x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. ExitFailure -> Rep ExitFailure x
from :: forall x. ExitFailure -> Rep ExitFailure x
$cto :: forall x. Rep ExitFailure x -> ExitFailure
to :: forall x. Rep ExitFailure x -> ExitFailure
Generic)

data CopyFailed = CopyFailed deriving (CopyFailed -> CopyFailed -> Bool
(CopyFailed -> CopyFailed -> Bool)
-> (CopyFailed -> CopyFailed -> Bool) -> Eq CopyFailed
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CopyFailed -> CopyFailed -> Bool
== :: CopyFailed -> CopyFailed -> Bool
$c/= :: CopyFailed -> CopyFailed -> Bool
/= :: CopyFailed -> CopyFailed -> Bool
Eq, Int -> CopyFailed -> ShowS
[CopyFailed] -> ShowS
CopyFailed -> String
(Int -> CopyFailed -> ShowS)
-> (CopyFailed -> String)
-> ([CopyFailed] -> ShowS)
-> Show CopyFailed
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CopyFailed -> ShowS
showsPrec :: Int -> CopyFailed -> ShowS
$cshow :: CopyFailed -> String
show :: CopyFailed -> String
$cshowList :: [CopyFailed] -> ShowS
showList :: [CopyFailed] -> ShowS
Show, (forall x. CopyFailed -> Rep CopyFailed x)
-> (forall x. Rep CopyFailed x -> CopyFailed) -> Generic CopyFailed
forall x. Rep CopyFailed x -> CopyFailed
forall x. CopyFailed -> Rep CopyFailed x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. CopyFailed -> Rep CopyFailed x
from :: forall x. CopyFailed -> Rep CopyFailed x
$cto :: forall x. Rep CopyFailed x -> CopyFailed
to :: forall x. Rep CopyFailed x -> CopyFailed
Generic)

data InvalidUrl = InvalidUrl
  { InvalidUrl -> Text
url    :: Text
  , InvalidUrl -> Text
reason :: Text
  } deriving (InvalidUrl -> InvalidUrl -> Bool
(InvalidUrl -> InvalidUrl -> Bool)
-> (InvalidUrl -> InvalidUrl -> Bool) -> Eq InvalidUrl
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: InvalidUrl -> InvalidUrl -> Bool
== :: InvalidUrl -> InvalidUrl -> Bool
$c/= :: InvalidUrl -> InvalidUrl -> Bool
/= :: InvalidUrl -> InvalidUrl -> Bool
Eq, Int -> InvalidUrl -> ShowS
[InvalidUrl] -> ShowS
InvalidUrl -> String
(Int -> InvalidUrl -> ShowS)
-> (InvalidUrl -> String)
-> ([InvalidUrl] -> ShowS)
-> Show InvalidUrl
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> InvalidUrl -> ShowS
showsPrec :: Int -> InvalidUrl -> ShowS
$cshow :: InvalidUrl -> String
show :: InvalidUrl -> String
$cshowList :: [InvalidUrl] -> ShowS
showList :: [InvalidUrl] -> ShowS
Show, (forall x. InvalidUrl -> Rep InvalidUrl x)
-> (forall x. Rep InvalidUrl x -> InvalidUrl) -> Generic InvalidUrl
forall x. Rep InvalidUrl x -> InvalidUrl
forall x. InvalidUrl -> Rep InvalidUrl x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. InvalidUrl -> Rep InvalidUrl x
from :: forall x. InvalidUrl -> Rep InvalidUrl x
$cto :: forall x. Rep InvalidUrl x -> InvalidUrl
to :: forall x. Rep InvalidUrl x -> InvalidUrl
Generic)

data NotFound = NotFound deriving (NotFound -> NotFound -> Bool
(NotFound -> NotFound -> Bool)
-> (NotFound -> NotFound -> Bool) -> Eq NotFound
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: NotFound -> NotFound -> Bool
== :: NotFound -> NotFound -> Bool
$c/= :: NotFound -> NotFound -> Bool
/= :: NotFound -> NotFound -> Bool
Eq, Int -> NotFound -> ShowS
[NotFound] -> ShowS
NotFound -> String
(Int -> NotFound -> ShowS)
-> (NotFound -> String) -> ([NotFound] -> ShowS) -> Show NotFound
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> NotFound -> ShowS
showsPrec :: Int -> NotFound -> ShowS
$cshow :: NotFound -> String
show :: NotFound -> String
$cshowList :: [NotFound] -> ShowS
showList :: [NotFound] -> ShowS
Show, (forall x. NotFound -> Rep NotFound x)
-> (forall x. Rep NotFound x -> NotFound) -> Generic NotFound
forall x. Rep NotFound x -> NotFound
forall x. NotFound -> Rep NotFound x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. NotFound -> Rep NotFound x
from :: forall x. NotFound -> Rep NotFound x
$cto :: forall x. Rep NotFound x -> NotFound
to :: forall x. Rep NotFound x -> NotFound
Generic)

data NotImplemented = NotImplemented Text deriving (NotImplemented -> NotImplemented -> Bool
(NotImplemented -> NotImplemented -> Bool)
-> (NotImplemented -> NotImplemented -> Bool) -> Eq NotImplemented
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: NotImplemented -> NotImplemented -> Bool
== :: NotImplemented -> NotImplemented -> Bool
$c/= :: NotImplemented -> NotImplemented -> Bool
/= :: NotImplemented -> NotImplemented -> Bool
Eq, Int -> NotImplemented -> ShowS
[NotImplemented] -> ShowS
NotImplemented -> String
(Int -> NotImplemented -> ShowS)
-> (NotImplemented -> String)
-> ([NotImplemented] -> ShowS)
-> Show NotImplemented
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> NotImplemented -> ShowS
showsPrec :: Int -> NotImplemented -> ShowS
$cshow :: NotImplemented -> String
show :: NotImplemented -> String
$cshowList :: [NotImplemented] -> ShowS
showList :: [NotImplemented] -> ShowS
Show, (forall x. NotImplemented -> Rep NotImplemented x)
-> (forall x. Rep NotImplemented x -> NotImplemented)
-> Generic NotImplemented
forall x. Rep NotImplemented x -> NotImplemented
forall x. NotImplemented -> Rep NotImplemented x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. NotImplemented -> Rep NotImplemented x
from :: forall x. NotImplemented -> Rep NotImplemented x
$cto :: forall x. Rep NotImplemented x -> NotImplemented
to :: forall x. Rep NotImplemented x -> NotImplemented
Generic)

data UnsupportedUri = UnsupportedUri
  { UnsupportedUri -> URI
uri    :: URI
  , UnsupportedUri -> Text
reason :: Text
  } deriving (UnsupportedUri -> UnsupportedUri -> Bool
(UnsupportedUri -> UnsupportedUri -> Bool)
-> (UnsupportedUri -> UnsupportedUri -> Bool) -> Eq UnsupportedUri
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: UnsupportedUri -> UnsupportedUri -> Bool
== :: UnsupportedUri -> UnsupportedUri -> Bool
$c/= :: UnsupportedUri -> UnsupportedUri -> Bool
/= :: UnsupportedUri -> UnsupportedUri -> Bool
Eq, Int -> UnsupportedUri -> ShowS
[UnsupportedUri] -> ShowS
UnsupportedUri -> String
(Int -> UnsupportedUri -> ShowS)
-> (UnsupportedUri -> String)
-> ([UnsupportedUri] -> ShowS)
-> Show UnsupportedUri
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> UnsupportedUri -> ShowS
showsPrec :: Int -> UnsupportedUri -> ShowS
$cshow :: UnsupportedUri -> String
show :: UnsupportedUri -> String
$cshowList :: [UnsupportedUri] -> ShowS
showList :: [UnsupportedUri] -> ShowS
Show, (forall x. UnsupportedUri -> Rep UnsupportedUri x)
-> (forall x. Rep UnsupportedUri x -> UnsupportedUri)
-> Generic UnsupportedUri
forall x. Rep UnsupportedUri x -> UnsupportedUri
forall x. UnsupportedUri -> Rep UnsupportedUri x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. UnsupportedUri -> Rep UnsupportedUri x
from :: forall x. UnsupportedUri -> Rep UnsupportedUri x
$cto :: forall x. Rep UnsupportedUri x -> UnsupportedUri
to :: forall x. Rep UnsupportedUri x -> UnsupportedUri
Generic)