summaryrefslogtreecommitdiff
path: root/src/Job
diff options
context:
space:
mode:
authorRoman Smrž <roman.smrz@seznam.cz>2025-06-29 22:20:10 +0200
committerRoman Smrž <roman.smrz@seznam.cz>2025-06-30 20:38:25 +0200
commitac70a5f9aebcfd51901740681463d1ac4fa90e33 (patch)
tree353ea6ed5aaea7dab8e12e31b31e039367c4c58b /src/Job
parentf1beff8cdbf5a2e54ea5e36b6edf337fc45ffc8b (diff)
Explicit JobSet ID
Diffstat (limited to 'src/Job')
-rw-r--r--src/Job/Types.hs10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/Job/Types.hs b/src/Job/Types.hs
index 4024317..ad575a1 100644
--- a/src/Job/Types.hs
+++ b/src/Job/Types.hs
@@ -55,13 +55,18 @@ data ArtifactName = ArtifactName Text
data JobSet' d = JobSet
- { jobsetCommit :: Maybe Commit
+ { jobsetId :: JobSetId' d
+ , jobsetCommit :: Maybe Commit
, jobsetJobsEither :: Either String [ Job' d ]
}
type JobSet = JobSet' Evaluated
type DeclaredJobSet = JobSet' Declared
+type family JobSetId' d :: Type where
+ JobSetId' Declared = ()
+ JobSetId' Evaluated = JobSetId
+
jobsetJobs :: JobSet -> [ Job ]
jobsetJobs = either (const []) id . jobsetJobsEither
@@ -69,6 +74,9 @@ jobsetJobs = either (const []) id . jobsetJobsEither
newtype JobId = JobId [ JobIdPart ]
deriving (Eq, Ord)
+newtype JobSetId = JobSetId [ JobIdPart ]
+ deriving (Eq, Ord)
+
data JobIdPart
= JobIdName JobName
| JobIdCommit (Maybe RepoName) CommitId