{-# LANGUAGE DuplicateRecordFields #-}

module Hyperion.Slurm.JobId where

import           Data.Text       (Text)

-- | Type for job id. A job can be idetified by id or by name, hence the two 
-- construtors.
data JobId = JobId Text | JobName Text
  deriving (Int -> JobId -> ShowS
[JobId] -> ShowS
JobId -> String
(Int -> JobId -> ShowS)
-> (JobId -> String) -> ([JobId] -> ShowS) -> Show JobId
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [JobId] -> ShowS
$cshowList :: [JobId] -> ShowS
show :: JobId -> String
$cshow :: JobId -> String
showsPrec :: Int -> JobId -> ShowS
$cshowsPrec :: Int -> JobId -> ShowS
Show, JobId -> JobId -> Bool
(JobId -> JobId -> Bool) -> (JobId -> JobId -> Bool) -> Eq JobId
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: JobId -> JobId -> Bool
$c/= :: JobId -> JobId -> Bool
== :: JobId -> JobId -> Bool
$c== :: JobId -> JobId -> Bool
Eq, Eq JobId
Eq JobId
-> (JobId -> JobId -> Ordering)
-> (JobId -> JobId -> Bool)
-> (JobId -> JobId -> Bool)
-> (JobId -> JobId -> Bool)
-> (JobId -> JobId -> Bool)
-> (JobId -> JobId -> JobId)
-> (JobId -> JobId -> JobId)
-> Ord JobId
JobId -> JobId -> Bool
JobId -> JobId -> Ordering
JobId -> JobId -> JobId
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: JobId -> JobId -> JobId
$cmin :: JobId -> JobId -> JobId
max :: JobId -> JobId -> JobId
$cmax :: JobId -> JobId -> JobId
>= :: JobId -> JobId -> Bool
$c>= :: JobId -> JobId -> Bool
> :: JobId -> JobId -> Bool
$c> :: JobId -> JobId -> Bool
<= :: JobId -> JobId -> Bool
$c<= :: JobId -> JobId -> Bool
< :: JobId -> JobId -> Bool
$c< :: JobId -> JobId -> Bool
compare :: JobId -> JobId -> Ordering
$ccompare :: JobId -> JobId -> Ordering
$cp1Ord :: Eq JobId
Ord)