var searchIndex = {}; searchIndex["trust_dns"] = {"doc":"Trust-DNS is intended to be a fully compliant domain name server and client library.","items":[[5,"version","trust_dns","",null,{"inputs":[],"output":{"name":"str"}}],[0,"error","","All defined errors for Trust-DNS",null,null],[3,"DecodeError","trust_dns::error","",null,null],[12,"0","","",0,null],[12,"1","","",0,null],[3,"EncodeError","","",null,null],[12,"0","","",1,null],[12,"1","","",1,null],[3,"ClientError","","",null,null],[12,"0","","",2,null],[12,"1","","",2,null],[3,"LexerError","","",null,null],[12,"0","","",3,null],[12,"1","","",3,null],[3,"ParseError","","",null,null],[12,"0","","",4,null],[12,"1","","",4,null],[3,"PersistenceError","","",null,null],[12,"0","","",5,null],[12,"1","","",5,null],[3,"ConfigError","","",null,null],[12,"0","","",6,null],[12,"1","","",6,null],[4,"DecodeErrorKind","","",null,null],[13,"Msg","","",7,null],[13,"UTF8","","",7,null],[13,"SSL","","",7,null],[13,"Message","","",7,null],[13,"InvalidToolchainName","","",7,null],[13,"UnknownDnsClassValue","","",7,null],[13,"UnknownDnsClassStr","","",7,null],[13,"UnknownRecordTypeValue","","",7,null],[13,"UnknownRecordTypeStr","","",7,null],[13,"UnknownAlgorithmTypeValue","","",7,null],[13,"EdnsNameNotRoot","","",7,null],[13,"DnsKeyProtocolNot3","","",7,null],[13,"UnrecognizedNsec3Flags","","",7,null],[13,"UnrecognizedLabelCode","","",7,null],[13,"IncorrectRDataLengthRead","","",7,null],[4,"EncodeErrorKind","","",null,null],[13,"Msg","","",8,null],[13,"CharacterDataTooLong","","",8,null],[13,"LabelBytesTooLong","","",8,null],[13,"DomainNameTooLong","","",8,null],[4,"ClientErrorKind","","",null,null],[13,"Msg","","",9,null],[13,"Decode","","",9,null],[13,"Encode","","",9,null],[13,"Io","","",9,null],[13,"Message","","",9,null],[13,"NotAllBytesSent","","",9,null],[13,"NotAllBytesReceived","","",9,null],[13,"IncorrectMessageId","","",9,null],[13,"ErrorResponse","","",9,null],[13,"NoRRSIG","","",9,null],[13,"NoDNSKEY","","",9,null],[13,"NoDS","","",9,null],[13,"NoSOARecord","","",9,null],[13,"SecNxDomain","","",9,null],[4,"LexerErrorKind","","",null,null],[13,"Msg","","",10,null],[13,"FromUtf8","","",10,null],[13,"ParseInt","","",10,null],[13,"EscapedCharOutsideCharData","","",10,null],[13,"IllegalCharacter","","",10,null],[13,"UnrecognizedChar","","",10,null],[13,"BadEscapedData","","",10,null],[13,"UnrecognizedOctet","","",10,null],[13,"UnclosedQuotedString","","",10,null],[13,"UnclosedList","","",10,null],[13,"UnrecognizedDollar","","",10,null],[13,"EOF","","",10,null],[13,"IllegalState","","",10,null],[4,"ParseErrorKind","","",null,null],[13,"Msg","","",11,null],[13,"Decode","","",11,null],[13,"Lexer","","",11,null],[13,"Io","","",11,null],[13,"ParseInt","","",11,null],[13,"AddrParse","","",11,null],[13,"Message","","",11,null],[13,"UnexpectedToken","","",11,null],[13,"MissingToken","","",11,null],[13,"CharToIntError","","",11,null],[13,"ParseTimeError","","",11,null],[4,"PersistenceErrorKind","","",null,null],[13,"Msg","","",12,null],[13,"Decode","","",12,null],[13,"Encode","","",12,null],[13,"Sqlite","","",12,null],[13,"WrongInsertCount","","",12,null],[13,"RecoveryError","","",12,null],[4,"ConfigErrorKind","","",null,null],[13,"Msg","","",13,null],[13,"Io","","",13,null],[13,"Parser","","",13,null],[13,"Decode","","",13,null],[13,"VecParserError","","",13,null],[11,"fmt","","",0,null],[11,"kind","","",0,null],[11,"into_kind","","",0,null],[11,"iter","","",0,null],[11,"backtrace","","",0,null],[11,"description","","",0,null],[11,"cause","","",0,null],[11,"fmt","","",0,null],[11,"from","","",0,{"inputs":[{"name":"fromutf8error"}],"output":{"name":"self"}}],[11,"from","","",0,{"inputs":[{"name":"sslerror"}],"output":{"name":"self"}}],[11,"from","","",0,{"inputs":[{"name":"errorkind"}],"output":{"name":"self"}}],[11,"from","","",0,{"inputs":[{"name":"str"}],"output":{"name":"self"}}],[11,"from","","",0,{"inputs":[{"name":"string"}],"output":{"name":"self"}}],[11,"fmt","","",7,null],[11,"fmt","","",7,null],[11,"description","","",7,null],[11,"from","","",7,{"inputs":[{"name":"str"}],"output":{"name":"self"}}],[11,"from","","",7,{"inputs":[{"name":"string"}],"output":{"name":"self"}}],[11,"fmt","","",1,null],[11,"kind","","",1,null],[11,"into_kind","","",1,null],[11,"iter","","",1,null],[11,"backtrace","","",1,null],[11,"description","","",1,null],[11,"cause","","",1,null],[11,"fmt","","",1,null],[11,"from","","",1,{"inputs":[{"name":"errorkind"}],"output":{"name":"self"}}],[11,"from","","",1,{"inputs":[{"name":"str"}],"output":{"name":"self"}}],[11,"from","","",1,{"inputs":[{"name":"string"}],"output":{"name":"self"}}],[11,"fmt","","",8,null],[11,"fmt","","",8,null],[11,"description","","",8,null],[11,"from","","",8,{"inputs":[{"name":"str"}],"output":{"name":"self"}}],[11,"from","","",8,{"inputs":[{"name":"string"}],"output":{"name":"self"}}],[11,"fmt","","",2,null],[11,"kind","","",2,null],[11,"into_kind","","",2,null],[11,"iter","","",2,null],[11,"backtrace","","",2,null],[11,"description","","",2,null],[11,"cause","","",2,null],[11,"fmt","","",2,null],[11,"from","","",2,{"inputs":[{"name":"error"}],"output":{"name":"self"}}],[11,"from","","",2,{"inputs":[{"name":"error"}],"output":{"name":"self"}}],[11,"from","","",2,{"inputs":[{"name":"ioerror"}],"output":{"name":"self"}}],[11,"from","","",2,{"inputs":[{"name":"errorkind"}],"output":{"name":"self"}}],[11,"from","","",2,{"inputs":[{"name":"str"}],"output":{"name":"self"}}],[11,"from","","",2,{"inputs":[{"name":"string"}],"output":{"name":"self"}}],[11,"fmt","","",9,null],[11,"fmt","","",9,null],[11,"description","","",9,null],[11,"from","","",9,{"inputs":[{"name":"errorkind"}],"output":{"name":"self"}}],[11,"from","","",9,{"inputs":[{"name":"errorkind"}],"output":{"name":"self"}}],[11,"from","","",9,{"inputs":[{"name":"str"}],"output":{"name":"self"}}],[11,"from","","",9,{"inputs":[{"name":"string"}],"output":{"name":"self"}}],[11,"fmt","","",3,null],[11,"kind","","",3,null],[11,"into_kind","","",3,null],[11,"iter","","",3,null],[11,"backtrace","","",3,null],[11,"description","","",3,null],[11,"cause","","",3,null],[11,"fmt","","",3,null],[11,"from","","",3,{"inputs":[{"name":"fromutf8error"}],"output":{"name":"self"}}],[11,"from","","",3,{"inputs":[{"name":"parseinterror"}],"output":{"name":"self"}}],[11,"from","","",3,{"inputs":[{"name":"errorkind"}],"output":{"name":"self"}}],[11,"from","","",3,{"inputs":[{"name":"str"}],"output":{"name":"self"}}],[11,"from","","",3,{"inputs":[{"name":"string"}],"output":{"name":"self"}}],[11,"fmt","","",10,null],[11,"fmt","","",10,null],[11,"description","","",10,null],[11,"from","","",10,{"inputs":[{"name":"str"}],"output":{"name":"self"}}],[11,"from","","",10,{"inputs":[{"name":"string"}],"output":{"name":"self"}}],[11,"fmt","","",4,null],[11,"kind","","",4,null],[11,"into_kind","","",4,null],[11,"iter","","",4,null],[11,"backtrace","","",4,null],[11,"description","","",4,null],[11,"cause","","",4,null],[11,"fmt","","",4,null],[11,"from","","",4,{"inputs":[{"name":"error"}],"output":{"name":"self"}}],[11,"from","","",4,{"inputs":[{"name":"error"}],"output":{"name":"self"}}],[11,"from","","",4,{"inputs":[{"name":"error"}],"output":{"name":"self"}}],[11,"from","","",4,{"inputs":[{"name":"parseinterror"}],"output":{"name":"self"}}],[11,"from","","",4,{"inputs":[{"name":"addrparseerror"}],"output":{"name":"self"}}],[11,"from","","",4,{"inputs":[{"name":"errorkind"}],"output":{"name":"self"}}],[11,"from","","",4,{"inputs":[{"name":"str"}],"output":{"name":"self"}}],[11,"from","","",4,{"inputs":[{"name":"string"}],"output":{"name":"self"}}],[11,"fmt","","",11,null],[11,"fmt","","",11,null],[11,"description","","",11,null],[11,"from","","",11,{"inputs":[{"name":"errorkind"}],"output":{"name":"self"}}],[11,"from","","",11,{"inputs":[{"name":"errorkind"}],"output":{"name":"self"}}],[11,"from","","",11,{"inputs":[{"name":"str"}],"output":{"name":"self"}}],[11,"from","","",11,{"inputs":[{"name":"string"}],"output":{"name":"self"}}],[11,"fmt","","",5,null],[11,"kind","","",5,null],[11,"into_kind","","",5,null],[11,"iter","","",5,null],[11,"backtrace","","",5,null],[11,"description","","",5,null],[11,"cause","","",5,null],[11,"fmt","","",5,null],[11,"from","","",5,{"inputs":[{"name":"error"}],"output":{"name":"self"}}],[11,"from","","",5,{"inputs":[{"name":"error"}],"output":{"name":"self"}}],[11,"from","","",5,{"inputs":[{"name":"error"}],"output":{"name":"self"}}],[11,"from","","",5,{"inputs":[{"name":"errorkind"}],"output":{"name":"self"}}],[11,"from","","",5,{"inputs":[{"name":"str"}],"output":{"name":"self"}}],[11,"from","","",5,{"inputs":[{"name":"string"}],"output":{"name":"self"}}],[11,"fmt","","",12,null],[11,"fmt","","",12,null],[11,"description","","",12,null],[11,"from","","",12,{"inputs":[{"name":"errorkind"}],"output":{"name":"self"}}],[11,"from","","",12,{"inputs":[{"name":"errorkind"}],"output":{"name":"self"}}],[11,"from","","",12,{"inputs":[{"name":"str"}],"output":{"name":"self"}}],[11,"from","","",12,{"inputs":[{"name":"string"}],"output":{"name":"self"}}],[11,"fmt","","",6,null],[11,"kind","","",6,null],[11,"into_kind","","",6,null],[11,"iter","","",6,null],[11,"backtrace","","",6,null],[11,"description","","",6,null],[11,"cause","","",6,null],[11,"fmt","","",6,null],[11,"from","","",6,{"inputs":[{"name":"error"}],"output":{"name":"self"}}],[11,"from","","",6,{"inputs":[{"name":"parsererror"}],"output":{"name":"self"}}],[11,"from","","",6,{"inputs":[{"name":"decodeerror"}],"output":{"name":"self"}}],[11,"from","","",6,{"inputs":[{"name":"errorkind"}],"output":{"name":"self"}}],[11,"from","","",6,{"inputs":[{"name":"str"}],"output":{"name":"self"}}],[11,"from","","",6,{"inputs":[{"name":"string"}],"output":{"name":"self"}}],[11,"fmt","","",13,null],[11,"fmt","","",13,null],[11,"description","","",13,null],[11,"from","","",13,{"inputs":[{"name":"str"}],"output":{"name":"self"}}],[11,"from","","",13,{"inputs":[{"name":"string"}],"output":{"name":"self"}}],[6,"DecodeResult","","",null,null],[6,"EncodeResult","","",null,null],[6,"ClientResult","","",null,null],[6,"LexerResult","","",null,null],[6,"ParseResult","","",null,null],[6,"PersistenceResult","","",null,null],[6,"ConfigResult","","",null,null],[8,"DecodeChainErr","","",null,null],[10,"chain_err","","",14,null],[8,"EncodeChainErr","","",null,null],[10,"chain_err","","",15,null],[8,"ClientChainErr","","",null,null],[10,"chain_err","","",16,null],[8,"LexerChainErr","","",null,null],[10,"chain_err","","",17,null],[8,"ParseChainErr","","",null,null],[10,"chain_err","","",18,null],[8,"PersistenceChainErr","","",null,null],[10,"chain_err","","",19,null],[8,"ConfigChainErr","","",null,null],[10,"chain_err","","",20,null],[0,"logger","trust_dns","",null,null],[3,"TrustDnsLogger","trust_dns::logger","",null,null],[11,"new","","",21,{"inputs":[{"name":"loglevel"}],"output":{"name":"trustdnslogger"}}],[11,"init","","",21,null],[11,"enable_logging","","",21,{"inputs":[{"name":"loglevel"}],"output":null}],[11,"enabled","","",21,null],[11,"log","","",21,null],[0,"rr","trust_dns","Resource record related components, e.g. `Name` aka label, `Record`, `RData`, ...",null,null],[0,"record_type","trust_dns::rr","record type definitions",null,null],[4,"RecordType","trust_dns::rr::record_type","",null,null],[13,"A","","",22,null],[13,"AAAA","","",22,null],[13,"ANY","","",22,null],[13,"AXFR","","",22,null],[13,"CNAME","","",22,null],[13,"DNSKEY","","",22,null],[13,"DS","","",22,null],[13,"IXFR","","",22,null],[13,"KEY","","",22,null],[13,"MX","","",22,null],[13,"NS","","",22,null],[13,"NULL","","",22,null],[13,"NSEC","","",22,null],[13,"NSEC3","","",22,null],[13,"NSEC3PARAM","","",22,null],[13,"OPT","","",22,null],[13,"PTR","","",22,null],[13,"RRSIG","","",22,null],[13,"SIG","","",22,null],[13,"SOA","","",22,null],[13,"SRV","","",22,null],[13,"TXT","","",22,null],[11,"clone","","",22,null],[11,"hash","","",22,null],[11,"eq","","",22,null],[11,"fmt","","",22,null],[11,"from_str","","Convert from RecordType to &str",22,{"inputs":[{"name":"str"}],"output":{"name":"decoderesult"}}],[11,"from_u16","","Convert from RecordType to &str",22,{"inputs":[{"name":"u16"}],"output":{"name":"decoderesult"}}],[11,"read","","",22,{"inputs":[{"name":"bindecoder"}],"output":{"name":"decoderesult"}}],[11,"emit","","",22,null],[11,"partial_cmp","","",22,null],[11,"cmp","","",22,null],[0,"dns_class","trust_dns::rr","class of DNS operations, in general always IN for internet",null,null],[4,"DNSClass","trust_dns::rr::dns_class","",null,null],[13,"IN","","",23,null],[13,"CH","","",23,null],[13,"HS","","",23,null],[13,"NONE","","",23,null],[13,"ANY","","",23,null],[13,"OPT","","",23,null],[11,"clone","","",23,null],[11,"hash","","",23,null],[11,"eq","","",23,null],[11,"ne","","",23,null],[11,"fmt","","",23,null],[11,"from_str","","Convert from &str to DNSClass",23,{"inputs":[{"name":"str"}],"output":{"name":"decoderesult"}}],[11,"from_u16","","Convert from u16 to DNSClass",23,{"inputs":[{"name":"u16"}],"output":{"name":"decoderesult"}}],[11,"for_opt","","",23,{"inputs":[{"name":"u16"}],"output":{"name":"self"}}],[11,"read","","",23,{"inputs":[{"name":"bindecoder"}],"output":{"name":"decoderesult"}}],[11,"emit","","",23,null],[11,"partial_cmp","","",23,null],[11,"cmp","","",23,null],[0,"resource","trust_dns::rr","resource record implementation",null,null],[3,"Record","trust_dns::rr::resource","Resource records are storage value in DNS, into which all key/value pair data is stored.",null,null],[11,"clone","","",24,null],[11,"fmt","","",24,null],[11,"cmp","","",24,null],[11,"new","","Creates a default record, use the setters to build a more useful object.",24,{"inputs":[],"output":{"name":"record"}}],[11,"with","","Create a record with the specified initial values.",24,{"inputs":[{"name":"name"},{"name":"recordtype"},{"name":"u32"}],"output":{"name":"record"}}],[11,"name","","```text\nNAME a domain name to which this resource record pertains.\n```",24,null],[11,"add_name","","",24,null],[11,"rr_type","","```text\nTYPE two octets containing one of the RR type codes. This\n field specifies the meaning of the data in the RDATA\n field.\n```",24,null],[11,"dns_class","","```text\nCLASS two octets which specify the class of the data in the\n RDATA field.\n```",24,null],[11,"ttl","","```text\nTTL a 32 bit unsigned integer that specifies the time\n interval (in seconds) that the resource record may be\n cached before it should be discarded. Zero values are\n interpreted to mean that the RR can only be used for the\n transaction in progress, and should not be cached.\n```",24,null],[11,"rdata","","```text\nRDATA a variable length string of octets that describes the\n resource. The format of this information varies\n according to the TYPE and CLASS of the resource record.\n For example, the if the TYPE is A and the CLASS is IN,\n the RDATA field is a 4 octet ARPA Internet address.\n```",24,null],[11,"get_name","","",24,null],[11,"get_rr_type","","",24,null],[11,"get_dns_class","","",24,null],[11,"get_ttl","","",24,null],[11,"get_rdata","","",24,null],[11,"get_rdata_mut","","",24,null],[11,"read","","parse a resource record line example:\nWARNING: the record_bytes is 100% consumed and destroyed in this parsing process",24,{"inputs":[{"name":"bindecoder"}],"output":{"name":"decoderesult"}}],[11,"emit","","",24,null],[11,"eq","","Equality or records, as defined by\n [RFC 2136](https://tools.ietf.org/html/rfc2136), DNS Update, April 1997",24,null],[11,"ne","","",24,null],[11,"partial_cmp","","Canonical ordering as defined by\n [RFC 4034](https://tools.ietf.org/html/rfc4034#section-6), DNSSEC Resource Records, March 2005",24,null],[0,"record_data","trust_dns::rr","record data enum variants",null,null],[4,"RData","trust_dns::rr::record_data","Record data enum variants",null,null],[13,"A","","",25,null],[13,"AAAA","","",25,null],[13,"CNAME","","",25,null],[13,"DNSKEY","","",25,null],[13,"DS","","",25,null],[13,"KEY","","",25,null],[13,"MX","","",25,null],[13,"NULL","","",25,null],[13,"NS","","",25,null],[13,"NSEC","","",25,null],[13,"NSEC3","","",25,null],[13,"NSEC3PARAM","","",25,null],[13,"OPT","","",25,null],[13,"PTR","","",25,null],[13,"SIG","","",25,null],[13,"SOA","","",25,null],[13,"SRV","","",25,null],[13,"TXT","","",25,null],[11,"clone","","",25,null],[11,"eq","","",25,null],[11,"ne","","",25,null],[11,"fmt","","",25,null],[11,"parse","","",25,{"inputs":[{"name":"recordtype"},{"name":"vec"},{"name":"option"}],"output":{"name":"parseresult"}}],[11,"read","","",25,{"inputs":[{"name":"bindecoder"},{"name":"recordtype"},{"name":"u16"}],"output":{"name":"decoderesult"}}],[11,"emit","","[RFC 4034](https://tools.ietf.org/html/rfc4034#section-6), DNSSEC Resource Records, March 2005",25,null],[11,"partial_cmp","","",25,null],[11,"cmp","","",25,null],[0,"domain","trust_dns::rr","domain name, aka labels, implementaton",null,null],[3,"Name","trust_dns::rr::domain","TODO: all Names should be stored in a global "intern" space, and then everything that uses\n them should be through references. As a workaround the Strings are all Rc as well as the array\nTODO: Currently this probably doesn't support binary names, it would be nice to do that.",null,null],[11,"clone","","",26,null],[11,"fmt","","",26,null],[11,"new","","",26,{"inputs":[],"output":{"name":"self"}}],[11,"root","","",26,{"inputs":[],"output":{"name":"self"}}],[11,"is_root","","",26,null],[11,"label","","inline builder",26,null],[11,"with_labels","","for mutating over time",26,{"inputs":[{"name":"vec"}],"output":{"name":"self"}}],[11,"prepend_label","","prepend the String to the label",26,null],[11,"add_label","","appends the String to this label at the end",26,null],[11,"append","","appends the other to this name",26,null],[11,"to_lowercase","","Creates a new Name with all labels lowercased",26,null],[11,"base_name","","Trims off the first part of the name, to help with searching for the domain piece",26,null],[11,"trim_to","","Trims to the number of labels specified",26,null],[11,"zone_of","","returns true if the name components of self are all present at the end of name",26,null],[11,"num_labels","","",26,null],[11,"len","","returns the length in bytes of the labels. '.' counts as 1",26,null],[11,"parse","","",26,{"inputs":[{"name":"str"},{"name":"option"}],"output":{"name":"parseresult"}}],[11,"emit_as_canonical","","",26,null],[11,"emit_with_lowercase","","",26,null],[11,"cmp_with_case","","compares with the other label, ignoring case",26,null],[11,"hash","","",26,null],[11,"eq","","",26,null],[11,"read","","parses the chain of labels\n this has a max of 255 octets, with each label being less than 63.\n all names will be stored lowercase internally.\nThis will consume the portions of the Vec which it is reading...",26,{"inputs":[{"name":"bindecoder"}],"output":{"name":"decoderesult"}}],[11,"emit","","",26,null],[11,"fmt","","",26,null],[11,"index","","",26,null],[11,"partial_cmp","","",26,null],[11,"cmp","","RFC 4034 DNSSEC Resource Records March 2005",26,null],[0,"rdata","trust_dns::rr","All record data structures and related serialization methods",null,null],[0,"a","trust_dns::rr::rdata","IPv4 address record data",null,null],[5,"read","trust_dns::rr::rdata::a","",null,{"inputs":[{"name":"bindecoder"}],"output":{"name":"decoderesult"}}],[5,"emit","","",null,{"inputs":[{"name":"binencoder"},{"name":"ipv4addr"}],"output":{"name":"encoderesult"}}],[5,"parse","","",null,{"inputs":[{"name":"vec"}],"output":{"name":"parseresult"}}],[0,"aaaa","trust_dns::rr::rdata","IPv6 address record data",null,null],[5,"read","trust_dns::rr::rdata::aaaa","",null,{"inputs":[{"name":"bindecoder"}],"output":{"name":"decoderesult"}}],[5,"emit","","",null,{"inputs":[{"name":"binencoder"},{"name":"ipv6addr"}],"output":{"name":"encoderesult"}}],[5,"parse","","",null,{"inputs":[{"name":"vec"}],"output":{"name":"parseresult"}}],[0,"ds","trust_dns::rr::rdata","pointer record from parent zone to child zone for dnskey proof",null,null],[3,"DS","trust_dns::rr::rdata::ds","[RFC 4034, DNSSEC Resource Records, March 2005](https://tools.ietf.org/html/rfc4034#section-5)",null,null],[5,"read","","",null,{"inputs":[{"name":"bindecoder"},{"name":"u16"}],"output":{"name":"decoderesult"}}],[5,"emit","","",null,{"inputs":[{"name":"binencoder"},{"name":"ds"}],"output":{"name":"encoderesult"}}],[11,"clone","","",27,null],[11,"hash","","",27,null],[11,"eq","","",27,null],[11,"ne","","",27,null],[11,"fmt","","",27,null],[11,"new","","",27,{"inputs":[{"name":"u16"},{"name":"algorithm"},{"name":"digesttype"},{"name":"vec"}],"output":{"name":"ds"}}],[11,"get_key_tag","","[RFC 4034, DNSSEC Resource Records, March 2005](https://tools.ietf.org/html/rfc4034#section-5.1.1)",27,null],[11,"get_algorithm","","[RFC 4034, DNSSEC Resource Records, March 2005](https://tools.ietf.org/html/rfc4034#section-5.1.1)",27,null],[11,"get_digest_type","","[RFC 4034, DNSSEC Resource Records, March 2005](https://tools.ietf.org/html/rfc4034#section-5.1.1)",27,null],[11,"get_digest","","[RFC 4034, DNSSEC Resource Records, March 2005](https://tools.ietf.org/html/rfc4034#section-5.1.1)",27,null],[0,"dnskey","trust_dns::rr::rdata","public key record data for signing zone records",null,null],[3,"DNSKEY","trust_dns::rr::rdata::dnskey","[RFC 4034](https://tools.ietf.org/html/rfc4034#section-2), DNSSEC Resource Records, March 2005",null,null],[5,"read","","",null,{"inputs":[{"name":"bindecoder"},{"name":"u16"}],"output":{"name":"decoderesult"}}],[5,"emit","","",null,{"inputs":[{"name":"binencoder"},{"name":"dnskey"}],"output":{"name":"encoderesult"}}],[11,"clone","","",28,null],[11,"hash","","",28,null],[11,"eq","","",28,null],[11,"ne","","",28,null],[11,"fmt","","",28,null],[11,"new","","",28,{"inputs":[{"name":"bool"},{"name":"bool"},{"name":"bool"},{"name":"algorithm"},{"name":"vec"}],"output":{"name":"dnskey"}}],[11,"is_zone_key","","[RFC 4034, DNSSEC Resource Records, March 2005](https://tools.ietf.org/html/rfc4034#section-2.1.1)",28,null],[11,"is_secure_entry_point","","[RFC 4034, DNSSEC Resource Records, March 2005](https://tools.ietf.org/html/rfc4034#section-2.1.1)",28,null],[11,"is_revoke","","[RFC 5011, Trust Anchor Update, September 2007](https://tools.ietf.org/html/rfc5011#section-3)",28,null],[11,"get_algorithm","","[RFC 4034, DNSSEC Resource Records, March 2005](https://tools.ietf.org/html/rfc4034#section-2.1.3)",28,null],[11,"get_public_key","","[RFC 4034, DNSSEC Resource Records, March 2005](https://tools.ietf.org/html/rfc4034#section-2.1.4)",28,null],[0,"mx","trust_dns::rr::rdata","mail exchange, email, record",null,null],[3,"MX","trust_dns::rr::rdata::mx","[RFC 1035, DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION, November 1987](https://tools.ietf.org/html/rfc1035)",null,null],[5,"read","","",null,{"inputs":[{"name":"bindecoder"}],"output":{"name":"decoderesult"}}],[5,"emit","","[RFC 4034](https://tools.ietf.org/html/rfc4034#section-6), DNSSEC Resource Records, March 2005",null,{"inputs":[{"name":"binencoder"},{"name":"mx"}],"output":{"name":"encoderesult"}}],[5,"parse","","",null,{"inputs":[{"name":"vec"},{"name":"option"}],"output":{"name":"parseresult"}}],[11,"clone","","",29,null],[11,"hash","","",29,null],[11,"eq","","",29,null],[11,"ne","","",29,null],[11,"fmt","","",29,null],[11,"new","","",29,{"inputs":[{"name":"u16"},{"name":"name"}],"output":{"name":"mx"}}],[11,"get_preference","","[RFC 1035, DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION, November 1987](https://tools.ietf.org/html/rfc1035)",29,null],[11,"get_exchange","","[RFC 1035, DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION, November 1987](https://tools.ietf.org/html/rfc1035)",29,null],[0,"name","trust_dns::rr::rdata","Record type for all cname like records.",null,null],[5,"read","trust_dns::rr::rdata::name","",null,{"inputs":[{"name":"bindecoder"}],"output":{"name":"decoderesult"}}],[5,"emit","","[RFC 4034](https://tools.ietf.org/html/rfc4034#section-6), DNSSEC Resource Records, March 2005",null,{"inputs":[{"name":"binencoder"},{"name":"name"}],"output":{"name":"encoderesult"}}],[5,"parse","","",null,{"inputs":[{"name":"vec"},{"name":"option"}],"output":{"name":"parseresult"}}],[0,"null","trust_dns::rr::rdata","null record type, generally not used except as an internal tool for representing null data",null,null],[3,"NULL","trust_dns::rr::rdata::null","[RFC 1035, DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION, November 1987](https://tools.ietf.org/html/rfc1035)",null,null],[5,"read","","",null,{"inputs":[{"name":"bindecoder"},{"name":"u16"}],"output":{"name":"decoderesult"}}],[5,"emit","","",null,{"inputs":[{"name":"binencoder"},{"name":"null"}],"output":{"name":"encoderesult"}}],[5,"parse","","",null,{"inputs":[{"name":"vec"}],"output":{"name":"parseresult"}}],[11,"clone","","",30,null],[11,"hash","","",30,null],[11,"eq","","",30,null],[11,"ne","","",30,null],[11,"fmt","","",30,null],[11,"new","","",30,{"inputs":[],"output":{"name":"null"}}],[11,"with","","",30,{"inputs":[{"name":"vec"}],"output":{"name":"null"}}],[11,"get_anything","","",30,null],[0,"nsec","trust_dns::rr::rdata","negative cache proof for non-existence",null,null],[3,"NSEC","trust_dns::rr::rdata::nsec","[RFC 4034, DNSSEC Resource Records, March 2005](https://tools.ietf.org/html/rfc4034#section-4)",null,null],[5,"read","","",null,{"inputs":[{"name":"bindecoder"},{"name":"u16"}],"output":{"name":"decoderesult"}}],[5,"emit","","[RFC 6840](https://tools.ietf.org/html/rfc6840#section-6)",null,{"inputs":[{"name":"binencoder"},{"name":"nsec"}],"output":{"name":"encoderesult"}}],[11,"clone","","",31,null],[11,"hash","","",31,null],[11,"eq","","",31,null],[11,"ne","","",31,null],[11,"fmt","","",31,null],[11,"new","","",31,{"inputs":[{"name":"name"},{"name":"vec"}],"output":{"name":"nsec"}}],[11,"get_next_domain_name","","[RFC 4034, DNSSEC Resource Records, March 2005](https://tools.ietf.org/html/rfc4034#section-4.1.1)",31,null],[11,"get_type_bit_maps","","[RFC 4034, DNSSEC Resource Records, March 2005](https://tools.ietf.org/html/rfc4034#section-4.1.2)",31,null],[0,"nsec3","trust_dns::rr::rdata","hashed negative cache proof for non-existence",null,null],[3,"NSEC3","trust_dns::rr::rdata::nsec3","[RFC 5155, NSEC3, March 2008](https://tools.ietf.org/html/rfc5155#section-3)",null,null],[5,"read","","",null,{"inputs":[{"name":"bindecoder"},{"name":"u16"}],"output":{"name":"decoderesult"}}],[5,"decode_type_bit_maps","","",null,{"inputs":[{"name":"bindecoder"},{"name":"usize"}],"output":{"name":"decoderesult"}}],[5,"emit","","",null,{"inputs":[{"name":"binencoder"},{"name":"nsec3"}],"output":{"name":"encoderesult"}}],[5,"encode_bit_maps","","",null,null],[11,"clone","","",32,null],[11,"hash","","",32,null],[11,"eq","","",32,null],[11,"ne","","",32,null],[11,"fmt","","",32,null],[11,"new","","",32,{"inputs":[{"name":"nsec3hashalgorithm"},{"name":"bool"},{"name":"u16"},{"name":"vec"},{"name":"vec"},{"name":"vec"}],"output":{"name":"nsec3"}}],[11,"get_hash_algorithm","","[RFC 5155, NSEC3, March 2008](https://tools.ietf.org/html/rfc5155#section-3.1.1)",32,null],[11,"is_opt_out","","[RFC 5155, NSEC3, March 2008](https://tools.ietf.org/html/rfc5155#section-3.1.2)",32,null],[11,"get_iterations","","[RFC 5155, NSEC3, March 2008](https://tools.ietf.org/html/rfc5155#section-3.1.3)",32,null],[11,"get_salt","","[RFC 5155, NSEC3, March 2008](https://tools.ietf.org/html/rfc5155#section-3.1.5)",32,null],[11,"get_next_hashed_owner_name","","[RFC 5155, NSEC3, March 2008](https://tools.ietf.org/html/rfc5155#section-3.1.7)",32,null],[11,"get_type_bit_maps","","[RFC 5155, NSEC3, March 2008](https://tools.ietf.org/html/rfc5155#section-3.1.8)",32,null],[0,"nsec3param","trust_dns::rr::rdata","parameters used for the nsec3 hash method",null,null],[3,"NSEC3PARAM","trust_dns::rr::rdata::nsec3param","[RFC 5155, NSEC3, March 2008](https://tools.ietf.org/html/rfc5155#section-4)",null,null],[5,"read","","",null,{"inputs":[{"name":"bindecoder"}],"output":{"name":"decoderesult"}}],[5,"emit","","",null,{"inputs":[{"name":"binencoder"},{"name":"nsec3param"}],"output":{"name":"encoderesult"}}],[11,"clone","","",33,null],[11,"hash","","",33,null],[11,"eq","","",33,null],[11,"ne","","",33,null],[11,"fmt","","",33,null],[11,"new","","",33,{"inputs":[{"name":"nsec3hashalgorithm"},{"name":"bool"},{"name":"u16"},{"name":"vec"}],"output":{"name":"nsec3param"}}],[11,"get_hash_algorithm","","[RFC 5155, NSEC3, March 2008](https://tools.ietf.org/html/rfc5155#section-4.1.1)",33,null],[11,"is_opt_out","","[RFC 5155, NSEC3, March 2008](https://tools.ietf.org/html/rfc5155#section-4.1.2)",33,null],[11,"get_iterations","","[RFC 5155, NSEC3, March 2008](https://tools.ietf.org/html/rfc5155#section-4.1.3)",33,null],[11,"get_salt","","[RFC 5155, NSEC3, March 2008](https://tools.ietf.org/html/rfc5155#section-4.1.5)",33,null],[0,"opt","trust_dns::rr::rdata","option record for passing protocol options between the client and server",null,null],[3,"OPT","trust_dns::rr::rdata::opt","[RFC 6891, EDNS(0) Extensions, April 2013](https://tools.ietf.org/html/rfc6891#section-6)",null,null],[4,"EdnsCode","","",null,null],[13,"Zero","","[RFC 6891, Reserved](https://tools.ietf.org/html/rfc6891)",34,null],[13,"LLQ","","[LLQ On-hold](http://files.dns-sd.org/draft-sekar-dns-llq.txt)",34,null],[13,"UL","","[UL On-hold](http://files.dns-sd.org/draft-sekar-dns-ul.txt)",34,null],[13,"NSID","","[RFC 5001, NSID](https://tools.ietf.org/html/rfc5001)",34,null],[13,"DAU","","[RFC 6975, DNSSEC Algorithm Understood](https://tools.ietf.org/html/rfc6975)",34,null],[13,"DHU","","[RFC 6975, DS Hash Understood](https://tools.ietf.org/html/rfc6975)",34,null],[13,"N3U","","[RFC 6975, NSEC3 Hash Understood](https://tools.ietf.org/html/rfc6975)",34,null],[13,"Subnet","","[edns-client-subnet, Optional](https://tools.ietf.org/html/draft-vandergaast-edns-client-subnet-02)",34,null],[13,"Expire","","[RFC 7314, EDNS EXPIRE, Optional](https://tools.ietf.org/html/rfc7314)",34,null],[13,"Cookie","","[draft-ietf-dnsop-cookies](https://tools.ietf.org/html/draft-ietf-dnsop-cookies-07)",34,null],[13,"Keepalive","","[draft-ietf-dnsop-edns-tcp-keepalive, Optional](https://tools.ietf.org/html/draft-ietf-dnsop-edns-tcp-keepalive-04)",34,null],[13,"Padding","","[draft-mayrhofer-edns0-padding, Optional](https://tools.ietf.org/html/draft-mayrhofer-edns0-padding-01)",34,null],[13,"Chain","","[draft-ietf-dnsop-edns-chain-query](https://tools.ietf.org/html/draft-ietf-dnsop-edns-chain-query-07)",34,null],[13,"Unknown","","Unknown, used to deal with unknown or unsupported codes",34,null],[4,"EdnsOption","","options used to pass information about capabilities between client and server",null,null],[13,"DAU","","[RFC 6975, DNSSEC Algorithm Understood](https://tools.ietf.org/html/rfc6975)",35,null],[13,"DHU","","[RFC 6975, DS Hash Understood](https://tools.ietf.org/html/rfc6975)",35,null],[13,"N3U","","[RFC 6975, NSEC3 Hash Understood](https://tools.ietf.org/html/rfc6975)",35,null],[13,"Unknown","","Unknown, used to deal with unknown or unsupported codes",35,null],[5,"read","","",null,{"inputs":[{"name":"bindecoder"},{"name":"u16"}],"output":{"name":"decoderesult"}}],[5,"emit","","",null,{"inputs":[{"name":"binencoder"},{"name":"opt"}],"output":{"name":"encoderesult"}}],[11,"clone","","",36,null],[11,"eq","","",36,null],[11,"ne","","",36,null],[11,"fmt","","",36,null],[11,"default","","",36,{"inputs":[],"output":{"name":"opt"}}],[11,"new","","Creates a new OPT record data.",36,{"inputs":[{"name":"hashmap"}],"output":{"name":"opt"}}],[11,"get_options","","The entire map of options",36,null],[11,"get","","Get a single option based on the code",36,null],[11,"insert","","Insert a new option, the key is derived from the `EdnsOption`",36,null],[11,"eq","","",34,null],[11,"ne","","",34,null],[11,"clone","","",34,null],[11,"fmt","","",34,null],[11,"hash","","",34,null],[11,"from","","",34,{"inputs":[{"name":"u16"}],"output":{"name":"ednscode"}}],[11,"hash","","",35,null],[11,"clone","","",35,null],[11,"eq","","",35,null],[11,"ne","","",35,null],[11,"partial_cmp","","",35,null],[11,"lt","","",35,null],[11,"le","","",35,null],[11,"gt","","",35,null],[11,"ge","","",35,null],[11,"fmt","","",35,null],[11,"len","","",35,null],[11,"from","","",35,null],[11,"from","","",34,{"inputs":[{"name":"ednsoption"}],"output":{"name":"ednscode"}}],[0,"sig","trust_dns::rr::rdata","signature record for signing queries, updates, and responses",null,null],[3,"SIG","trust_dns::rr::rdata::sig","[RFC 2535, Domain Name System Security Extensions, March 1999](https://tools.ietf.org/html/rfc2535#section-4)",null,null],[5,"read","","",null,{"inputs":[{"name":"bindecoder"},{"name":"u16"}],"output":{"name":"decoderesult"}}],[5,"emit","","[RFC 4034](https://tools.ietf.org/html/rfc4034#section-6), DNSSEC Resource Records, March 2005",null,{"inputs":[{"name":"binencoder"},{"name":"sig"}],"output":{"name":"encoderesult"}}],[5,"emit_pre_sig","","specifically for outputing the RData for an RRSIG, with signer_name in canonical form",null,{"inputs":[{"name":"binencoder"},{"name":"recordtype"},{"name":"algorithm"},{"name":"u8"},{"name":"u32"},{"name":"u32"},{"name":"u32"},{"name":"u16"},{"name":"name"}],"output":{"name":"encoderesult"}}],[11,"clone","","",37,null],[11,"hash","","",37,null],[11,"eq","","",37,null],[11,"ne","","",37,null],[11,"fmt","","",37,null],[11,"new","","Creates a new SIG record data, used for both RRSIG and SIG(0) records.",37,{"inputs":[{"name":"recordtype"},{"name":"algorithm"},{"name":"u8"},{"name":"u32"},{"name":"u32"},{"name":"u32"},{"name":"u16"},{"name":"name"},{"name":"vec"}],"output":{"name":"sig"}}],[11,"get_type_covered","","[RFC 2535, Domain Name System Security Extensions, March 1999](https://tools.ietf.org/html/rfc2535#section-4.1.1)",37,null],[11,"get_algorithm","","[RFC 2535, Domain Name System Security Extensions, March 1999](https://tools.ietf.org/html/rfc2535#section-4.1.2)",37,null],[11,"get_num_labels","","[RFC 2535, Domain Name System Security Extensions, March 1999](https://tools.ietf.org/html/rfc2535#section-4.1.3)",37,null],[11,"get_original_ttl","","[RFC 2535, Domain Name System Security Extensions, March 1999](https://tools.ietf.org/html/rfc2535#section-4.1.4)",37,null],[11,"get_sig_expiration","","[RFC 2535, Domain Name System Security Extensions, March 1999](https://tools.ietf.org/html/rfc2535#section-4.1.5)",37,null],[11,"get_sig_inception","","see `get_sig_expiration`",37,null],[11,"get_key_tag","","[RFC 2535, Domain Name System Security Extensions, March 1999](https://tools.ietf.org/html/rfc2535#section-4.1.6)",37,null],[11,"get_signer_name","","[RFC 2535, Domain Name System Security Extensions, March 1999](https://tools.ietf.org/html/rfc2535#section-4.1.7)",37,null],[11,"get_sig","","[RFC 2535, Domain Name System Security Extensions, March 1999](https://tools.ietf.org/html/rfc2535#section-4.1.8)",37,null],[0,"soa","trust_dns::rr::rdata","start of authority record defining ownership and defaults for the zone",null,null],[3,"SOA","trust_dns::rr::rdata::soa","[RFC 1035, DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION, November 1987](https://tools.ietf.org/html/rfc1035)",null,null],[5,"read","","",null,{"inputs":[{"name":"bindecoder"}],"output":{"name":"decoderesult"}}],[5,"emit","","[RFC 4034](https://tools.ietf.org/html/rfc4034#section-6), DNSSEC Resource Records, March 2005",null,{"inputs":[{"name":"binencoder"},{"name":"soa"}],"output":{"name":"encoderesult"}}],[5,"parse","","",null,{"inputs":[{"name":"vec"},{"name":"option"}],"output":{"name":"parseresult"}}],[11,"clone","","",38,null],[11,"hash","","",38,null],[11,"eq","","",38,null],[11,"ne","","",38,null],[11,"fmt","","",38,null],[11,"new","","Creates a new SOA record data.",38,{"inputs":[{"name":"name"},{"name":"name"},{"name":"u32"},{"name":"i32"},{"name":"i32"},{"name":"i32"},{"name":"u32"}],"output":{"name":"self"}}],[11,"increment_serial","","Increments the serial number by one",38,null],[11,"get_mname","","```text\nMNAME The <domain-name> of the name server that was the\n original or primary source of data for this zone.\n```",38,null],[11,"get_rname","","```text\nRNAME A <domain-name> which specifies the mailbox of the\n person responsible for this zone.\n```",38,null],[11,"get_serial","","```text\nSERIAL The unsigned 32 bit version number of the original copy\n of the zone. Zone transfers preserve this value. This\n value wraps and should be compared using sequence space\n arithmetic.\n```",38,null],[11,"get_refresh","","```text\nREFRESH A 32 bit time interval before the zone should be\n refreshed.\n```",38,null],[11,"get_retry","","```text\nRETRY A 32 bit time interval that should elapse before a\n failed refresh should be retried.\n```",38,null],[11,"get_expire","","```text\nEXPIRE A 32 bit time value that specifies the upper limit on\n the time interval that can elapse before the zone is no\n longer authoritative.\n```",38,null],[11,"get_minimum","","```text\nMINIMUM The unsigned 32 bit minimum TTL field that should be\n exported with any RR from this zone.\n```",38,null],[0,"srv","trust_dns::rr::rdata","service records for identify port mapping for specific services on a host",null,null],[3,"SRV","trust_dns::rr::rdata::srv","[RFC 2782, DNS SRV RR, February 2000](https://tools.ietf.org/html/rfc2782)",null,null],[5,"read","","",null,{"inputs":[{"name":"bindecoder"}],"output":{"name":"decoderesult"}}],[5,"emit","","[RFC 4034](https://tools.ietf.org/html/rfc4034#section-6), DNSSEC Resource Records, March 2005",null,{"inputs":[{"name":"binencoder"},{"name":"srv"}],"output":{"name":"encoderesult"}}],[5,"parse","","",null,{"inputs":[{"name":"vec"},{"name":"option"}],"output":{"name":"parseresult"}}],[11,"clone","","",39,null],[11,"hash","","",39,null],[11,"eq","","",39,null],[11,"ne","","",39,null],[11,"fmt","","",39,null],[11,"new","","Creates a new SRV record data.",39,{"inputs":[{"name":"u16"},{"name":"u16"},{"name":"u16"},{"name":"name"}],"output":{"name":"srv"}}],[11,"get_priority","","```text\n Priority\nThe priority of this target host. A client MUST attempt to\ncontact the target host with the lowest-numbered priority it can\nreach; target hosts with the same priority SHOULD be tried in an\norder defined by the weight field. The range is 0-65535. This\nis a 16 bit unsigned integer in network byte order.\n```",39,null],[11,"get_weight","","```text\n Weight\nA server selection mechanism. The weight field specifies a\nrelative weight for entries with the same priority. Larger\nweights SHOULD be given a proportionately higher probability of\nbeing selected. The range of this number is 0-65535. This is a\n16 bit unsigned integer in network byte order. Domain\nadministrators SHOULD use Weight 0 when there isn't any server\nselection to do, to make the RR easier to read for humans (less\nnoisy). In the presence of records containing weights greater\nthan 0, records with weight 0 should have a very small chance of\nbeing selected.",39,null],[11,"get_port","","```text\n Port\nThe port on this target host of this service. The range is 0-\n65535. This is a 16 bit unsigned integer in network byte order.\nThis is often as specified in Assigned Numbers but need not be.",39,null],[11,"get_target","","```text\n Target\nThe domain name of the target host. There MUST be one or more\naddress records for this name, the name MUST NOT be an alias (in\nthe sense of RFC 1034 or RFC 2181). Implementors are urged, but\nnot required, to return the address record(s) in the Additional\nData section. Unless and until permitted by future standards\naction, name compression is not to be used for this field.",39,null],[0,"txt","trust_dns::rr::rdata","text records for storing arbitrary data",null,null],[3,"TXT","trust_dns::rr::rdata::txt","[RFC 1035, DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION, November 1987](https://tools.ietf.org/html/rfc1035)",null,null],[5,"read","","",null,{"inputs":[{"name":"bindecoder"},{"name":"u16"}],"output":{"name":"decoderesult"}}],[5,"emit","","",null,{"inputs":[{"name":"binencoder"},{"name":"txt"}],"output":{"name":"encoderesult"}}],[5,"parse","","",null,{"inputs":[{"name":"vec"}],"output":{"name":"parseresult"}}],[11,"clone","","",40,null],[11,"hash","","",40,null],[11,"eq","","",40,null],[11,"ne","","",40,null],[11,"fmt","","",40,null],[11,"new","","Creates a new TXT record data.",40,{"inputs":[{"name":"vec"}],"output":{"name":"txt"}}],[11,"get_txt_data","","```text\nTXT-DATA One or more <character-string>s.\n```",40,null],[0,"dnssec","trust_dns::rr","dns security extension related modules",null,null],[3,"Signer","trust_dns::rr::dnssec","Use for performing signing and validation of DNSSec based components.",null,null],[3,"SupportedAlgorithms","","",null,null],[3,"TrustAnchor","","",null,null],[4,"Algorithm","","",null,null],[13,"RSASHA1","","DO NOT USE, SHA1 is a compromised hashing function, it is here for backward compatability",41,null],[13,"RSASHA256","","",41,null],[13,"RSASHA1NSEC3SHA1","","DO NOT USE, SHA1 is a compromised hashing function, it is here for backward compatability",41,null],[13,"RSASHA512","","",41,null],[4,"DigestType","","",null,null],[13,"SHA1","","",42,null],[13,"SHA256","","",42,null],[13,"SHA384","","",42,null],[13,"SHA512","","",42,null],[4,"Nsec3HashAlgorithm","","",null,null],[13,"SHA1","","",43,null],[11,"fmt","","",41,null],[11,"cmp","","",41,null],[11,"partial_cmp","","",41,null],[11,"hash","","",41,null],[11,"eq","","",41,null],[11,"clone","","",41,null],[11,"sign","","",41,null],[11,"verify","","",41,null],[11,"from_u8","","http://www.iana.org/assignments/dns-sec-alg-numbers/dns-sec-alg-numbers.xhtml",41,{"inputs":[{"name":"u8"}],"output":{"name":"decoderesult"}}],[11,"hash_len","","length in bytes that the hash portion of this function will produce",41,null],[11,"public_key_from_vec","","",41,null],[11,"public_key_to_vec","","",41,null],[11,"read","","",41,{"inputs":[{"name":"bindecoder"}],"output":{"name":"decoderesult"}}],[11,"emit","","",41,null],[11,"from","","",41,{"inputs":[{"name":"str"}],"output":{"name":"algorithm"}}],[11,"fmt","","",42,null],[11,"cmp","","",42,null],[11,"partial_cmp","","",42,null],[11,"hash","","",42,null],[11,"eq","","",42,null],[11,"clone","","",42,null],[11,"from_u8","","http://www.iana.org/assignments/dns-sec-alg-numbers/dns-sec-alg-numbers.xhtml",42,{"inputs":[{"name":"u8"}],"output":{"name":"decoderesult"}}],[11,"to_hash","","",42,null],[11,"hash","","",42,null],[11,"from","","",42,{"inputs":[{"name":"algorithm"}],"output":{"name":"digesttype"}}],[11,"clone","","",43,null],[11,"hash","","",43,null],[11,"eq","","",43,null],[11,"fmt","","",43,null],[11,"from_u8","","http://www.iana.org/assignments/dns-sec-alg-numbers/dns-sec-alg-numbers.xhtml",43,{"inputs":[{"name":"u8"}],"output":{"name":"decoderesult"}}],[11,"hash","","",43,null],[11,"new_verifier","","Version of Signer for verifying RRSIGs and SIG0 records.",44,{"inputs":[{"name":"algorithm"},{"name":"pkey"},{"name":"name"}],"output":{"name":"self"}}],[11,"new","","Version of Signer for signing RRSIGs and SIG0 records.",44,{"inputs":[{"name":"algorithm"},{"name":"pkey"},{"name":"name"},{"name":"duration"}],"output":{"name":"self"}}],[11,"get_algorithm","","",44,null],[11,"get_sig_duration","","",44,null],[11,"get_signer_name","","",44,null],[11,"get_pkey","","",44,null],[11,"get_public_key","","",44,null],[11,"to_dnskey","","Creates a Record that represents the public key for this Signer",44,null],[11,"calculate_key_tag","","The key tag is calculated as a hash to more quickly lookup a DNSKEY.",44,null],[11,"sign_message","","Signs the given message, returning the signature bytes.",44,null],[11,"verify_message","","Verifies a message with the against the given signature",44,null],[11,"hash_rrset","","name is the the name of the records in the rrset",44,null],[11,"hash_rrset_with_rrsig","","",44,null],[11,"sign","","Signs a hash.",44,null],[11,"verify","","Verifies the hash matches the signature with the current `key`.",44,null],[11,"hash","","",45,null],[11,"clone","","",45,null],[11,"eq","","",45,null],[11,"ne","","",45,null],[11,"partial_cmp","","",45,null],[11,"lt","","",45,null],[11,"le","","",45,null],[11,"gt","","",45,null],[11,"ge","","",45,null],[11,"fmt","","",45,null],[11,"new","","",45,{"inputs":[],"output":{"name":"self"}}],[11,"all","","",45,{"inputs":[],"output":{"name":"self"}}],[11,"set","","",45,null],[11,"has","","",45,null],[11,"iter","","",45,null],[11,"len","","",45,null],[11,"from","","",45,null],[11,"default","","",46,{"inputs":[],"output":{"name":"trustanchor"}}],[11,"new","","",46,{"inputs":[],"output":{"name":"trustanchor"}}],[11,"contains","","",46,null],[11,"insert_trust_anchor","","inserts the trust_anchor to the trusted chain",46,null],[0,"authority","trust_dns","Module for `Catalog` of `Authority` zones which are responsible for storing `RRSet` records.",null,null],[3,"Authority","trust_dns::authority","Authority is responsible for storing the resource records for a particular zone.",null,null],[3,"RrKey","","Accessor key for RRSets in the Authority.",null,null],[3,"Catalog","","Set of authorities, zones, available to this server.",null,null],[3,"RRSet","","Set of resource records associated to a name and type",null,null],[3,"Journal","","The Journal is the audit log of all changes to a zone after initial creation.",null,null],[4,"ZoneType","","",null,null],[13,"Master","","",47,null],[13,"Slave","","",47,null],[13,"Hint","","",47,null],[13,"Forward","","",47,null],[11,"clone","","",48,null],[11,"hash","","",48,null],[11,"fmt","","",48,null],[11,"eq","","",48,null],[11,"ne","","",48,null],[11,"new","","Creates a new key to access the Authority.",48,{"inputs":[{"name":"name"},{"name":"recordtype"}],"output":{"name":"rrkey"}}],[11,"partial_cmp","","",48,null],[11,"cmp","","",48,null],[11,"new","","Creates a new Authority.",49,{"inputs":[{"name":"name"},{"name":"btreemap"},{"name":"zonetype"},{"name":"bool"}],"output":{"name":"authority"}}],[11,"add_secure_key","","By adding a secure key, this will implicitly enable dnssec for the zone.",49,null],[11,"recover_with_journal","","Recovers the zone from a Journal, returns an error on failure to recover the zone.",49,null],[11,"persist_to_journal","","Persist the state of the current zone to the journal, does nothing if there is no associated\n Journal.",49,null],[11,"journal","","",49,null],[11,"get_journal","","",49,null],[11,"get_origin","","",49,null],[11,"get_zone_type","","",49,null],[11,"get_records","","",49,null],[11,"get_soa","","Returns the SOA of the authority.",49,null],[11,"get_soa_secure","","Returns the SOA record",49,null],[11,"get_minimum_ttl","","",49,null],[11,"get_ns","","",49,null],[11,"upsert","","Inserts or updates a `Record` depending on it's existence in the authority.",49,null],[11,"update","","Takes the UpdateMessage, extracts the Records, and applies the changes to the record set.",49,null],[11,"search","","Using the specified query, perform a lookup against this zone.",49,null],[11,"lookup","","Looks up all Resource Records matching the giving `Name` and `RecordType`.",49,null],[11,"get_nsec_records","","Return the NSEC records based on the given name",49,null],[11,"secure_zone","","(Re)generates the nsec records, increments the serial number nad signs the zone",49,null],[11,"new","","",50,{"inputs":[],"output":{"name":"self"}}],[11,"handle_request","","Determine's what needs to happen given the type of request, i.e. Query or Update.",50,null],[11,"error_msg","","",50,{"inputs":[{"name":"u16"},{"name":"opcode"},{"name":"responsecode"}],"output":{"name":"message"}}],[11,"upsert","","",50,null],[11,"update","","Update the zone given the Update request.",50,null],[11,"lookup","","Given the requested query, lookup and return any matching results.",50,null],[11,"new","","",51,{"inputs":[{"name":"connection"}],"output":{"name":"persistenceresult"}}],[11,"from_file","","",51,{"inputs":[{"name":"path"}],"output":{"name":"persistenceresult"}}],[11,"get_schema_version","","gets the current schema version of the journal",51,null],[11,"iter","","this returns an iterator from the beginning of time, to be used to recreate an authority",51,null],[11,"insert_record","","Inserts a record, this is an append only operation.",51,null],[11,"insert_records","","Inserts a set of records into the Journal, a convenience method for insert_record",51,null],[11,"select_record","","Selects a record from the given row_id.",51,null],[11,"schema_up","","initilizes the schema for the Journal",51,null],[11,"eq","","",52,null],[11,"ne","","",52,null],[11,"fmt","","",52,null],[11,"new","","Creates a new Resource Record Set.",52,{"inputs":[{"name":"name"},{"name":"recordtype"},{"name":"u32"}],"output":{"name":"rrset"}}],[11,"get_name","","# Return value",52,null],[11,"get_record_type","","# Return value",52,null],[11,"get_ttl","","# Return value",52,null],[11,"get_records","","# Return value",52,null],[11,"iter","","Returns an iterator over the records in the set",52,null],[11,"is_empty","","# Return value",52,null],[11,"get_serial","","# Return value",52,null],[11,"get_rrsigs","","",52,null],[11,"insert_rrsig","","",52,null],[11,"clear_rrsigs","","",52,null],[11,"insert","","Inserts a new Resource Record into the Set.",52,null],[11,"remove","","Removes the Resource Record if it exists.",52,null],[6,"UpdateResult","","",null,null],[11,"clone","","",47,null],[11,"fmt","","",47,null],[11,"eq","","",47,null],[11,"decode","","",47,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[0,"op","trust_dns","Operations to send with a `Client` or server, e.g. `Query`, `Message`, or `UpdateMessage` can\nbe used to gether to either query or update resource records sets.",null,null],[3,"Edns","trust_dns::op","Edns implements the higher level concepts for working with Edns as it is used to create or be\ncreated from OPT record data.",null,null],[0,"op_code","","Operation code for queries, updates, and responses",null,null],[4,"OpCode","trust_dns::op::op_code","Operation code for queries, updates, and responses",null,null],[13,"Query","","Query request [RFC 1035](https://tools.ietf.org/html/rfc1035)",53,null],[13,"Status","","Status message [RFC 1035](https://tools.ietf.org/html/rfc1035)",53,null],[13,"Notify","","Notify of change [RFC 1996](https://tools.ietf.org/html/rfc1996)",53,null],[13,"Update","","Update message [RFC 2136](https://tools.ietf.org/html/rfc2136)",53,null],[11,"clone","","",53,null],[11,"partial_cmp","","",53,null],[11,"eq","","",53,null],[11,"fmt","","",53,null],[11,"from","","",53,{"inputs":[{"name":"u8"}],"output":{"name":"self"}}],[0,"response_code","trust_dns::op","All defined response codes in DNS",null,null],[4,"ResponseCode","trust_dns::op::response_code","The status code of the response to a query.",null,null],[13,"NoError","","No Error [RFC 1035](https://tools.ietf.org/html/rfc1035)",54,null],[13,"FormErr","","Format Error [RFC 1035](https://tools.ietf.org/html/rfc1035)",54,null],[13,"ServFail","","Server Failure [RFC 1035](https://tools.ietf.org/html/rfc1035)",54,null],[13,"NXDomain","","Non-Esistent Domain [RFC 1035](https://tools.ietf.org/html/rfc1035)",54,null],[13,"NotImp","","Not Implemented [RFC 1035](https://tools.ietf.org/html/rfc1035)",54,null],[13,"Refused","","Query Refused [RFC 1035](https://tools.ietf.org/html/rfc1035)",54,null],[13,"YXDomain","","Name Exists when it should not [RFC 2136](https://tools.ietf.org/html/rfc2136)",54,null],[13,"YXRRSet","","RR Set Exists when it should not [RFC 2136](https://tools.ietf.org/html/rfc2136)",54,null],[13,"NXRRSet","","RR Set that should exist does not [RFC 2136](https://tools.ietf.org/html/rfc2136)",54,null],[13,"NotAuth","","Server Not Authoritative for zone [RFC 2136](https://tools.ietf.org/html/rfc2136)\nor Not Authorized [RFC 2845](https://tools.ietf.org/html/rfc2845)",54,null],[13,"NotZone","","Name not contained in zone [RFC 2136](https://tools.ietf.org/html/rfc2136)",54,null],[13,"BADVERS","","Bad OPT Version [RFC 6891](https://tools.ietf.org/html/rfc6891#section-9)",54,null],[13,"BADSIG","","TSIG Signature Failure [RFC 2845](https://tools.ietf.org/html/rfc2845)",54,null],[13,"BADKEY","","Key not recognized [RFC 2845](https://tools.ietf.org/html/rfc2845)",54,null],[13,"BADTIME","","Signature out of time window [RFC 2845](https://tools.ietf.org/html/rfc2845)",54,null],[13,"BADMODE","","Bad TKEY Mode [RFC 2930](https://tools.ietf.org/html/rfc2930#section-2.6)",54,null],[13,"BADNAME","","Duplicate key name [RFC 2930](https://tools.ietf.org/html/rfc2930#section-2.6)",54,null],[13,"BADALG","","Algorithm not supported [RFC 2930](https://tools.ietf.org/html/rfc2930#section-2.6)",54,null],[13,"BADTRUNC","","Bad Truncation [RFC 4635](https://tools.ietf.org/html/rfc4635#section-4)",54,null],[13,"BADCOOKIE","","Bad/missing server cookie [draft-ietf-dnsop-cookies](https://tools.ietf.org/html/draft-ietf-dnsop-cookies-10)",54,null],[11,"clone","","",54,null],[11,"partial_cmp","","",54,null],[11,"eq","","",54,null],[11,"fmt","","",54,null],[11,"low","","returns the lower 4 bits of the response code (for the original header portion of the code)",54,null],[11,"high","","returns the high 12 bits for the edns portion of the response code",54,null],[11,"from","","",54,{"inputs":[{"name":"u8"},{"name":"u8"}],"output":{"name":"responsecode"}}],[11,"to_str","","",54,null],[11,"from","","",54,{"inputs":[{"name":"u16"}],"output":{"name":"self"}}],[0,"message","trust_dns::op","Basic protocol message for DNS",null,null],[3,"Message","trust_dns::op::message","The basic request and response datastructure, used for all DNS protocols.",null,null],[8,"UpdateMessage","","to reduce errors in using the Message struct as an Update, this will do the call throughs\nto properly do that.",null,null],[10,"get_id","","",55,null],[10,"add_zone","","",55,null],[10,"add_pre_requisite","","",55,null],[10,"add_all_pre_requisites","","",55,null],[10,"add_update","","",55,null],[10,"add_all_updates","","",55,null],[10,"add_additional","","",55,null],[10,"get_zones","","",55,null],[10,"get_pre_requisites","","",55,null],[10,"get_updates","","",55,null],[10,"get_additional","","",55,null],[10,"get_sig0","","This is used to authenticate update messages.",55,null],[10,"sign","","",55,null],[11,"eq","","",56,null],[11,"ne","","",56,null],[11,"fmt","","",56,null],[11,"new","","",56,{"inputs":[],"output":{"name":"self"}}],[11,"truncate","","",56,null],[11,"id","","",56,null],[11,"message_type","","",56,null],[11,"op_code","","",56,null],[11,"authoritative","","",56,null],[11,"truncated","","",56,null],[11,"recursion_desired","","",56,null],[11,"recursion_available","","",56,null],[11,"authentic_data","","",56,null],[11,"checking_disabled","","",56,null],[11,"response_code","","",56,null],[11,"add_query","","",56,null],[11,"add_all_queries","","",56,null],[11,"add_answer","","",56,null],[11,"add_all_answers","","",56,null],[11,"add_name_server","","",56,null],[11,"add_all_name_servers","","",56,null],[11,"add_additional","","",56,null],[11,"set_edns","","",56,null],[11,"add_sig0","","",56,null],[11,"get_id","","see `Header::get_id()`",56,null],[11,"get_message_type","","see `Header::get_message_type()`",56,null],[11,"get_op_code","","see `Header::get_op_code()`",56,null],[11,"is_authoritative","","see `Header::is_authoritative()`",56,null],[11,"is_truncated","","see `Header::is_truncated()`",56,null],[11,"is_recursion_desired","","see `Header::is_recursion_desired()`",56,null],[11,"is_recursion_available","","see `Header::is_recursion_available()`",56,null],[11,"is_authentic_data","","see `Header::is_authentic_data()`",56,null],[11,"is_checking_disabled","","see `Header::is_checking_disabled()`",56,null],[11,"get_response_code","","# Return value",56,null],[11,"get_queries","","```text\nQuestion Carries the query name and other query parameters.\n```",56,null],[11,"get_answers","","```text\nAnswer Carries RRs which directly answer the query.\n```",56,null],[11,"get_name_servers","","```text\nAuthority Carries RRs which describe other authoritative servers.\n May optionally carry the SOA RR for the authoritative\n data in the answer section.\n```",56,null],[11,"get_additional","","```text\nAdditional Carries RRs which may be helpful in using the RRs in the\n other sections.\n```",56,null],[11,"get_edns","","[RFC 6891, EDNS(0) Extensions, April 2013](https://tools.ietf.org/html/rfc6891#section-6.1.1)",56,null],[11,"get_max_payload","","# Return value",56,null],[11,"get_version","","# Return value",56,null],[11,"get_id","","",56,null],[11,"add_zone","","",56,null],[11,"add_pre_requisite","","",56,null],[11,"add_all_pre_requisites","","",56,null],[11,"add_update","","",56,null],[11,"add_all_updates","","",56,null],[11,"add_additional","","",56,null],[11,"get_zones","","",56,null],[11,"get_pre_requisites","","",56,null],[11,"get_updates","","",56,null],[11,"get_additional","","",56,null],[11,"get_sig0","","",56,null],[11,"sign","","",56,null],[11,"read","","",56,{"inputs":[{"name":"bindecoder"}],"output":{"name":"decoderesult"}}],[11,"emit","","",56,null],[0,"header","trust_dns::op","Message metadata",null,null],[3,"Header","trust_dns::op::header","Metadata for the `Message` struct.",null,null],[4,"MessageType","","",null,null],[13,"Query","","",57,null],[13,"Response","","",57,null],[11,"partial_cmp","","",58,null],[11,"lt","","",58,null],[11,"le","","",58,null],[11,"gt","","",58,null],[11,"ge","","",58,null],[11,"eq","","",58,null],[11,"ne","","",58,null],[11,"fmt","","",58,null],[11,"clone","","",57,null],[11,"partial_cmp","","",57,null],[11,"eq","","",57,null],[11,"fmt","","",57,null],[11,"new","","A default Header, not very useful.",58,{"inputs":[],"output":{"name":"self"}}],[11,"len","","",58,{"inputs":[],"output":{"name":"usize"}}],[11,"id","","",58,null],[11,"message_type","","",58,null],[11,"op_code","","",58,null],[11,"authoritative","","",58,null],[11,"truncated","","",58,null],[11,"recursion_desired","","",58,null],[11,"recursion_available","","",58,null],[11,"authentic_data","","",58,null],[11,"checking_disabled","","",58,null],[11,"response_code","","",58,null],[11,"query_count","","",58,null],[11,"answer_count","","",58,null],[11,"name_server_count","","",58,null],[11,"additional_count","","",58,null],[11,"get_id","","```text\nID A 16 bit identifier assigned by the program that\n generates any kind of query. This identifier is copied\n the corresponding reply and can be used by the requester\n to match up replies to outstanding queries.\n```",58,null],[11,"get_message_type","","```text\nQR A one bit field that specifies whether this message is a\n query (0), or a response (1).\n```",58,null],[11,"get_op_code","","```text\nOPCODE A four bit field that specifies kind of query in this\n message. This value is set by the originator of a query\n and copied into the response. The values are: <see super::op_code>\n```",58,null],[11,"is_authoritative","","```text\nAA Authoritative Answer - this bit is valid in responses,\n and specifies that the responding name server is an\n authority for the domain name in question section.",58,null],[11,"is_truncated","","```text\nTC TrunCation - specifies that this message was truncated\n due to length greater than that permitted on the\n transmission channel.\n```",58,null],[11,"is_recursion_desired","","```text\nRD Recursion Desired - this bit may be set in a query and\n is copied into the response. If RD is set, it directs\n the name server to pursue the query recursively.\n Recursive query support is optional.\n```",58,null],[11,"is_recursion_available","","```text\nRA Recursion Available - this be is set or cleared in a\n response, and denotes whether recursive query support is\n available in the name server.\n```",58,null],[11,"is_authentic_data","","[RFC 4035, DNSSEC Resource Records, March 2005](https://tools.ietf.org/html/rfc4035#section-3.1.6)",58,null],[11,"is_checking_disabled","","see `is_authentic_data()`",58,null],[11,"get_response_code","","```text\nRCODE Response code - this 4 bit field is set as part of\n responses. The values have the following\n interpretation: <see super::response_code>\n```",58,null],[11,"get_query_count","","```text\nQDCOUNT an unsigned 16 bit integer specifying the number of\n entries in the question section.\n```",58,null],[11,"get_answer_count","","```text\nANCOUNT an unsigned 16 bit integer specifying the number of\n resource records in the answer section.\n```",58,null],[11,"get_name_server_count","","for queries this is the nameservers which are authorities for the SOA of the Record\nfor updates this is the update record count\n```text\nNSCOUNT an unsigned 16 bit integer specifying the number of name\n server resource records in the authority records\n section.\n```",58,null],[11,"get_additional_count","","```text\nARCOUNT an unsigned 16 bit integer specifying the number of\n resource records in the additional records section.\n```",58,null],[11,"clone","","This is a specialized clone which clones all the fields but the counts\nhandy for setting the count fields before sending over the wire.",58,null],[11,"read","","",58,{"inputs":[{"name":"bindecoder"}],"output":{"name":"decoderesult"}}],[11,"emit","","",58,null],[0,"query","trust_dns::op","Query struct for looking up resource records",null,null],[3,"Query","trust_dns::op::query","Query struct for looking up resource records, basically a resource record without RDATA.",null,null],[11,"clone","","",59,null],[11,"fmt","","",59,null],[11,"eq","","",59,null],[11,"ne","","",59,null],[11,"new","","return a default query with an empty name and A, IN for the query_type and query_class",59,{"inputs":[],"output":{"name":"self"}}],[11,"name","","replaces name with the new name",59,null],[11,"query_type","","",59,null],[11,"query_class","","",59,null],[11,"get_name","","```text\nQNAME a domain name represented as a sequence of labels, where\n each label consists of a length octet followed by that\n number of octets. The domain name terminates with the\n zero length octet for the null label of the root. Note\n that this field may be an odd number of octets; no\n padding is used.\n```",59,null],[11,"get_query_type","","```text\nQTYPE a two octet code which specifies the type of the query.\n The values for this field include all codes valid for a\n TYPE field, together with some more general codes which\n can match more than one type of RR.\n```",59,null],[11,"get_query_class","","```text\nQCLASS a two octet code that specifies the class of the query.\n For example, the QCLASS field is IN for the Internet.\n```",59,null],[11,"read","","",59,{"inputs":[{"name":"bindecoder"}],"output":{"name":"decoderesult"}}],[11,"emit","","",59,null],[11,"clone","trust_dns::op","",60,null],[11,"eq","","",60,null],[11,"ne","","",60,null],[11,"fmt","","",60,null],[11,"new","","",60,{"inputs":[],"output":{"name":"self"}}],[11,"get_rcode_high","","",60,null],[11,"get_version","","",60,null],[11,"is_dnssec_ok","","",60,null],[11,"get_max_payload","","",60,null],[11,"get_option","","",60,null],[11,"get_options","","",60,null],[11,"set_rcode_high","","",60,null],[11,"set_version","","",60,null],[11,"set_dnssec_ok","","",60,null],[11,"set_max_payload","","",60,null],[11,"set_option","","",60,null],[11,"from","","",60,{"inputs":[{"name":"record"}],"output":{"name":"self"}}],[11,"from","trust_dns::rr::resource","This returns a Resource Record that is formatted for Edns(0).\nNote: the rcode_high value is only part of the rcode, the rest is part of the base",24,{"inputs":[{"name":"edns"}],"output":{"name":"record"}}],[0,"udp","trust_dns","UDP protocol related components for DNS.",null,null],[3,"UdpHandler","trust_dns::udp","",null,null],[3,"UdpClientConnection","","UDP based DNS client",null,null],[4,"UdpState","","",null,null],[13,"Reading","","",61,null],[13,"Writing","","",61,null],[13,"Done","","",61,null],[11,"new_client","","",62,{"inputs":[{"name":"socketaddr"},{"name":"message"}],"output":{"name":"self"}}],[11,"new_server","","",62,{"inputs":[{"name":"udpsocket"},{"name":"arc"}],"output":{"name":"option"}}],[11,"remote_addr","","",62,null],[11,"serialize_msg","","",62,{"inputs":[{"name":"vec"},{"name":"message"}],"output":{"name":"vec"}}],[11,"handle_message","","",62,null],[11,"new","","Creates a new client connection.",63,{"inputs":[{"name":"socketaddr"}],"output":{"name":"clientresult"}}],[11,"send","","",63,null],[11,"fmt","","",63,null],[0,"tcp","trust_dns","TCP protocol related components for DNS.",null,null],[3,"TcpHandler","trust_dns::tcp","",null,null],[3,"TcpClientConnection","","TCP based DNS client",null,null],[4,"TcpState","","",null,null],[13,"WillReadLength","","",64,null],[13,"WillRead","","",64,null],[12,"length","trust_dns::tcp::TcpState","",64,null],[13,"WillWriteLength","trust_dns::tcp","",64,null],[13,"WillWrite","","",64,null],[13,"Done","","",64,null],[11,"new_client_handler","","initializes this handler with the intention to write first",65,{"inputs":[{"name":"tcpstream"}],"output":{"name":"self"}}],[11,"new_server_handler","","initializes this handler with the intention to read first",65,{"inputs":[{"name":"tcpstream"}],"output":{"name":"self"}}],[11,"get_stream","","",65,null],[11,"get_events","","",65,null],[11,"set_buffer","","",65,null],[11,"remove_buffer","","",65,null],[11,"get_buffer","","",65,null],[11,"get_buffer_mut","","",65,null],[11,"handle_message","","The result may be an error case of ErrorKind::WouldBlock, which means that the handler\nhandler should be put back into the event loop for more processing.",65,null],[11,"reset","","resets the state of the handler to perform more requests if desired.\nclears the buffers and sets the state back to the initial state",65,null],[11,"fmt","","",64,null],[11,"clone","","",64,null],[11,"eq","","",64,null],[11,"ne","","",64,null],[11,"initial_state","","",64,{"inputs":[{"name":"tcptype"}],"output":{"name":"self"}}],[11,"next_state","","",64,null],[11,"new","","Creates a new client connection.",66,{"inputs":[{"name":"socketaddr"}],"output":{"name":"clientresult"}}],[11,"send","","",66,null],[11,"fmt","","",66,null],[0,"client","trust_dns","Use `Client` along with `trust_dns::udp::UdpClientConnection` or\n`trust_dns::tcp::TcpClientConnection`.",null,null],[3,"Client","trust_dns::client","The Client is abstracted over either trust_dns::tcp::TcpClientConnection or\ntrust_dns::udp::UdpClientConnection, usage of TCP or UDP is up to the user. Some DNS servers\ndisallow TCP in some cases, so if TCP double check if UDP works.",null,null],[11,"new","","Creates a new DNS client with the specified connection type",67,{"inputs":[{"name":"c"}],"output":{"name":"client"}}],[11,"with_trust_anchor","","This variant allows for the trust_anchor to be replaced",67,{"inputs":[{"name":"c"},{"name":"trustanchor"}],"output":{"name":"client"}}],[11,"secure_query","","DNSSec validating query, this will return an error if the requested records can not be\n validated against the trust_anchor.",67,null],[11,"query","","A *classic* DNS query, i.e. does not perform and DNSSec operations",67,null],[11,"create","","Sends a record to create on the server, this will fail if the record exists (atomicity\n depends on the server)",67,null],[11,"append","","Appends a record to an existing rrset, optionally require the rrset to exis (atomicity\n depends on the server)",67,null],[11,"compare_and_swap","","Compares and if it matches, swaps it for the new value (atomicity depends on the server)",67,null],[11,"delete_by_rdata","","Deletes a record (by rdata) from an rrset, optionally require the rrset to exist.",67,null],[11,"delete_rrset","","Deletes an entire rrset, optionally require the rrset to exist.",67,null],[11,"delete_all","","Deletes all records at the specified name",67,null],[8,"ClientConnection","","Trait for client connections",null,null],[10,"send","","Sends a serialized message to via this connection, returning the serialized response.",68,null],[0,"server","trust_dns","`Server` component for hosting a domain name servers operations.",null,null],[3,"Server","trust_dns::server","",null,null],[11,"new","","",69,{"inputs":[{"name":"catalog"}],"output":{"name":"server"}}],[11,"register_socket","","register a UDP socket. Should be bound before calling this.",69,null],[11,"register_listener","","register a TcpListener to the Server. This should already be bound to either an IPv6 or an\nIPv4 address.",69,null],[11,"listen","","TODO how to do threads? should we do a bunch of listener threads and then query threads?\nIdeally the processing would be n-threads for recieving, which hand off to m-threads for\n request handling. It would generally be the case that n <= m.",69,null],[11,"ready","","",69,null],[11,"interrupted","","",69,null],[0,"serialize","trust_dns","Contains serialization libraries for `binary` and text, `txt`.",null,null],[0,"binary","trust_dns::serialize","",null,null],[3,"BinDecoder","trust_dns::serialize::binary","This is non-destructive to the inner buffer, b/c for pointer types we need to perform a reverse\n seek to lookup names",null,null],[3,"BinEncoder","","Encode DNS messages and resource record types.",null,null],[4,"EncodeMode","","In the Verify mode there maybe some things which are encoded differently, e.g. SIG0 records\nshould not be included in the additional count and not in the encoded data when in Verify",null,null],[13,"Signing","","",70,null],[13,"Normal","","",70,null],[11,"new","","",71,null],[11,"pop","","",71,null],[11,"len","","",71,null],[11,"peek","","",71,null],[11,"index","","",71,null],[11,"clone","","This is a pretty efficient clone, as the buffer is never cloned, and only the index is set\nto the value passed in",71,null],[11,"read_character_data","","<character-string> is a single\nlength octet followed by that number of characters. <character-string>\nis treated as binary information, and can be up to 256 characters in\nlength (including the length octet).",71,null],[11,"read_vec","","",71,null],[11,"read_u8","","",71,null],[11,"read_u16","","parses the next 2 bytes into u16. This performs a byte-by-byte manipulation, there\n which means endianness is implicitly handled (i.e. no network to little endian (intel), issues)",71,null],[11,"read_i32","","parses the next four bytes into i32. This performs a byte-by-byte manipulation, there\n which means endianness is implicitly handled (i.e. no network to little endian (intel), issues)",71,null],[11,"read_u32","","parses the next four bytes into u32. This performs a byte-by-byte manipulation, there\n which means endianness is implicitly handled (i.e. no network to little endian (intel), issues)",71,null],[11,"new","","",72,{"inputs":[{"name":"vec"}],"output":{"name":"self"}}],[11,"with_mode","","",72,{"inputs":[{"name":"vec"},{"name":"encodemode"}],"output":{"name":"self"}}],[11,"with_offset","","offset is used mainly for pointers. If this encoder is starting at some point further in\nthe sequence of bytes, for the proper offset of the pointer, the offset accounts for that\nby using the offset to add to the pointer location being written.",72,{"inputs":[{"name":"vec"},{"name":"u32"},{"name":"encodemode"}],"output":{"name":"self"}}],[11,"as_bytes","","",72,null],[11,"len","","",72,null],[11,"offset","","",72,null],[11,"mode","","",72,null],[11,"set_canonical_names","","",72,null],[11,"is_canonical_names","","",72,null],[11,"reserve","","",72,null],[11,"emit","","",72,null],[11,"store_label_pointer","","store the label pointer, the location is the current position in the buffer\nimplicitly, it is expected that the name will be written to the stream after this.",72,null],[11,"get_label_pointer","","",72,null],[11,"emit_character_data","","matches description from above.",72,null],[11,"emit_u16","","",72,null],[11,"emit_i32","","",72,null],[11,"emit_u32","","",72,null],[11,"emit_vec","","",72,null],[11,"eq","","",70,null],[11,"clone","","",70,null],[8,"BinSerializable","","",null,null],[10,"read","","",73,{"inputs":[{"name":"bindecoder"}],"output":{"name":"decoderesult"}}],[10,"emit","","",73,null],[0,"txt","trust_dns::serialize","",null,null],[3,"Parser","trust_dns::serialize::txt","```text\n5. MASTER FILES",null,null],[3,"Lexer","","",null,null],[4,"Token","","",null,null],[13,"Blank","","",74,null],[13,"List","","",74,null],[13,"CharData","","",74,null],[13,"At","","",74,null],[13,"Include","","",74,null],[13,"Origin","","",74,null],[13,"Ttl","","",74,null],[13,"EOL","","",74,null],[11,"new","","",75,{"inputs":[{"name":"str"}],"output":{"name":"lexer"}}],[11,"next_token","","",75,null],[11,"clone","","",74,null],[11,"fmt","","",74,null],[11,"eq","","",74,null],[11,"ne","","",74,null],[11,"new","","",76,{"inputs":[],"output":{"name":"self"}}],[11,"parse_file","","",76,{"inputs":[{"name":"file"},{"name":"option"},{"name":"zonetype"},{"name":"bool"}],"output":{"name":"parseresult"}}],[11,"parse","","",76,null],[11,"parse_time","","parses the string following the rules from:\n https://tools.ietf.org/html/rfc2308 (NXCaching RFC) and\n http://www.zytrax.com/books/dns/apa/time.html",76,{"inputs":[{"name":"str"}],"output":{"name":"parseresult"}}],[0,"config","trust_dns","Configuration module for the server binary, `named`.",null,null],[3,"Config","trust_dns::config","",null,null],[3,"ZoneConfig","","",null,null],[11,"fmt","","",77,null],[11,"decode","","",77,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"read_config","","read a Config file from the file specified at path.",77,{"inputs":[{"name":"path"}],"output":{"name":"configresult"}}],[11,"get_listen_addrs_ipv4","","",77,null],[11,"get_listen_addrs_ipv6","","",77,null],[11,"get_listen_port","","",77,null],[11,"get_log_level","","",77,null],[11,"get_directory","","",77,null],[11,"get_zones","","",77,null],[11,"from_str","","",77,{"inputs":[{"name":"str"}],"output":{"name":"configresult"}}],[11,"fmt","","",78,null],[11,"eq","","",78,null],[11,"ne","","",78,null],[11,"decode","","",78,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"get_zone","","",78,null],[11,"get_zone_type","","",78,null],[11,"get_file","","",78,null],[11,"is_update_allowed","","",78,null],[11,"is_dnssec_enabled","","",78,null]],"paths":[[3,"DecodeError"],[3,"EncodeError"],[3,"ClientError"],[3,"LexerError"],[3,"ParseError"],[3,"PersistenceError"],[3,"ConfigError"],[4,"DecodeErrorKind"],[4,"EncodeErrorKind"],[4,"ClientErrorKind"],[4,"LexerErrorKind"],[4,"ParseErrorKind"],[4,"PersistenceErrorKind"],[4,"ConfigErrorKind"],[8,"DecodeChainErr"],[8,"EncodeChainErr"],[8,"ClientChainErr"],[8,"LexerChainErr"],[8,"ParseChainErr"],[8,"PersistenceChainErr"],[8,"ConfigChainErr"],[3,"TrustDnsLogger"],[4,"RecordType"],[4,"DNSClass"],[3,"Record"],[4,"RData"],[3,"Name"],[3,"DS"],[3,"DNSKEY"],[3,"MX"],[3,"NULL"],[3,"NSEC"],[3,"NSEC3"],[3,"NSEC3PARAM"],[4,"EdnsCode"],[4,"EdnsOption"],[3,"OPT"],[3,"SIG"],[3,"SOA"],[3,"SRV"],[3,"TXT"],[4,"Algorithm"],[4,"DigestType"],[4,"Nsec3HashAlgorithm"],[3,"Signer"],[3,"SupportedAlgorithms"],[3,"TrustAnchor"],[4,"ZoneType"],[3,"RrKey"],[3,"Authority"],[3,"Catalog"],[3,"Journal"],[3,"RRSet"],[4,"OpCode"],[4,"ResponseCode"],[8,"UpdateMessage"],[3,"Message"],[4,"MessageType"],[3,"Header"],[3,"Query"],[3,"Edns"],[4,"UdpState"],[3,"UdpHandler"],[3,"UdpClientConnection"],[4,"TcpState"],[3,"TcpHandler"],[3,"TcpClientConnection"],[3,"Client"],[8,"ClientConnection"],[3,"Server"],[4,"EncodeMode"],[3,"BinDecoder"],[3,"BinEncoder"],[8,"BinSerializable"],[4,"Token"],[3,"Lexer"],[3,"Parser"],[3,"Config"],[3,"ZoneConfig"]]}; initSearch(searchIndex);