aboutsummaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorGregor Kleen <gkleen@yggdrasil.li>2016-01-20 13:55:30 +0000
committerGregor Kleen <gkleen@yggdrasil.li>2016-01-20 13:55:30 +0000
commitedfadd543cfdc32177e8cc4392ea598afb12f7c0 (patch)
treebbe87cdba84dab9b6883f16197c5742cea8a4d9a /spec
parent64e3df81b31cc79b035913bda4d093e31bb1955a (diff)
downloadthermoprint-edfadd543cfdc32177e8cc4392ea598afb12f7c0.tar
thermoprint-edfadd543cfdc32177e8cc4392ea598afb12f7c0.tar.gz
thermoprint-edfadd543cfdc32177e8cc4392ea598afb12f7c0.tar.bz2
thermoprint-edfadd543cfdc32177e8cc4392ea598afb12f7c0.tar.xz
thermoprint-edfadd543cfdc32177e8cc4392ea598afb12f7c0.zip
casting ids
Diffstat (limited to 'spec')
-rw-r--r--spec/src/Thermoprint/Identifiers.hs10
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
10import Servant.API (ToText, FromText) 11import Servant.API (ToText, FromText)
11import Data.Aeson (FromJSON, ToJSON) 12import Data.Aeson (FromJSON, ToJSON)
12 13
13newtype PrinterId = PrinterId Integer 14newtype 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
16newtype JobId = JobId Integer 17newtype 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
19newtype DraftId = DraftId Integer 20newtype 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
23castId :: (Integral a, Enum b) => a -> b
24castId = toEnum . fromInteger . toInteger