Module iana

Source
Expand description

IANA Definitions for DNS.

This module contains enums for parameters defined in IANA registries that are relevant for this crate.

All types defined hereunder follow the same basic structure. They are all enums with all well-defined values as variants. In addition they have an Int variant that contains a raw integer value. Since we cannot restrict that integer to only the undefined values, we generally allow the full set of possible values. We treat this correctly, meaning that the well-defined variant and the Int variant with the same integer value compare to equal.

There are two methods from_int() and to_int() to convert from and to raw integer values as well as implementations of the From trait for these. FromStr and Display are implemented to convert from the string codes to the values and back. All of these are essentially giant matches which may or may not be the smartest way to do this.

Types also implement parse() and scan() functions for creation from wire format and representation format, respectively, as well as a compose() method for composing into wire format data.

While each parameter type has a module of its own, they are all re-exported here. This is mostly so we can have associated types like FromStrError without having to resort to devilishly long names.

Re-exports§

pub use self::class::Class;
pub use self::digestalg::DigestAlg;
pub use self::exterr::ExtendedErrorCode;
pub use self::nsec3::Nsec3HashAlg;
pub use self::opcode::Opcode;
pub use self::opt::OptionCode;
pub use self::rcode::OptRcode;
pub use self::rcode::Rcode;
pub use self::rcode::TsigRcode;
pub use self::rtype::Rtype;
pub use self::secalg::SecAlg;
pub use self::svcb::SvcParamKey;

Modules§

class
DNS CLASSes.
digestalg
Delegation signer digest algorithm numbers.
exterr
Extended DNS Error
nsec3
NSEC3 hash algorithms.
opcode
DNS OpCodes.
opt
DNS EDNS0 pption codes.
rcode
DNS response codes and extended response codes.
rtype
Resource Record (RR) TYPEs
secalg
DNSSEC Algorithm Numbers
svcb
Service Binding (SVCB) Parameter Registry