diff options
| -rw-r--r-- | spec/src/Thermoprint/Identifiers.hs | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/spec/src/Thermoprint/Identifiers.hs b/spec/src/Thermoprint/Identifiers.hs index 9608922..a2609a4 100644 --- a/spec/src/Thermoprint/Identifiers.hs +++ b/spec/src/Thermoprint/Identifiers.hs | |||
| @@ -5,16 +5,20 @@ module Thermoprint.Identifiers | |||
| 5 | ( PrinterId(..) | 5 | ( PrinterId(..) |
| 6 | , JobId(..) | 6 | , JobId(..) |
| 7 | , DraftId(..) | 7 | , DraftId(..) |
| 8 | , castId | ||
| 8 | ) where | 9 | ) where |
| 9 | 10 | ||
| 10 | import Servant.API (ToText, FromText) | 11 | import Servant.API (ToText, FromText) |
| 11 | import Data.Aeson (FromJSON, ToJSON) | 12 | import Data.Aeson (FromJSON, ToJSON) |
| 12 | 13 | ||
| 13 | newtype PrinterId = PrinterId Integer | 14 | newtype PrinterId = PrinterId Integer |
| 14 | deriving (Show, Eq, Ord, Enum, FromText, ToText, FromJSON, ToJSON) | 15 | deriving (Show, Eq, Ord, Num, Real, Integral, Enum, FromText, ToText, FromJSON, ToJSON) |
| 15 | 16 | ||
| 16 | newtype JobId = JobId Integer | 17 | newtype JobId = JobId Integer |
| 17 | deriving (Show, Eq, Ord, Enum, FromText, ToText, FromJSON, ToJSON) | 18 | deriving (Show, Eq, Ord, Num, Real, Integral, Enum, FromText, ToText, FromJSON, ToJSON) |
| 18 | 19 | ||
| 19 | newtype DraftId = DraftId Integer | 20 | newtype DraftId = DraftId Integer |
| 20 | deriving (Show, Eq, Ord, Enum, FromText, ToText, FromJSON, ToJSON) | 21 | deriving (Show, Eq, Ord, Num, Real, Integral, Enum, FromText, ToText, FromJSON, ToJSON) |
| 22 | |||
| 23 | castId :: (Integral a, Enum b) => a -> b | ||
| 24 | castId = toEnum . fromInteger . toInteger | ||
