module Net.PortNumber where
import Net.Bits(Word16)
import Net.PacketParsing
newtype Port = Port Word16 deriving (Port -> Port -> Bool
(Port -> Port -> Bool) -> (Port -> Port -> Bool) -> Eq Port
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Port -> Port -> Bool
== :: Port -> Port -> Bool
$c/= :: Port -> Port -> Bool
/= :: Port -> Port -> Bool
Eq,Eq Port
Eq Port =>
(Port -> Port -> Ordering)
-> (Port -> Port -> Bool)
-> (Port -> Port -> Bool)
-> (Port -> Port -> Bool)
-> (Port -> Port -> Bool)
-> (Port -> Port -> Port)
-> (Port -> Port -> Port)
-> Ord 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
$ccompare :: Port -> Port -> Ordering
compare :: Port -> Port -> Ordering
$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
>= :: Port -> Port -> Bool
$cmax :: Port -> Port -> Port
max :: Port -> Port -> Port
$cmin :: Port -> Port -> Port
min :: Port -> Port -> Port
Ord,Port
Port -> Port -> Bounded Port
forall a. a -> a -> Bounded a
$cminBound :: Port
minBound :: Port
$cmaxBound :: Port
maxBound :: Port
Bounded,Int -> Port -> ShowS
[Port] -> ShowS
Port -> String
(Int -> Port -> ShowS)
-> (Port -> String) -> ([Port] -> ShowS) -> Show Port
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Port -> ShowS
showsPrec :: Int -> Port -> ShowS
$cshow :: Port -> String
show :: Port -> String
$cshowList :: [Port] -> ShowS
showList :: [Port] -> ShowS
Show)
instance Enum Port where
toEnum :: Int -> Port
toEnum = Word16 -> Port
Port (Word16 -> Port) -> (Int -> Word16) -> Int -> Port
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int -> Word16
forall a. Enum a => Int -> a
toEnum
fromEnum :: Port -> Int
fromEnum (Port Word16
p) = Word16 -> Int
forall a. Enum a => a -> Int
fromEnum Word16
p
instance Parse Port where parse :: PacketParser Port
parse = Word16 -> Port
Port (Word16 -> Port) -> PacketParser Word16 -> PacketParser Port
forall {f :: * -> *} {a} {b}. Functor f => (a -> b) -> f a -> f b
# PacketParser Word16
forall a. Parse a => PacketParser a
parse
instance Unparse Port where unparse :: Port -> UnparseS
unparse (Port Word16
p) = Word16 -> UnparseS
forall a. Unparse a => a -> UnparseS
unparse Word16
p
echo :: Port
echo = Word16 -> Port
Port Word16
7
telnet :: Port
telnet = Word16 -> Port
Port Word16
23
bootps :: Port
bootps = Word16 -> Port
Port Word16
67
bootpc :: Port
bootpc = Word16 -> Port
Port Word16
68
tftp :: Port
tftp = Word16 -> Port
Port Word16
69
http :: Port
http = Word16 -> Port
Port Word16
80