module Net.DNSBase.RData.SVCB.SVCParamKey where
import Data.Word (Word16)
import Net.DNSBase.Present
newtype SVCParamKey = SVCParamKey Word16
deriving newtype (SVCParamKey -> SVCParamKey -> Bool
(SVCParamKey -> SVCParamKey -> Bool)
-> (SVCParamKey -> SVCParamKey -> Bool) -> Eq SVCParamKey
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SVCParamKey -> SVCParamKey -> Bool
== :: SVCParamKey -> SVCParamKey -> Bool
$c/= :: SVCParamKey -> SVCParamKey -> Bool
/= :: SVCParamKey -> SVCParamKey -> Bool
Eq, Eq SVCParamKey
Eq SVCParamKey =>
(SVCParamKey -> SVCParamKey -> Ordering)
-> (SVCParamKey -> SVCParamKey -> Bool)
-> (SVCParamKey -> SVCParamKey -> Bool)
-> (SVCParamKey -> SVCParamKey -> Bool)
-> (SVCParamKey -> SVCParamKey -> Bool)
-> (SVCParamKey -> SVCParamKey -> SVCParamKey)
-> (SVCParamKey -> SVCParamKey -> SVCParamKey)
-> Ord SVCParamKey
SVCParamKey -> SVCParamKey -> Bool
SVCParamKey -> SVCParamKey -> Ordering
SVCParamKey -> SVCParamKey -> SVCParamKey
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 :: SVCParamKey -> SVCParamKey -> Ordering
compare :: SVCParamKey -> SVCParamKey -> Ordering
$c< :: SVCParamKey -> SVCParamKey -> Bool
< :: SVCParamKey -> SVCParamKey -> Bool
$c<= :: SVCParamKey -> SVCParamKey -> Bool
<= :: SVCParamKey -> SVCParamKey -> Bool
$c> :: SVCParamKey -> SVCParamKey -> Bool
> :: SVCParamKey -> SVCParamKey -> Bool
$c>= :: SVCParamKey -> SVCParamKey -> Bool
>= :: SVCParamKey -> SVCParamKey -> Bool
$cmax :: SVCParamKey -> SVCParamKey -> SVCParamKey
max :: SVCParamKey -> SVCParamKey -> SVCParamKey
$cmin :: SVCParamKey -> SVCParamKey -> SVCParamKey
min :: SVCParamKey -> SVCParamKey -> SVCParamKey
Ord, Int -> SVCParamKey
SVCParamKey -> Int
SVCParamKey -> [SVCParamKey]
SVCParamKey -> SVCParamKey
SVCParamKey -> SVCParamKey -> [SVCParamKey]
SVCParamKey -> SVCParamKey -> SVCParamKey -> [SVCParamKey]
(SVCParamKey -> SVCParamKey)
-> (SVCParamKey -> SVCParamKey)
-> (Int -> SVCParamKey)
-> (SVCParamKey -> Int)
-> (SVCParamKey -> [SVCParamKey])
-> (SVCParamKey -> SVCParamKey -> [SVCParamKey])
-> (SVCParamKey -> SVCParamKey -> [SVCParamKey])
-> (SVCParamKey -> SVCParamKey -> SVCParamKey -> [SVCParamKey])
-> Enum SVCParamKey
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 :: SVCParamKey -> SVCParamKey
succ :: SVCParamKey -> SVCParamKey
$cpred :: SVCParamKey -> SVCParamKey
pred :: SVCParamKey -> SVCParamKey
$ctoEnum :: Int -> SVCParamKey
toEnum :: Int -> SVCParamKey
$cfromEnum :: SVCParamKey -> Int
fromEnum :: SVCParamKey -> Int
$cenumFrom :: SVCParamKey -> [SVCParamKey]
enumFrom :: SVCParamKey -> [SVCParamKey]
$cenumFromThen :: SVCParamKey -> SVCParamKey -> [SVCParamKey]
enumFromThen :: SVCParamKey -> SVCParamKey -> [SVCParamKey]
$cenumFromTo :: SVCParamKey -> SVCParamKey -> [SVCParamKey]
enumFromTo :: SVCParamKey -> SVCParamKey -> [SVCParamKey]
$cenumFromThenTo :: SVCParamKey -> SVCParamKey -> SVCParamKey -> [SVCParamKey]
enumFromThenTo :: SVCParamKey -> SVCParamKey -> SVCParamKey -> [SVCParamKey]
Enum, SVCParamKey
SVCParamKey -> SVCParamKey -> Bounded SVCParamKey
forall a. a -> a -> Bounded a
$cminBound :: SVCParamKey
minBound :: SVCParamKey
$cmaxBound :: SVCParamKey
maxBound :: SVCParamKey
Bounded, Integer -> SVCParamKey
SVCParamKey -> SVCParamKey
SVCParamKey -> SVCParamKey -> SVCParamKey
(SVCParamKey -> SVCParamKey -> SVCParamKey)
-> (SVCParamKey -> SVCParamKey -> SVCParamKey)
-> (SVCParamKey -> SVCParamKey -> SVCParamKey)
-> (SVCParamKey -> SVCParamKey)
-> (SVCParamKey -> SVCParamKey)
-> (SVCParamKey -> SVCParamKey)
-> (Integer -> SVCParamKey)
-> Num SVCParamKey
forall a.
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (Integer -> a)
-> Num a
$c+ :: SVCParamKey -> SVCParamKey -> SVCParamKey
+ :: SVCParamKey -> SVCParamKey -> SVCParamKey
$c- :: SVCParamKey -> SVCParamKey -> SVCParamKey
- :: SVCParamKey -> SVCParamKey -> SVCParamKey
$c* :: SVCParamKey -> SVCParamKey -> SVCParamKey
* :: SVCParamKey -> SVCParamKey -> SVCParamKey
$cnegate :: SVCParamKey -> SVCParamKey
negate :: SVCParamKey -> SVCParamKey
$cabs :: SVCParamKey -> SVCParamKey
abs :: SVCParamKey -> SVCParamKey
$csignum :: SVCParamKey -> SVCParamKey
signum :: SVCParamKey -> SVCParamKey
$cfromInteger :: Integer -> SVCParamKey
fromInteger :: Integer -> SVCParamKey
Num, Num SVCParamKey
Ord SVCParamKey
(Num SVCParamKey, Ord SVCParamKey) =>
(SVCParamKey -> Rational) -> Real SVCParamKey
SVCParamKey -> Rational
forall a. (Num a, Ord a) => (a -> Rational) -> Real a
$ctoRational :: SVCParamKey -> Rational
toRational :: SVCParamKey -> Rational
Real, Enum SVCParamKey
Real SVCParamKey
(Real SVCParamKey, Enum SVCParamKey) =>
(SVCParamKey -> SVCParamKey -> SVCParamKey)
-> (SVCParamKey -> SVCParamKey -> SVCParamKey)
-> (SVCParamKey -> SVCParamKey -> SVCParamKey)
-> (SVCParamKey -> SVCParamKey -> SVCParamKey)
-> (SVCParamKey -> SVCParamKey -> (SVCParamKey, SVCParamKey))
-> (SVCParamKey -> SVCParamKey -> (SVCParamKey, SVCParamKey))
-> (SVCParamKey -> Integer)
-> Integral SVCParamKey
SVCParamKey -> Integer
SVCParamKey -> SVCParamKey -> (SVCParamKey, SVCParamKey)
SVCParamKey -> SVCParamKey -> SVCParamKey
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 :: SVCParamKey -> SVCParamKey -> SVCParamKey
quot :: SVCParamKey -> SVCParamKey -> SVCParamKey
$crem :: SVCParamKey -> SVCParamKey -> SVCParamKey
rem :: SVCParamKey -> SVCParamKey -> SVCParamKey
$cdiv :: SVCParamKey -> SVCParamKey -> SVCParamKey
div :: SVCParamKey -> SVCParamKey -> SVCParamKey
$cmod :: SVCParamKey -> SVCParamKey -> SVCParamKey
mod :: SVCParamKey -> SVCParamKey -> SVCParamKey
$cquotRem :: SVCParamKey -> SVCParamKey -> (SVCParamKey, SVCParamKey)
quotRem :: SVCParamKey -> SVCParamKey -> (SVCParamKey, SVCParamKey)
$cdivMod :: SVCParamKey -> SVCParamKey -> (SVCParamKey, SVCParamKey)
divMod :: SVCParamKey -> SVCParamKey -> (SVCParamKey, SVCParamKey)
$ctoInteger :: SVCParamKey -> Integer
toInteger :: SVCParamKey -> Integer
Integral, Int -> SVCParamKey -> ShowS
[SVCParamKey] -> ShowS
SVCParamKey -> String
(Int -> SVCParamKey -> ShowS)
-> (SVCParamKey -> String)
-> ([SVCParamKey] -> ShowS)
-> Show SVCParamKey
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SVCParamKey -> ShowS
showsPrec :: Int -> SVCParamKey -> ShowS
$cshow :: SVCParamKey -> String
show :: SVCParamKey -> String
$cshowList :: [SVCParamKey] -> ShowS
showList :: [SVCParamKey] -> ShowS
Show, ReadPrec [SVCParamKey]
ReadPrec SVCParamKey
Int -> ReadS SVCParamKey
ReadS [SVCParamKey]
(Int -> ReadS SVCParamKey)
-> ReadS [SVCParamKey]
-> ReadPrec SVCParamKey
-> ReadPrec [SVCParamKey]
-> Read SVCParamKey
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS SVCParamKey
readsPrec :: Int -> ReadS SVCParamKey
$creadList :: ReadS [SVCParamKey]
readList :: ReadS [SVCParamKey]
$creadPrec :: ReadPrec SVCParamKey
readPrec :: ReadPrec SVCParamKey
$creadListPrec :: ReadPrec [SVCParamKey]
readListPrec :: ReadPrec [SVCParamKey]
Read)
pattern MANDATORY :: SVCParamKey ; pattern $mMANDATORY :: forall {r}. SVCParamKey -> ((# #) -> r) -> ((# #) -> r) -> r
$bMANDATORY :: SVCParamKey
MANDATORY = SVCParamKey 0
pattern ALPN :: SVCParamKey ; pattern $mALPN :: forall {r}. SVCParamKey -> ((# #) -> r) -> ((# #) -> r) -> r
$bALPN :: SVCParamKey
ALPN = SVCParamKey 1
pattern NODEFAULTALPN :: SVCParamKey ; pattern $mNODEFAULTALPN :: forall {r}. SVCParamKey -> ((# #) -> r) -> ((# #) -> r) -> r
$bNODEFAULTALPN :: SVCParamKey
NODEFAULTALPN = SVCParamKey 2
pattern PORT :: SVCParamKey ; pattern $mPORT :: forall {r}. SVCParamKey -> ((# #) -> r) -> ((# #) -> r) -> r
$bPORT :: SVCParamKey
PORT = SVCParamKey 3
pattern IPV4HINT :: SVCParamKey ; pattern $mIPV4HINT :: forall {r}. SVCParamKey -> ((# #) -> r) -> ((# #) -> r) -> r
$bIPV4HINT :: SVCParamKey
IPV4HINT = SVCParamKey 4
pattern ECH :: SVCParamKey ; pattern $mECH :: forall {r}. SVCParamKey -> ((# #) -> r) -> ((# #) -> r) -> r
$bECH :: SVCParamKey
ECH = SVCParamKey 5
pattern IPV6HINT :: SVCParamKey ; pattern $mIPV6HINT :: forall {r}. SVCParamKey -> ((# #) -> r) -> ((# #) -> r) -> r
$bIPV6HINT :: SVCParamKey
IPV6HINT = SVCParamKey 6
pattern DOHPATH :: SVCParamKey ; pattern $mDOHPATH :: forall {r}. SVCParamKey -> ((# #) -> r) -> ((# #) -> r) -> r
$bDOHPATH :: SVCParamKey
DOHPATH = SVCParamKey 7
pattern OHTTP :: SVCParamKey ; pattern $mOHTTP :: forall {r}. SVCParamKey -> ((# #) -> r) -> ((# #) -> r) -> r
$bOHTTP :: SVCParamKey
OHTTP = SVCParamKey 8
pattern TLSGROUPS :: SVCParamKey ; pattern $mTLSGROUPS :: forall {r}. SVCParamKey -> ((# #) -> r) -> ((# #) -> r) -> r
$bTLSGROUPS :: SVCParamKey
TLSGROUPS = SVCParamKey 9
pattern DOCPATH :: SVCParamKey ; pattern $mDOCPATH :: forall {r}. SVCParamKey -> ((# #) -> r) -> ((# #) -> r) -> r
$bDOCPATH :: SVCParamKey
DOCPATH = SVCParamKey 10
pattern PVD :: SVCParamKey ; pattern $mPVD :: forall {r}. SVCParamKey -> ((# #) -> r) -> ((# #) -> r) -> r
$bPVD :: SVCParamKey
PVD = SVCParamKey 11
instance Presentable SVCParamKey where
present :: SVCParamKey -> Builder -> Builder
present SVCParamKey
MANDATORY = forall a. Presentable a => a -> Builder -> Builder
present @String String
"mandatory"
present SVCParamKey
ALPN = forall a. Presentable a => a -> Builder -> Builder
present @String String
"alpn"
present SVCParamKey
NODEFAULTALPN = forall a. Presentable a => a -> Builder -> Builder
present @String String
"no-default-alpn"
present SVCParamKey
PORT = forall a. Presentable a => a -> Builder -> Builder
present @String String
"port"
present SVCParamKey
IPV4HINT = forall a. Presentable a => a -> Builder -> Builder
present @String String
"ipv4hint"
present SVCParamKey
ECH = forall a. Presentable a => a -> Builder -> Builder
present @String String
"ech"
present SVCParamKey
IPV6HINT = forall a. Presentable a => a -> Builder -> Builder
present @String String
"ipv6hint"
present SVCParamKey
DOHPATH = forall a. Presentable a => a -> Builder -> Builder
present @String String
"dohpath"
present SVCParamKey
OHTTP = forall a. Presentable a => a -> Builder -> Builder
present @String String
"ohttp"
present SVCParamKey
TLSGROUPS = forall a. Presentable a => a -> Builder -> Builder
present @String String
"tls-supported-groups"
present SVCParamKey
DOCPATH = forall a. Presentable a => a -> Builder -> Builder
present @String String
"docpath"
present SVCParamKey
PVD = forall a. Presentable a => a -> Builder -> Builder
present @String String
"pvd"
present (SVCParamKey Word16
n) = forall a. Presentable a => a -> Builder -> Builder
present @String String
"key" (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 Word16
n