var searchIndex = {}; searchIndex["kademlia_routing_table"] = {"doc":"A routing table to manage contacts for a node in a [Kademlia][1] distributed hash table.","items":[[3,"AddedNodeDetails","kademlia_routing_table","This is returned by `RoutingTable::add_node` if a new node has been added.",null,null],[12,"must_notify","","The list of contacts that need to be notified about the new node: If the bucket was\nalready full, that's nobody, but if it wasn't, everyone with a bucket index greater than\nthe new nodes' must be notified.",0,null],[12,"common_groups","","Whether we are together in any close group with that contact.",0,null],[3,"DroppedNodeDetails","","This is returned by `RoutingTable::drop_connection` if a node was dropped.",null,null],[12,"incomplete_bucket","","`Some(i)` if the entry has been removed from a full bucket with index `i`, indicating\nthat an attempt to refill that bucket has to be made.",1,null],[12,"common_groups","","Whether we were together in any close group with that contact.",1,null],[3,"RoutingTable","","A routing table to manage contacts for a node.",null,null],[4,"Destination","","A message destination.",null,null],[13,"Group","","The close group of the given address. The message should reach `GROUP_SIZE` nodes.",2,null],[13,"Node","","The individual node at the given address. The message should reach exactly one node.",2,null],[11,"fmt","","",0,null],[11,"eq","","",0,null],[11,"ne","","",0,null],[11,"fmt","","",1,null],[11,"eq","","",1,null],[11,"ne","","",1,null],[17,"GROUP_SIZE","","The size of a close group.",null,null],[17,"PARALLELISM","","The number of nodes a message is sent to in each hop for redundancy.",null,null],[8,"ContactInfo","","Contact info about a node in the network.",null,null],[10,"name","","Returns the name of this contact.",3,null],[11,"fmt","","",2,null],[11,"clone","","",2,null],[11,"new","","Creates a new routing table for the node with the given name.",4,{"inputs":[{"name":"t"}],"output":{"name":"self"}}],[11,"add","","Adds a contact to the routing table, or updates it.",4,null],[11,"need_to_add","","Returns whether it is desirable to add the given contact to the routing table.",4,null],[11,"allow_connection","","Returns whether we can allow the given contact to connect to us.",4,null],[11,"dynamic_quorum_size","","Returns the current calculated quorum size.",4,null],[11,"furthest_close_bucket","","Returns the bucket index of the furthest close node, or `0` if the table is empty.",4,null],[11,"remove","","Removes the contact from the table.",4,null],[11,"target_nodes","","Returns a collection of nodes to which a message should be sent onwards.",4,null],[11,"is_recipient","","Returns whether the message is addressed to this node.",4,null],[11,"other_close_nodes","","Returns the other members of `name`'s close group, or `None` if we are not a member of it.",4,null],[11,"close_nodes","","Returns the members of `name`'s close group, or `None` if we are not a member of it.",4,null],[11,"is_close","","Returns `true` if there are fewer than `GROUP_SIZE` nodes in our routing table that are\ncloser to `name` than we are.",4,null],[11,"len","","Number of entries in the routing table.",4,null],[11,"is_empty","","Returns `true` if there are no entries in the routing table.",4,null],[11,"our_name","","Returns the name of the node this routing table is for.",4,null],[11,"contains","","Returns whether the given node is in the routing table.",4,null],[11,"get","","Returns the contact associated with the given name.",4,null],[11,"find","","Returns an entry that satisfies the given `predicate`.",4,null]],"paths":[[3,"AddedNodeDetails"],[3,"DroppedNodeDetails"],[4,"Destination"],[8,"ContactInfo"],[3,"RoutingTable"]]}; initSearch(searchIndex);