\section{Port Number}
A Port Number is a 16 bit number. Its binary representation is a Big Endian 16
bit unsigned integer (2 bytes).
\begin{code}
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE Trustworthy #-}
module Network.Tox.NodeInfo.PortNumber where
import Control.Applicative ((<$>))
import Data.Binary (Binary)
import Data.MessagePack (MessagePack)
import Data.Typeable (Typeable)
import Data.Word (Word16)
import GHC.Generics (Generic)
import Test.QuickCheck.Arbitrary (Arbitrary, arbitrary)
newtype PortNumber = PortNumber Word16
deriving
( Generic, Typeable
, Eq, Ord
, Show, Read
, Binary
, Num, Integral, Real, Bounded, Enum)
instance MessagePack PortNumber
instance Arbitrary PortNumber where
arbitrary =
PortNumber . fromInteger <$> arbitrary
\end{code}