{-# LANGUAGE DeriveAnyClass #-}

module Hercules.Agent.WorkerProtocol.Command.BuildResult where

import Data.Binary
import Data.UUID (UUID)
import Protolude

data BuildResult = BuildResult Text UUID BuildStatus
  deriving (forall x. Rep BuildResult x -> BuildResult
forall x. BuildResult -> Rep BuildResult x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep BuildResult x -> BuildResult
$cfrom :: forall x. BuildResult -> Rep BuildResult x
Generic, Get BuildResult
[BuildResult] -> Put
BuildResult -> Put
forall t. (t -> Put) -> Get t -> ([t] -> Put) -> Binary t
putList :: [BuildResult] -> Put
$cputList :: [BuildResult] -> Put
get :: Get BuildResult
$cget :: Get BuildResult
put :: BuildResult -> Put
$cput :: BuildResult -> Put
Binary, Int -> BuildResult -> ShowS
[BuildResult] -> ShowS
BuildResult -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [BuildResult] -> ShowS
$cshowList :: [BuildResult] -> ShowS
show :: BuildResult -> String
$cshow :: BuildResult -> String
showsPrec :: Int -> BuildResult -> ShowS
$cshowsPrec :: Int -> BuildResult -> ShowS
Show, BuildResult -> BuildResult -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: BuildResult -> BuildResult -> Bool
$c/= :: BuildResult -> BuildResult -> Bool
== :: BuildResult -> BuildResult -> Bool
$c== :: BuildResult -> BuildResult -> Bool
Eq, BuildResult -> ()
forall a. (a -> ()) -> NFData a
rnf :: BuildResult -> ()
$crnf :: BuildResult -> ()
NFData)

-- | Subset of @DerivationStatus@, with a @Binary@ instance.
data BuildStatus
  = Success
  | Failure
  | DependencyFailure
  deriving (forall x. Rep BuildStatus x -> BuildStatus
forall x. BuildStatus -> Rep BuildStatus x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep BuildStatus x -> BuildStatus
$cfrom :: forall x. BuildStatus -> Rep BuildStatus x
Generic, Get BuildStatus
[BuildStatus] -> Put
BuildStatus -> Put
forall t. (t -> Put) -> Get t -> ([t] -> Put) -> Binary t
putList :: [BuildStatus] -> Put
$cputList :: [BuildStatus] -> Put
get :: Get BuildStatus
$cget :: Get BuildStatus
put :: BuildStatus -> Put
$cput :: BuildStatus -> Put
Binary, Int -> BuildStatus -> ShowS
[BuildStatus] -> ShowS
BuildStatus -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [BuildStatus] -> ShowS
$cshowList :: [BuildStatus] -> ShowS
show :: BuildStatus -> String
$cshow :: BuildStatus -> String
showsPrec :: Int -> BuildStatus -> ShowS
$cshowsPrec :: Int -> BuildStatus -> ShowS
Show, BuildStatus -> BuildStatus -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: BuildStatus -> BuildStatus -> Bool
$c/= :: BuildStatus -> BuildStatus -> Bool
== :: BuildStatus -> BuildStatus -> Bool
$c== :: BuildStatus -> BuildStatus -> Bool
Eq, BuildStatus -> ()
forall a. (a -> ()) -> NFData a
rnf :: BuildStatus -> ()
$crnf :: BuildStatus -> ()
NFData)