dnsbase
Copyright(c) Viktor Dukhovni 2026
LicenseBSD-3-Clause
Maintainerietf-dane@dukhovni.org
Stabilityunstable
Safe HaskellNone
LanguageGHC2024

Net.DNSBase.RData.A

Description

The two address RR types parallel the variants of IP: T_a wraps the A RR's IPv4 payload, T_aaaa wraps the AAAA RR's IPv6 payload. Construct or destructure via the T_A / T_AAAA pattern constructors. When working with a polymorphic RData value that may be either, evalIP dispatches on whichever applies and lifts the address into the common IP sum.

Synopsis

Documentation

newtype T_a Source #

The A resource record (RFC 1035 section 3.4.1) — a 32-bit IPv4 address transmitted as four bytes in network order. The derived Ord is numeric IPv4 order, which agrees with canonical RR-content ordering (RFC 4034 section 6.2).

See T_aaaa for the IPv6-family parallel, and evalIP for a helper that handles either uniformly.

Constructors

T_A IPv4

IPv4 address

Instances

Instances details
Presentable T_a Source # 
Instance details

Defined in Net.DNSBase.RData.A

KnownRData T_a Source # 
Instance details

Defined in Net.DNSBase.RData.A

Associated Types

type RDataExtensionVal T_a 
Instance details

Defined in Net.DNSBase.RData.A

Methods

rdataExtensionVal :: forall b -> b ~ T_a => RDataExtensionVal T_a Source #

rdType :: forall b -> b ~ T_a => RRTYPE Source #

rdTypePres :: forall b -> b ~ T_a => Builder -> Builder Source #

rdDecode :: forall b -> b ~ T_a => RDataExtensionVal T_a -> Int -> SGet RData Source #

rdEncode :: T_a -> SPut s RData Source #

cnEncode :: T_a -> SPut s RData Source #

Enum T_a Source # 
Instance details

Defined in Net.DNSBase.RData.A

Methods

succ :: T_a -> T_a #

pred :: T_a -> T_a #

toEnum :: Int -> T_a #

fromEnum :: T_a -> Int #

enumFrom :: T_a -> [T_a] #

enumFromThen :: T_a -> T_a -> [T_a] #

enumFromTo :: T_a -> T_a -> [T_a] #

enumFromThenTo :: T_a -> T_a -> T_a -> [T_a] #

Show T_a Source # 
Instance details

Defined in Net.DNSBase.RData.A

Methods

showsPrec :: Int -> T_a -> ShowS #

show :: T_a -> String #

showList :: [T_a] -> ShowS #

Eq T_a Source # 
Instance details

Defined in Net.DNSBase.RData.A

Methods

(==) :: T_a -> T_a -> Bool #

(/=) :: T_a -> T_a -> Bool #

Ord T_a Source # 
Instance details

Defined in Net.DNSBase.RData.A

Methods

compare :: T_a -> T_a -> Ordering #

(<) :: T_a -> T_a -> Bool #

(<=) :: T_a -> T_a -> Bool #

(>) :: T_a -> T_a -> Bool #

(>=) :: T_a -> T_a -> Bool #

max :: T_a -> T_a -> T_a #

min :: T_a -> T_a -> T_a #

type RDataExtensionVal T_a Source # 
Instance details

Defined in Net.DNSBase.RData.A

newtype T_aaaa Source #

The AAAA resource record (RFC 3596 section 2.1) — a 128-bit IPv6 address transmitted as sixteen bytes in network order. The derived Ord is numeric IPv6 order, which agrees with canonical RR-content ordering (RFC 4034 section 6.2).

See T_a for the IPv4-family parallel, and evalIP for a helper that handles either uniformly.

Constructors

T_AAAA IPv6

IPv6 address

Instances

Instances details
Presentable T_aaaa Source # 
Instance details

Defined in Net.DNSBase.RData.A

KnownRData T_aaaa Source # 
Instance details

Defined in Net.DNSBase.RData.A

Associated Types

type RDataExtensionVal T_aaaa 
Instance details

Defined in Net.DNSBase.RData.A

Show T_aaaa Source # 
Instance details

Defined in Net.DNSBase.RData.A

Eq T_aaaa Source # 
Instance details

Defined in Net.DNSBase.RData.A

Methods

(==) :: T_aaaa -> T_aaaa -> Bool #

(/=) :: T_aaaa -> T_aaaa -> Bool #

Ord T_aaaa Source # 
Instance details

Defined in Net.DNSBase.RData.A

type RDataExtensionVal T_aaaa Source # 
Instance details

Defined in Net.DNSBase.RData.A

evalIP :: (IP -> a) -> RData -> Maybe a Source #

Apply the supplied function to whichever IP address an RData carries, lifting the T_a or T_aaaa payload into the unified IP sum. Returns Nothing for RData of any other type.

evalIP id (RData (T_A    ip)) == Just (IPv4 ip)
evalIP id (RData (T_AAAA ip)) == Just (IPv6 ip)