module Net.DNSBase.EDNS.Internal.OptNum
( OptNum( ..
, LLQ
, UL
, NSID
, DAU
, DHU
, N3U
, ECS
, EXPIRE
, COOKIE
, TCPKEEPALIVE
, PADDING
, CHAIN
, KEYTAG
, EDE
, CLIENTTAG
, SERVERTAG
)
) where
import Net.DNSBase.Internal.Present
import Net.DNSBase.Internal.Util
newtype OptNum = OptNum Word16
deriving newtype (OptNum -> OptNum -> Bool
(OptNum -> OptNum -> Bool)
-> (OptNum -> OptNum -> Bool) -> Eq OptNum
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: OptNum -> OptNum -> Bool
== :: OptNum -> OptNum -> Bool
$c/= :: OptNum -> OptNum -> Bool
/= :: OptNum -> OptNum -> Bool
Eq, Eq OptNum
Eq OptNum =>
(OptNum -> OptNum -> Ordering)
-> (OptNum -> OptNum -> Bool)
-> (OptNum -> OptNum -> Bool)
-> (OptNum -> OptNum -> Bool)
-> (OptNum -> OptNum -> Bool)
-> (OptNum -> OptNum -> OptNum)
-> (OptNum -> OptNum -> OptNum)
-> Ord OptNum
OptNum -> OptNum -> Bool
OptNum -> OptNum -> Ordering
OptNum -> OptNum -> OptNum
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 :: OptNum -> OptNum -> Ordering
compare :: OptNum -> OptNum -> Ordering
$c< :: OptNum -> OptNum -> Bool
< :: OptNum -> OptNum -> Bool
$c<= :: OptNum -> OptNum -> Bool
<= :: OptNum -> OptNum -> Bool
$c> :: OptNum -> OptNum -> Bool
> :: OptNum -> OptNum -> Bool
$c>= :: OptNum -> OptNum -> Bool
>= :: OptNum -> OptNum -> Bool
$cmax :: OptNum -> OptNum -> OptNum
max :: OptNum -> OptNum -> OptNum
$cmin :: OptNum -> OptNum -> OptNum
min :: OptNum -> OptNum -> OptNum
Ord, Int -> OptNum
OptNum -> Int
OptNum -> [OptNum]
OptNum -> OptNum
OptNum -> OptNum -> [OptNum]
OptNum -> OptNum -> OptNum -> [OptNum]
(OptNum -> OptNum)
-> (OptNum -> OptNum)
-> (Int -> OptNum)
-> (OptNum -> Int)
-> (OptNum -> [OptNum])
-> (OptNum -> OptNum -> [OptNum])
-> (OptNum -> OptNum -> [OptNum])
-> (OptNum -> OptNum -> OptNum -> [OptNum])
-> Enum OptNum
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
$csucc :: OptNum -> OptNum
succ :: OptNum -> OptNum
$cpred :: OptNum -> OptNum
pred :: OptNum -> OptNum
$ctoEnum :: Int -> OptNum
toEnum :: Int -> OptNum
$cfromEnum :: OptNum -> Int
fromEnum :: OptNum -> Int
$cenumFrom :: OptNum -> [OptNum]
enumFrom :: OptNum -> [OptNum]
$cenumFromThen :: OptNum -> OptNum -> [OptNum]
enumFromThen :: OptNum -> OptNum -> [OptNum]
$cenumFromTo :: OptNum -> OptNum -> [OptNum]
enumFromTo :: OptNum -> OptNum -> [OptNum]
$cenumFromThenTo :: OptNum -> OptNum -> OptNum -> [OptNum]
enumFromThenTo :: OptNum -> OptNum -> OptNum -> [OptNum]
Enum, OptNum
OptNum -> OptNum -> Bounded OptNum
forall a. a -> a -> Bounded a
$cminBound :: OptNum
minBound :: OptNum
$cmaxBound :: OptNum
maxBound :: OptNum
Bounded, Integer -> OptNum
OptNum -> OptNum
OptNum -> OptNum -> OptNum
(OptNum -> OptNum -> OptNum)
-> (OptNum -> OptNum -> OptNum)
-> (OptNum -> OptNum -> OptNum)
-> (OptNum -> OptNum)
-> (OptNum -> OptNum)
-> (OptNum -> OptNum)
-> (Integer -> OptNum)
-> Num OptNum
forall a.
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (Integer -> a)
-> Num a
$c+ :: OptNum -> OptNum -> OptNum
+ :: OptNum -> OptNum -> OptNum
$c- :: OptNum -> OptNum -> OptNum
- :: OptNum -> OptNum -> OptNum
$c* :: OptNum -> OptNum -> OptNum
* :: OptNum -> OptNum -> OptNum
$cnegate :: OptNum -> OptNum
negate :: OptNum -> OptNum
$cabs :: OptNum -> OptNum
abs :: OptNum -> OptNum
$csignum :: OptNum -> OptNum
signum :: OptNum -> OptNum
$cfromInteger :: Integer -> OptNum
fromInteger :: Integer -> OptNum
Num, Num OptNum
Ord OptNum
(Num OptNum, Ord OptNum) => (OptNum -> Rational) -> Real OptNum
OptNum -> Rational
forall a. (Num a, Ord a) => (a -> Rational) -> Real a
$ctoRational :: OptNum -> Rational
toRational :: OptNum -> Rational
Real, Enum OptNum
Real OptNum
(Real OptNum, Enum OptNum) =>
(OptNum -> OptNum -> OptNum)
-> (OptNum -> OptNum -> OptNum)
-> (OptNum -> OptNum -> OptNum)
-> (OptNum -> OptNum -> OptNum)
-> (OptNum -> OptNum -> (OptNum, OptNum))
-> (OptNum -> OptNum -> (OptNum, OptNum))
-> (OptNum -> Integer)
-> Integral OptNum
OptNum -> Integer
OptNum -> OptNum -> (OptNum, OptNum)
OptNum -> OptNum -> OptNum
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
$cquot :: OptNum -> OptNum -> OptNum
quot :: OptNum -> OptNum -> OptNum
$crem :: OptNum -> OptNum -> OptNum
rem :: OptNum -> OptNum -> OptNum
$cdiv :: OptNum -> OptNum -> OptNum
div :: OptNum -> OptNum -> OptNum
$cmod :: OptNum -> OptNum -> OptNum
mod :: OptNum -> OptNum -> OptNum
$cquotRem :: OptNum -> OptNum -> (OptNum, OptNum)
quotRem :: OptNum -> OptNum -> (OptNum, OptNum)
$cdivMod :: OptNum -> OptNum -> (OptNum, OptNum)
divMod :: OptNum -> OptNum -> (OptNum, OptNum)
$ctoInteger :: OptNum -> Integer
toInteger :: OptNum -> Integer
Integral, Int -> OptNum -> ShowS
[OptNum] -> ShowS
OptNum -> String
(Int -> OptNum -> ShowS)
-> (OptNum -> String) -> ([OptNum] -> ShowS) -> Show OptNum
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> OptNum -> ShowS
showsPrec :: Int -> OptNum -> ShowS
$cshow :: OptNum -> String
show :: OptNum -> String
$cshowList :: [OptNum] -> ShowS
showList :: [OptNum] -> ShowS
Show, ReadPrec [OptNum]
ReadPrec OptNum
Int -> ReadS OptNum
ReadS [OptNum]
(Int -> ReadS OptNum)
-> ReadS [OptNum]
-> ReadPrec OptNum
-> ReadPrec [OptNum]
-> Read OptNum
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS OptNum
readsPrec :: Int -> ReadS OptNum
$creadList :: ReadS [OptNum]
readList :: ReadS [OptNum]
$creadPrec :: ReadPrec OptNum
readPrec :: ReadPrec OptNum
$creadListPrec :: ReadPrec [OptNum]
readListPrec :: ReadPrec [OptNum]
Read)
pattern LLQ :: OptNum
pattern $mLLQ :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
$bLLQ :: OptNum
LLQ = OptNum 1
pattern UL :: OptNum
pattern $mUL :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
$bUL :: OptNum
UL = OptNum 2
pattern NSID :: OptNum
pattern $mNSID :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
$bNSID :: OptNum
NSID = OptNum 3
pattern DAU :: OptNum
pattern $mDAU :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
$bDAU :: OptNum
DAU = OptNum 5
pattern DHU :: OptNum
pattern $mDHU :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
$bDHU :: OptNum
DHU = OptNum 6
pattern N3U :: OptNum
pattern $mN3U :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
$bN3U :: OptNum
N3U = OptNum 7
pattern ECS :: OptNum
pattern $mECS :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
$bECS :: OptNum
ECS = OptNum 8
pattern EXPIRE :: OptNum
pattern $mEXPIRE :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
$bEXPIRE :: OptNum
EXPIRE = OptNum 9
pattern COOKIE :: OptNum
pattern $mCOOKIE :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
$bCOOKIE :: OptNum
COOKIE = OptNum 10
pattern TCPKEEPALIVE :: OptNum
pattern $mTCPKEEPALIVE :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
$bTCPKEEPALIVE :: OptNum
TCPKEEPALIVE = OptNum 11
pattern PADDING :: OptNum
pattern $mPADDING :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
$bPADDING :: OptNum
PADDING = OptNum 12
pattern CHAIN :: OptNum
pattern $mCHAIN :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
$bCHAIN :: OptNum
CHAIN = OptNum 13
pattern KEYTAG :: OptNum
pattern $mKEYTAG :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
$bKEYTAG :: OptNum
KEYTAG = OptNum 14
pattern EDE :: OptNum
pattern $mEDE :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
$bEDE :: OptNum
EDE = OptNum 15
pattern CLIENTTAG :: OptNum
pattern $mCLIENTTAG :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
$bCLIENTTAG :: OptNum
CLIENTTAG = OptNum 16
pattern SERVERTAG :: OptNum
pattern $mSERVERTAG :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
$bSERVERTAG :: OptNum
SERVERTAG = OptNum 17
pattern REPORTCHAN :: OptNum
pattern $mREPORTCHAN :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
$bREPORTCHAN :: OptNum
REPORTCHAN = OptNum 18
pattern ZONEVERSION :: OptNum
pattern $mZONEVERSION :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
$bZONEVERSION :: OptNum
ZONEVERSION = OptNum 19
pattern MQTQUERY :: OptNum
pattern $mMQTQUERY :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
$bMQTQUERY :: OptNum
MQTQUERY = OptNum 20
pattern MQTRESPONSE :: OptNum
pattern $mMQTRESPONSE :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
$bMQTRESPONSE :: OptNum
MQTRESPONSE = OptNum 21
instance Presentable OptNum where
present :: OptNum -> Builder -> Builder
present OptNum
LLQ = String -> Builder -> Builder
forall a. Presentable a => a -> Builder -> Builder
present String
"LLQ"
present OptNum
UL = String -> Builder -> Builder
forall a. Presentable a => a -> Builder -> Builder
present String
"UL"
present OptNum
NSID = String -> Builder -> Builder
forall a. Presentable a => a -> Builder -> Builder
present String
"NSID"
present OptNum
DAU = String -> Builder -> Builder
forall a. Presentable a => a -> Builder -> Builder
present String
"DAU"
present OptNum
DHU = String -> Builder -> Builder
forall a. Presentable a => a -> Builder -> Builder
present String
"DHU"
present OptNum
N3U = String -> Builder -> Builder
forall a. Presentable a => a -> Builder -> Builder
present String
"N3U"
present OptNum
ECS = String -> Builder -> Builder
forall a. Presentable a => a -> Builder -> Builder
present String
"ECS"
present OptNum
EXPIRE = String -> Builder -> Builder
forall a. Presentable a => a -> Builder -> Builder
present String
"EXPIRE"
present OptNum
COOKIE = String -> Builder -> Builder
forall a. Presentable a => a -> Builder -> Builder
present String
"COOKIE"
present OptNum
TCPKEEPALIVE = String -> Builder -> Builder
forall a. Presentable a => a -> Builder -> Builder
present String
"TCPKEEPALIVE"
present OptNum
PADDING = String -> Builder -> Builder
forall a. Presentable a => a -> Builder -> Builder
present String
"PADDING"
present OptNum
CHAIN = String -> Builder -> Builder
forall a. Presentable a => a -> Builder -> Builder
present String
"CHAIN"
present OptNum
KEYTAG = String -> Builder -> Builder
forall a. Presentable a => a -> Builder -> Builder
present String
"CHAIN"
present OptNum
EDE = String -> Builder -> Builder
forall a. Presentable a => a -> Builder -> Builder
present String
"EDE"
present OptNum
CLIENTTAG = String -> Builder -> Builder
forall a. Presentable a => a -> Builder -> Builder
present String
"CLIENTTAG"
present OptNum
SERVERTAG = String -> Builder -> Builder
forall a. Presentable a => a -> Builder -> Builder
present String
"SERVERTAG"
present OptNum
REPORTCHAN = String -> Builder -> Builder
forall a. Presentable a => a -> Builder -> Builder
present String
"REPORTCHAN"
present OptNum
ZONEVERSION = String -> Builder -> Builder
forall a. Presentable a => a -> Builder -> Builder
present String
"ZONEVERSION"
present OptNum
MQTQUERY = String -> Builder -> Builder
forall a. Presentable a => a -> Builder -> Builder
present String
"MQTQUERY"
present OptNum
MQTRESPONSE = String -> Builder -> Builder
forall a. Presentable a => a -> Builder -> Builder
present String
"MQTRESPONSE"
present OptNum
oc = String -> Builder -> Builder
forall a. Presentable a => a -> Builder -> Builder
present String
"OPTION" (Builder -> Builder) -> (Builder -> Builder) -> Builder -> Builder
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word16 -> Builder -> Builder
forall a. Presentable a => a -> Builder -> Builder
present (forall a b. Coercible a b => a -> b
forall a b. Coercible a b => a -> b
coerce @_ @Word16 OptNum
oc)