-- | Description: Port data type
module Polysemy.Account.Data.Port where

-- | An API port, used by the Servant tools in @polysemy-account-api@.
newtype Port =
  Port { Port -> Word
unPort :: Word }
  deriving stock (Port -> Port -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Port -> Port -> Bool
$c/= :: Port -> Port -> Bool
== :: Port -> Port -> Bool
$c== :: Port -> Port -> Bool
Eq, Int -> Port -> ShowS
[Port] -> ShowS
Port -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Port] -> ShowS
$cshowList :: [Port] -> ShowS
show :: Port -> String
$cshow :: Port -> String
showsPrec :: Int -> Port -> ShowS
$cshowsPrec :: Int -> Port -> ShowS
Show)
  deriving newtype (Integer -> Port
Port -> Port
Port -> Port -> Port
forall a.
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (Integer -> a)
-> Num a
fromInteger :: Integer -> Port
$cfromInteger :: Integer -> Port
signum :: Port -> Port
$csignum :: Port -> Port
abs :: Port -> Port
$cabs :: Port -> Port
negate :: Port -> Port
$cnegate :: Port -> Port
* :: Port -> Port -> Port
$c* :: Port -> Port -> Port
- :: Port -> Port -> Port
$c- :: Port -> Port -> Port
+ :: Port -> Port -> Port
$c+ :: Port -> Port -> Port
Num, Eq Port
Port -> Port -> Bool
Port -> Port -> Ordering
Port -> Port -> Port
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 :: Port -> Port -> Port
$cmin :: Port -> Port -> Port
max :: Port -> Port -> Port
$cmax :: Port -> Port -> Port
>= :: Port -> Port -> Bool
$c>= :: Port -> Port -> Bool
> :: Port -> Port -> Bool
$c> :: Port -> Port -> Bool
<= :: Port -> Port -> Bool
$c<= :: Port -> Port -> Bool
< :: Port -> Port -> Bool
$c< :: Port -> Port -> Bool
compare :: Port -> Port -> Ordering
$ccompare :: Port -> Port -> Ordering
Ord, Int -> Port
Port -> Int
Port -> [Port]
Port -> Port
Port -> Port -> [Port]
Port -> Port -> Port -> [Port]
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: Port -> Port -> Port -> [Port]
$cenumFromThenTo :: Port -> Port -> Port -> [Port]
enumFromTo :: Port -> Port -> [Port]
$cenumFromTo :: Port -> Port -> [Port]
enumFromThen :: Port -> Port -> [Port]
$cenumFromThen :: Port -> Port -> [Port]
enumFrom :: Port -> [Port]
$cenumFrom :: Port -> [Port]
fromEnum :: Port -> Int
$cfromEnum :: Port -> Int
toEnum :: Int -> Port
$ctoEnum :: Int -> Port
pred :: Port -> Port
$cpred :: Port -> Port
succ :: Port -> Port
$csucc :: Port -> Port
Enum, Num Port
Ord Port
Port -> Rational
forall a. Num a -> Ord a -> (a -> Rational) -> Real a
toRational :: Port -> Rational
$ctoRational :: Port -> Rational
Real, Enum Port
Real Port
Port -> Integer
Port -> Port -> (Port, Port)
Port -> Port -> Port
forall a.
Real a
-> Enum a
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> (a, a))
-> (a -> a -> (a, a))
-> (a -> Integer)
-> Integral a
toInteger :: Port -> Integer
$ctoInteger :: Port -> Integer
divMod :: Port -> Port -> (Port, Port)
$cdivMod :: Port -> Port -> (Port, Port)
quotRem :: Port -> Port -> (Port, Port)
$cquotRem :: Port -> Port -> (Port, Port)
mod :: Port -> Port -> Port
$cmod :: Port -> Port -> Port
div :: Port -> Port -> Port
$cdiv :: Port -> Port -> Port
rem :: Port -> Port -> Port
$crem :: Port -> Port -> Port
quot :: Port -> Port -> Port
$cquot :: Port -> Port -> Port
Integral, ReadPrec [Port]
ReadPrec Port
Int -> ReadS Port
ReadS [Port]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Port]
$creadListPrec :: ReadPrec [Port]
readPrec :: ReadPrec Port
$creadPrec :: ReadPrec Port
readList :: ReadS [Port]
$creadList :: ReadS [Port]
readsPrec :: Int -> ReadS Port
$creadsPrec :: Int -> ReadS Port
Read)

json ''Port