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 $bLLQ :: OptNum
$mLLQ :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
LLQ = OptNum 1
pattern UL :: OptNum
pattern $bUL :: OptNum
$mUL :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
UL = OptNum 2
pattern NSID :: OptNum
pattern $bNSID :: OptNum
$mNSID :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
NSID = OptNum 3
pattern DAU :: OptNum
pattern $bDAU :: OptNum
$mDAU :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
DAU = OptNum 5
pattern DHU :: OptNum
pattern $bDHU :: OptNum
$mDHU :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
DHU = OptNum 6
pattern N3U :: OptNum
pattern $bN3U :: OptNum
$mN3U :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
N3U = OptNum 7
pattern ECS :: OptNum
pattern $bECS :: OptNum
$mECS :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
ECS = OptNum 8
pattern EXPIRE :: OptNum
pattern $bEXPIRE :: OptNum
$mEXPIRE :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
EXPIRE = OptNum 9
pattern COOKIE :: OptNum
pattern $bCOOKIE :: OptNum
$mCOOKIE :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
COOKIE = OptNum 10
pattern TCPKEEPALIVE :: OptNum
pattern $bTCPKEEPALIVE :: OptNum
$mTCPKEEPALIVE :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
TCPKEEPALIVE = OptNum 11
pattern PADDING :: OptNum
pattern $bPADDING :: OptNum
$mPADDING :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
PADDING = OptNum 12
pattern CHAIN :: OptNum
pattern $bCHAIN :: OptNum
$mCHAIN :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
CHAIN = OptNum 13
pattern KEYTAG :: OptNum
pattern $bKEYTAG :: OptNum
$mKEYTAG :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
KEYTAG = OptNum 14
pattern EDE :: OptNum
pattern $bEDE :: OptNum
$mEDE :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
EDE = OptNum 15
pattern CLIENTTAG :: OptNum
pattern $bCLIENTTAG :: OptNum
$mCLIENTTAG :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
CLIENTTAG = OptNum 16
pattern SERVERTAG :: OptNum
pattern $bSERVERTAG :: OptNum
$mSERVERTAG :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
SERVERTAG = OptNum 17
pattern REPORTCHAN :: OptNum
pattern $bREPORTCHAN :: OptNum
$mREPORTCHAN :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
REPORTCHAN = OptNum 18
pattern ZONEVERSION :: OptNum
pattern $bZONEVERSION :: OptNum
$mZONEVERSION :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
ZONEVERSION = OptNum 19
pattern MQTQUERY :: OptNum
pattern $bMQTQUERY :: OptNum
$mMQTQUERY :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
MQTQUERY = OptNum 20
pattern MQTRESPONSE :: OptNum
pattern $bMQTRESPONSE :: OptNum
$mMQTRESPONSE :: forall {r}. OptNum -> ((# #) -> r) -> ((# #) -> r) -> r
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)