decode method

DNSLookupOptionsRecordTypesEnum? decode(
  1. dynamic data, {
  2. bool allowNull = true,
})

Decodes a data to a DNSLookupOptionsRecordTypesEnum.

If allowNull is true and the data cannot be decoded successfully, then null is returned. However, if allowNull is false and the data cannot be decoded successfully, then an UnimplementedError is thrown.

The allowNull is very handy when an API changes and a new enum value is added or removed, and users are still using an old app with the old code.

Implementation

DNSLookupOptionsRecordTypesEnum? decode(dynamic data, {bool allowNull = true}) {
  if (data != null) {
    switch (data) {
      case r'A': return DNSLookupOptionsRecordTypesEnum.A;
      case r'NS': return DNSLookupOptionsRecordTypesEnum.NS;
      case r'MD': return DNSLookupOptionsRecordTypesEnum.MD;
      case r'MF': return DNSLookupOptionsRecordTypesEnum.MF;
      case r'CNAME': return DNSLookupOptionsRecordTypesEnum.CNAME;
      case r'SOA': return DNSLookupOptionsRecordTypesEnum.SOA;
      case r'MB': return DNSLookupOptionsRecordTypesEnum.MB;
      case r'MG': return DNSLookupOptionsRecordTypesEnum.MG;
      case r'MR': return DNSLookupOptionsRecordTypesEnum.MR;
      case r'NULL': return DNSLookupOptionsRecordTypesEnum.NULL;
      case r'WKS': return DNSLookupOptionsRecordTypesEnum.WKS;
      case r'PTR': return DNSLookupOptionsRecordTypesEnum.PTR;
      case r'HINFO': return DNSLookupOptionsRecordTypesEnum.HINFO;
      case r'MINFO': return DNSLookupOptionsRecordTypesEnum.MINFO;
      case r'MX': return DNSLookupOptionsRecordTypesEnum.MX;
      case r'TXT': return DNSLookupOptionsRecordTypesEnum.TXT;
      case r'RP': return DNSLookupOptionsRecordTypesEnum.RP;
      case r'AFSDB': return DNSLookupOptionsRecordTypesEnum.AFSDB;
      case r'X25': return DNSLookupOptionsRecordTypesEnum.x25;
      case r'ISDN': return DNSLookupOptionsRecordTypesEnum.ISDN;
      case r'RT': return DNSLookupOptionsRecordTypesEnum.RT;
      case r'NSAP': return DNSLookupOptionsRecordTypesEnum.NSAP;
      case r'NSAP_PTR': return DNSLookupOptionsRecordTypesEnum.NSAP_PTR;
      case r'SIG': return DNSLookupOptionsRecordTypesEnum.SIG;
      case r'KEY': return DNSLookupOptionsRecordTypesEnum.KEY;
      case r'PX': return DNSLookupOptionsRecordTypesEnum.PX;
      case r'GPOS': return DNSLookupOptionsRecordTypesEnum.GPOS;
      case r'AAAA': return DNSLookupOptionsRecordTypesEnum.AAAA;
      case r'LOC': return DNSLookupOptionsRecordTypesEnum.LOC;
      case r'NXT': return DNSLookupOptionsRecordTypesEnum.NXT;
      case r'EID': return DNSLookupOptionsRecordTypesEnum.EID;
      case r'NIMLOC': return DNSLookupOptionsRecordTypesEnum.NIMLOC;
      case r'SRV': return DNSLookupOptionsRecordTypesEnum.SRV;
      case r'ATMA': return DNSLookupOptionsRecordTypesEnum.ATMA;
      case r'NAPTR': return DNSLookupOptionsRecordTypesEnum.NAPTR;
      case r'KX': return DNSLookupOptionsRecordTypesEnum.KX;
      case r'CERT': return DNSLookupOptionsRecordTypesEnum.CERT;
      case r'A6': return DNSLookupOptionsRecordTypesEnum.a6;
      case r'DNAME': return DNSLookupOptionsRecordTypesEnum.DNAME;
      case r'SINK': return DNSLookupOptionsRecordTypesEnum.SINK;
      case r'OPT': return DNSLookupOptionsRecordTypesEnum.OPT;
      case r'APL': return DNSLookupOptionsRecordTypesEnum.APL;
      case r'DS': return DNSLookupOptionsRecordTypesEnum.DS;
      case r'SSHFP': return DNSLookupOptionsRecordTypesEnum.SSHFP;
      case r'IPSECKEY': return DNSLookupOptionsRecordTypesEnum.IPSECKEY;
      case r'RRSIG': return DNSLookupOptionsRecordTypesEnum.RRSIG;
      case r'NSEC': return DNSLookupOptionsRecordTypesEnum.NSEC;
      case r'DNSKEY': return DNSLookupOptionsRecordTypesEnum.DNSKEY;
      case r'DHCID': return DNSLookupOptionsRecordTypesEnum.DHCID;
      case r'NSEC3': return DNSLookupOptionsRecordTypesEnum.nSEC3;
      case r'NSEC3PARAM': return DNSLookupOptionsRecordTypesEnum.nSEC3PARAM;
      case r'TLSA': return DNSLookupOptionsRecordTypesEnum.TLSA;
      case r'SMIMEA': return DNSLookupOptionsRecordTypesEnum.SMIMEA;
      case r'HIP': return DNSLookupOptionsRecordTypesEnum.HIP;
      case r'NINFO': return DNSLookupOptionsRecordTypesEnum.NINFO;
      case r'RKEY': return DNSLookupOptionsRecordTypesEnum.RKEY;
      case r'TALINK': return DNSLookupOptionsRecordTypesEnum.TALINK;
      case r'CDS': return DNSLookupOptionsRecordTypesEnum.CDS;
      case r'CDNSKEY': return DNSLookupOptionsRecordTypesEnum.CDNSKEY;
      case r'OPENPGPKEY': return DNSLookupOptionsRecordTypesEnum.OPENPGPKEY;
      case r'CSYNC': return DNSLookupOptionsRecordTypesEnum.CSYNC;
      case r'ZONEMD': return DNSLookupOptionsRecordTypesEnum.ZONEMD;
      case r'SVCB': return DNSLookupOptionsRecordTypesEnum.SVCB;
      case r'HTTPS': return DNSLookupOptionsRecordTypesEnum.HTTPS;
      case r'SPF': return DNSLookupOptionsRecordTypesEnum.SPF;
      case r'UINFO': return DNSLookupOptionsRecordTypesEnum.UINFO;
      case r'UID': return DNSLookupOptionsRecordTypesEnum.UID;
      case r'GID': return DNSLookupOptionsRecordTypesEnum.GID;
      case r'UNSPEC': return DNSLookupOptionsRecordTypesEnum.UNSPEC;
      case r'NID': return DNSLookupOptionsRecordTypesEnum.NID;
      case r'L32': return DNSLookupOptionsRecordTypesEnum.l32;
      case r'L64': return DNSLookupOptionsRecordTypesEnum.l64;
      case r'LP': return DNSLookupOptionsRecordTypesEnum.LP;
      case r'EUI48': return DNSLookupOptionsRecordTypesEnum.eUI48;
      case r'EUI64': return DNSLookupOptionsRecordTypesEnum.eUI64;
      case r'TKEY': return DNSLookupOptionsRecordTypesEnum.TKEY;
      case r'TSIG': return DNSLookupOptionsRecordTypesEnum.TSIG;
      case r'IXFR': return DNSLookupOptionsRecordTypesEnum.IXFR;
      case r'AXFR': return DNSLookupOptionsRecordTypesEnum.AXFR;
      case r'MAILB': return DNSLookupOptionsRecordTypesEnum.MAILB;
      case r'MAILA': return DNSLookupOptionsRecordTypesEnum.MAILA;
      case r'ANY': return DNSLookupOptionsRecordTypesEnum.ANY;
      case r'URI': return DNSLookupOptionsRecordTypesEnum.URI;
      case r'CAA': return DNSLookupOptionsRecordTypesEnum.CAA;
      case r'AVC': return DNSLookupOptionsRecordTypesEnum.AVC;
      case r'DOA': return DNSLookupOptionsRecordTypesEnum.DOA;
      case r'AMTRELAY': return DNSLookupOptionsRecordTypesEnum.AMTRELAY;
      case r'TA': return DNSLookupOptionsRecordTypesEnum.TA;
      case r'DLV': return DNSLookupOptionsRecordTypesEnum.DLV;
      default:
        if (!allowNull) {
          throw ArgumentError('Unknown enum value to decode: $data');
        }
    }
  }
  return null;
}