prefix BuildResult fields

This commit is contained in:
sorki 2023-12-04 18:57:07 +01:00
parent d3c9bc3bf1
commit fb1bcfdb61
4 changed files with 37 additions and 37 deletions

View File

@ -42,23 +42,23 @@ data BuildStatus =
-- | Result of the build
data BuildResult = BuildResult
{ -- | build status, MiscFailure should be default
status :: !BuildStatus
buildResultStatus :: !BuildStatus
, -- | possible build error message
errorMessage :: !(Maybe Text)
buildResultErrorMessage :: !(Maybe Text)
, -- | How many times this build was performed
timesBuilt :: !Int
buildResultTimesBuilt :: !Int
, -- | If timesBuilt > 1, whether some builds did not produce the same result
isNonDeterministic :: !Bool
buildResultIsNonDeterministic :: !Bool
, -- Start time of this build
startTime :: !UTCTime
buildResultStartTime :: !UTCTime
, -- Stop time of this build
stopTime :: !UTCTime
buildResultStopTime :: !UTCTime
}
deriving (Eq, Generic, Ord, Show)
buildSuccess :: BuildResult -> Bool
buildSuccess BuildResult {..} =
status `elem`
buildResultStatus `elem`
[ BuildStatus_Built
, BuildStatus_Substituted
, BuildStatus_AlreadyValid

View File

@ -41,25 +41,25 @@ instance Serialize BuildStatus where
instance Serialize BuildResult where
get = do
status <- get
errorMessage <-
buildResultStatus <- get
buildResultErrorMessage <-
(\em -> Data.Bool.bool (Just em) Nothing (Data.Text.null em))
<$> get
timesBuilt <- getInt
isNonDeterministic <- getBool
startTime <- getTime
stopTime <- getTime
buildResultTimesBuilt <- getInt
buildResultIsNonDeterministic <- getBool
buildResultStartTime <- getTime
buildResultStopTime <- getTime
pure $ BuildResult{..}
put BuildResult{..} = do
put status
case errorMessage of
put buildResultStatus
case buildResultErrorMessage of
Just err -> putText err
Nothing -> putText mempty
putInt timesBuilt
putBool isNonDeterministic
putTime startTime
putTime stopTime
putInt buildResultTimesBuilt
putBool buildResultIsNonDeterministic
putTime buildResultStartTime
putTime buildResultStopTime
-- * GCAction
--

View File

@ -704,21 +704,21 @@ buildMode = enum
buildResult :: NixSerializer r SError BuildResult
buildResult = Serializer
{ getS = do
status <- getS enum
errorMessage <- getS maybeText
timesBuilt <- getS int
isNonDeterministic <- getS bool
startTime <- getS time
stopTime <- getS time
buildResultStatus <- getS enum
buildResultErrorMessage <- getS maybeText
buildResultTimesBuilt <- getS int
buildResultIsNonDeterministic <- getS bool
buildResultStartTime <- getS time
buildResultStopTime <- getS time
pure $ BuildResult{..}
, putS = \BuildResult{..} -> do
putS enum status
putS maybeText errorMessage
putS int timesBuilt
putS bool isNonDeterministic
putS time startTime
putS time stopTime
putS enum buildResultStatus
putS maybeText buildResultErrorMessage
putS int buildResultTimesBuilt
putS bool buildResultIsNonDeterministic
putS time buildResultStartTime
putS time buildResultStopTime
}
-- * Logger

View File

@ -18,12 +18,12 @@ deriving via GenericArbitrary BuildStatus
instance Arbitrary BuildResult where
arbitrary = do
status <- arbitrary
buildResultStatus <- arbitrary
-- we encode empty errorMessage as Nothing
errorMessage <- arbitrary `suchThat` (/= Just mempty)
timesBuilt <- arbitrary
isNonDeterministic <- arbitrary
startTime <- arbitrary
stopTime <- arbitrary
buildResultErrorMessage <- arbitrary `suchThat` (/= Just mempty)
buildResultTimesBuilt <- arbitrary
buildResultIsNonDeterministic <- arbitrary
buildResultStartTime <- arbitrary
buildResultStopTime <- arbitrary
pure $ BuildResult{..}