var searchIndex = {}; searchIndex["routing"] = {"doc":"Client and node implementations for a resilient decentralised network.","items":[[3,"Client","routing","Interface for sending and receiving messages to and from a network of nodes in the role of a\nclient.",null,null],[3,"FullId","","Network identity component containing name, and public and private keys.",null,null],[3,"PublicId","","Network identity component containing name and public keys.",null,null],[3,"ImmutableData","","An immutable chunk of data.",null,null],[3,"Node","","Interface for sending and receiving messages to and from other nodes, in the role of a full\nrouting node.",null,null],[3,"NodeBuilder","","A builder to configure and create a new `Node`.",null,null],[3,"PlainData","","Plain data with a name and a value.",null,null],[3,"StructuredData","","Mutable structured data.",null,null],[3,"MessageId","","Unique ID for messages",null,null],[3,"XorName","","A [`XOR_NAME_BITS`](constant.XOR_NAME_BITS.html)-bit number, viewed as a point in XOR space.",null,null],[12,"0","","",0,null],[4,"Authority","","An entity that can act as a source or destination of a message.",null,null],[13,"ClientManager","","Manager of a Client. XorName is the hash of the Client's `client_key`.",1,null],[13,"NaeManager","","Manager of a network-addressable element. XorName is the name of the element in question.",1,null],[13,"NodeManager","","Manager of a ManagedNode. XorName is that of the ManagedNode.",1,null],[13,"ManagedNode","","A non-client node (i.e. a vault) which is managed by NodeManagers. XorName is provided\nby the network relocation process immediately after bootstrapping.",1,null],[13,"Client","","A Client.",1,null],[12,"client_key","routing::Authority","The client's public signing key. The hash of this specifies the location of the Client\nin the network address space.",1,null],[12,"peer_id","","The Crust peer ID of the client.",1,null],[12,"proxy_node_name","","The name of the single ManagedNode which the Client connects to and proxies all messages\nthrough.",1,null],[4,"Data","routing","This is the data types routing handles in the public interface",null,null],[13,"Structured","","`StructuredData` data type.",2,null],[13,"Immutable","","`ImmutableData` data type.",2,null],[13,"Plain","","`PlainData` data type.",2,null],[4,"DataIdentifier","","An identifier to address a data chunk.",null,null],[13,"Structured","","Data request, (Identifier, TypeTag) pair for name resolution, for StructuredData.",3,null],[13,"Immutable","","Data request, (Identifier), for `ImmutableData`.",3,null],[13,"Plain","","Request for PlainData.",3,null],[4,"InterfaceError","","The type of errors that can occur if routing is unable to handle a send request.",null,null],[13,"NotConnected","","We are not connected to the network.",4,null],[13,"ChannelRxError","","Error while trying to receive a message from a channel",4,null],[13,"EventSenderError","","Error while trying to transmit an event via a channel",4,null],[4,"RoutingError","","The type of errors that can occur during handling of routing events.",null,null],[13,"NotBootstrapped","","The node/client has not bootstrapped yet",5,null],[13,"Terminated","","Invalid State",5,null],[13,"BadAuthority","","Invalid requester or handler authorities",5,null],[13,"AlreadyConnected","","Failure to connect to an already connected node",5,null],[13,"UnknownMessageType","","Received message having unknown type",5,null],[13,"FailedSignature","","Failed signature check",5,null],[13,"NotEnoughSignatures","","Not Enough signatures",5,null],[13,"DuplicateSignatures","","Duplicate signatures",5,null],[13,"FilterCheckFailed","","Duplicate request received",5,null],[13,"FailedToBootstrap","","Failure to bootstrap off the provided endpoints",5,null],[13,"RoutingTableEmpty","","Unexpected empty routing table",5,null],[13,"RejectedPublicId","","Public id rejected because of disallowed relocated status",5,null],[13,"RefusedFromRoutingTable","","Routing table did not add the node information, either because it was already added, or\nbecause it did not improve the routing table",5,null],[13,"RejectedGetCloseGroup","","Rejected providing the close group, because the destination address does not match any of\nthe sender's buckets",5,null],[13,"RejectedClientMessage","","A client with `client_restriction == true` tried to send a message restricted to nodes.",5,null],[13,"Utf8","","String errors",5,null],[13,"Interface","","Interface error",5,null],[13,"Io","","i/o error",5,null],[13,"Crust","","Crust error",5,null],[13,"SendEventError","","Channel sending error",5,null],[13,"InvalidStateForOperation","","Current state is invalid for the operation",5,null],[13,"SerialisationError","","Serialisation Error",5,null],[13,"AsymmetricDecryptionFailure","","Asymmetric Decryption Failure",5,null],[13,"UnknownConnection","","Unknown Connection",5,null],[13,"DirectionCheckFailed","","The message is not getting closer to the target",5,null],[13,"RoutingTableBucketIndexFailed","","Density mismatch",5,null],[13,"InvalidDestination","","Invalid Destination",5,null],[13,"ProxyConnectionNotFound","","Connection to proxy node does not exist in proxy map",5,null],[13,"ClientConnectionNotFound","","Connection to client does not exist in client map",5,null],[13,"InvalidSource","","Invalid Source",5,null],[13,"CannotTunnelThroughTunnel","","Attempted to use a node as a tunnel that is not directly connected",5,null],[13,"HashMismatch","","Decoded a user message with an unexpected hash.",5,null],[4,"Event","","An Event raised by a `Node` or `Client` via its event sender.",null,null],[13,"Request","","Received a request message.",6,null],[12,"request","routing::Event","The request message.",6,null],[12,"src","","The source authority that sent the request.",6,null],[12,"dst","","The destination authority that receives the request.",6,null],[13,"Response","routing","Received a response message.",6,null],[12,"response","routing::Event","The response message.",6,null],[12,"src","","The source authority that sent the response.",6,null],[12,"dst","","The destination authority that receives the response.",6,null],[13,"NodeAdded","routing","A new node joined the network and may be a member of group authorities we also belong to.",6,null],[13,"NodeLost","","A node left the network and may have been a member of group authorities we also belong to.",6,null],[13,"Connected","","The client has successfully connected to a proxy node on the network.",6,null],[13,"RestartRequired","","Disconnected or failed to connect - restart required.",6,null],[13,"Terminate","","Startup failed - terminate.",6,null],[13,"Tick","","This event is sent periodically every time Routing sends the `Heartbeat` messages.",6,null],[4,"Request","","Request message types",null,null],[13,"Refresh","","Message from upper layers sending network state on any network churn event.",7,null],[13,"Get","","Ask for data from network, passed from API with data name as parameter",7,null],[13,"Put","","Put data to network. Provide actual data as parameter",7,null],[13,"Post","","Post data to network. Provide actual data as parameter",7,null],[13,"Delete","","Delete data from network. Provide actual data as parameter",7,null],[13,"GetAccountInfo","","Get account information for Client with given ID",7,null],[4,"Response","","Response message types",null,null],[13,"GetSuccess","","Reply with the requested data (may not be ignored)",8,null],[13,"PutSuccess","","Success token for Put (may be ignored)",8,null],[13,"PostSuccess","","Success token for Post (may be ignored)",8,null],[13,"DeleteSuccess","","Success token for delete (may be ignored)",8,null],[13,"GetAccountInfoSuccess","","Response containing account information for requested Client account",8,null],[12,"id","routing::Response","Unique message identifier",8,null],[12,"data_stored","","Amount of data stored on the network by this Client",8,null],[12,"space_available","","Amount of network space available to this Client",8,null],[13,"GetFailure","routing","Error for `Get`, includes signed request to prevent injection attacks",8,null],[12,"id","routing::Response","Unique message identifier",8,null],[12,"data_id","","ID of the affected data chunk",8,null],[12,"external_error_indicator","","Error type sent back, may be injected from upper layers",8,null],[13,"PutFailure","routing","Error for Put, includes signed request to prevent injection attacks",8,null],[12,"id","routing::Response","Unique message identifier",8,null],[12,"data_id","","ID of the affected data chunk",8,null],[12,"external_error_indicator","","Error type sent back, may be injected from upper layers",8,null],[13,"PostFailure","routing","Error for Post, includes signed request to prevent injection attacks",8,null],[12,"id","routing::Response","Unique message identifier",8,null],[12,"data_id","","ID of the affected data chunk",8,null],[12,"external_error_indicator","","Error type sent back, may be injected from upper layers",8,null],[13,"DeleteFailure","routing","Error for delete, includes signed request to prevent injection attacks",8,null],[12,"id","routing::Response","Unique message identifier",8,null],[12,"data_id","","ID of the affected data chunk",8,null],[12,"external_error_indicator","","Error type sent back, may be injected from upper layers",8,null],[13,"GetAccountInfoFailure","routing","Error for `GetAccountInfo`",8,null],[12,"id","routing::Response","Unique message identifier",8,null],[12,"external_error_indicator","","Error type sent back, may be injected from upper layers",8,null],[4,"XorNameFromHexError","routing","Errors that can occur when decoding a `XorName` from a string.",null,null],[13,"InvalidCharacter","","The given invalid hex character occurred at the given position.",9,null],[13,"WrongLength","","The hex string did not encode `XOR_NAME_LEN` bytes.",9,null],[11,"hash","","",1,null],[11,"clone","","",1,null],[11,"cmp","","",1,null],[11,"partial_cmp","","",1,null],[11,"lt","","",1,null],[11,"le","","",1,null],[11,"gt","","",1,null],[11,"ge","","",1,null],[11,"eq","","",1,null],[11,"ne","","",1,null],[11,"decode","","",1,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",1,null],[11,"is_group","","Returns true if group authority, otherwise false.",1,null],[11,"name","","Returns the name of authority.",1,null],[11,"to_destination","","Returns the `Destination` for the `RoutingTable`.",1,null],[11,"fmt","","",1,null],[11,"new","","Create a new `Client`.",10,{"inputs":[{"name":"sender"},{"name":"option"}],"output":{"name":"result"}}],[11,"send_get_request","","Send a Get message with a `DataIdentifier` to an `Authority`, signed with given keys.",10,null],[11,"send_put_request","","Add something to the network",10,null],[11,"send_post_request","","Change something already on the network",10,null],[11,"send_delete_request","","Remove something from the network",10,null],[11,"send_get_account_info_request","","Request account information for the Client calling this function",10,null],[11,"name","","Returns the name of this node.",10,null],[11,"drop","","",10,null],[11,"decode","","",2,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",2,null],[11,"clone","","",2,null],[11,"cmp","","",2,null],[11,"partial_cmp","","",2,null],[11,"lt","","",2,null],[11,"le","","",2,null],[11,"gt","","",2,null],[11,"ge","","",2,null],[11,"eq","","",2,null],[11,"ne","","",2,null],[11,"hash","","",2,null],[11,"name","","Return data name.",2,null],[11,"identifier","","Return data identifier.",2,null],[11,"payload_size","","Return data size.",2,null],[11,"decode","","",3,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",3,null],[11,"clone","","",3,null],[11,"cmp","","",3,null],[11,"partial_cmp","","",3,null],[11,"lt","","",3,null],[11,"le","","",3,null],[11,"gt","","",3,null],[11,"ge","","",3,null],[11,"eq","","",3,null],[11,"ne","","",3,null],[11,"fmt","","",3,null],[11,"hash","","",3,null],[11,"fmt","","",2,null],[11,"name","","DataIdentifier name.",3,null],[11,"fmt","","",4,null],[11,"from","","",4,{"inputs":[{"name":"eventsendererror"}],"output":{"name":"interfaceerror"}}],[11,"from","","",4,{"inputs":[{"name":"recverror"}],"output":{"name":"interfaceerror"}}],[11,"fmt","","",5,null],[11,"from","","",5,{"inputs":[{"name":"utf8error"}],"output":{"name":"routingerror"}}],[11,"from","","",5,{"inputs":[{"name":"error"}],"output":{"name":"routingerror"}}],[11,"from","","",5,{"inputs":[{"name":"interfaceerror"}],"output":{"name":"routingerror"}}],[11,"from","","",5,{"inputs":[{"name":"crusterror"}],"output":{"name":"routingerror"}}],[11,"from","","",5,{"inputs":[{"name":"senderror"}],"output":{"name":"routingerror"}}],[11,"from","","",5,{"inputs":[{"name":"serialisationerror"}],"output":{"name":"routingerror"}}],[11,"eq","","",6,null],[11,"ne","","",6,null],[11,"clone","","",6,null],[11,"fmt","","",6,null],[11,"clone","","",11,null],[11,"new","","Construct a FullId with newly generated keys.",11,{"inputs":[],"output":{"name":"fullid"}}],[11,"with_keys","","Construct with given keys, (Client requirement).",11,null],[11,"public_id","","Returns public ID reference.",11,null],[11,"public_id_mut","","Returns mutable reference to public ID.",11,null],[11,"signing_private_key","","Secret signing key.",11,null],[11,"encrypting_private_key","","Private encryption key.",11,null],[11,"default","","",11,{"inputs":[],"output":{"name":"fullid"}}],[11,"decode","","",12,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",12,null],[11,"clone","","",12,null],[11,"cmp","","",12,null],[11,"partial_cmp","","",12,null],[11,"lt","","",12,null],[11,"le","","",12,null],[11,"gt","","",12,null],[11,"ge","","",12,null],[11,"eq","","",12,null],[11,"ne","","",12,null],[11,"hash","","",12,null],[11,"fmt","","",12,null],[11,"name","","Return initial/relocated name.",12,null],[11,"set_name","","Name field is initially same as original_name, this should be replaced by relocated name\ncalculated by the nodes close to original_name by using this method",12,null],[11,"encrypting_public_key","","Return public signing key.",12,null],[11,"signing_public_key","","Return public signing key.",12,null],[11,"partial_cmp","","",13,null],[11,"lt","","",13,null],[11,"le","","",13,null],[11,"gt","","",13,null],[11,"ge","","",13,null],[11,"cmp","","",13,null],[11,"eq","","",13,null],[11,"ne","","",13,null],[11,"clone","","",13,null],[11,"hash","","",13,null],[11,"new","","Creates a new instance of `ImmutableData`",13,{"inputs":[{"name":"vec"}],"output":{"name":"immutabledata"}}],[11,"value","","Returns the value",13,null],[11,"name","","Returns name ensuring invariant.",13,null],[11,"payload_size","","Returns size of contained value.",13,null],[11,"identifier","","Returns `DataIdentifier` for this data element.",13,null],[11,"encode","","",13,null],[11,"decode","","",13,{"inputs":[{"name":"d"}],"output":{"name":"result"}}],[11,"fmt","","",13,null],[11,"decode","","",7,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",7,null],[11,"hash","","",7,null],[11,"clone","","",7,null],[11,"eq","","",7,null],[11,"ne","","",7,null],[11,"partial_cmp","","",7,null],[11,"lt","","",7,null],[11,"le","","",7,null],[11,"gt","","",7,null],[11,"ge","","",7,null],[11,"cmp","","",7,null],[11,"decode","","",8,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",8,null],[11,"hash","","",8,null],[11,"clone","","",8,null],[11,"eq","","",8,null],[11,"ne","","",8,null],[11,"partial_cmp","","",8,null],[11,"lt","","",8,null],[11,"le","","",8,null],[11,"gt","","",8,null],[11,"ge","","",8,null],[11,"cmp","","",8,null],[11,"priority","","The priority Crust should send this message with.",7,null],[11,"is_cacheable","","Is the response corresponding to this request cacheable?",7,null],[11,"priority","","The priority Crust should send this message with.",8,null],[11,"is_cacheable","","Is this response cacheable?",8,null],[11,"fmt","","",7,null],[11,"fmt","","",8,null],[11,"cache","","Configures the node to use the given request cache.",14,null],[11,"first","","Configures the node to start a new network instead of joining an existing one.",14,null],[11,"deny_other_local_nodes","","Causes node creation to fail if another node on the local network is detected.",14,null],[11,"create","","Creates new `Node`.",14,null],[11,"builder","","Creates a new builder to configure and create a `Node`.",15,{"inputs":[],"output":{"name":"nodebuilder"}}],[11,"send_get_request","","Send a `Get` request to `dst` to retrieve data from the network.",15,null],[11,"send_put_request","","Send a `Put` request to `dst` to store data on the network.",15,null],[11,"send_post_request","","Send a `Post` request to `dst` to modify data on the network.",15,null],[11,"send_delete_request","","Send a `Delete` request to `dst` to remove data from the network.",15,null],[11,"send_get_success","","Respond to a `Get` request indicating success and sending the requested data.",15,null],[11,"send_get_failure","","Respond to a `Get` request indicating failure.",15,null],[11,"send_put_success","","Respond to a `Put` request indicating success.",15,null],[11,"send_put_failure","","Respond to a `Put` request indicating failure.",15,null],[11,"send_post_success","","Respond to a `Post` request indicating success.",15,null],[11,"send_post_failure","","Respond to a `Post` request indicating failure.",15,null],[11,"send_delete_success","","Respond to a `Delete` request indicating success.",15,null],[11,"send_delete_failure","","Respond to a `Delete` request indicating failure.",15,null],[11,"send_get_account_info_success","","Respond to a `GetAccountInfo` request indicating success.",15,null],[11,"send_get_account_info_failure","","Respond to a `GetAccountInfo` request indicating failure.",15,null],[11,"send_refresh_request","","Send a `Refresh` request from `src` to `dst` to trigger churn.",15,null],[11,"close_group","","Returns the names of the nodes in the routing table which are closest to the given one.",15,null],[11,"name","","Returns the name of this node.",15,null],[11,"quorum_size","","Returns the name of this node.",15,null],[11,"drop","","",15,null],[11,"cmp","","",16,null],[11,"partial_cmp","","",16,null],[11,"lt","","",16,null],[11,"le","","",16,null],[11,"gt","","",16,null],[11,"ge","","",16,null],[11,"eq","","",16,null],[11,"ne","","",16,null],[11,"decode","","",16,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",16,null],[11,"clone","","",16,null],[11,"hash","","",16,null],[11,"new","","Creates a new instance of `PlainData`.",16,{"inputs":[{"name":"xorname"},{"name":"vec"}],"output":{"name":"plaindata"}}],[11,"value","","Returns the value.",16,null],[11,"name","","Returns the name.",16,null],[11,"payload_size","","Returns the size of the contained data. Equivalent to `value().len()`.",16,null],[11,"identifier","","Returns `DataIdentifier` for this data element.",16,null],[11,"fmt","","",16,null],[11,"encode","","",17,null],[11,"decode","","",17,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"clone","","",17,null],[11,"cmp","","",17,null],[11,"partial_cmp","","",17,null],[11,"lt","","",17,null],[11,"le","","",17,null],[11,"gt","","",17,null],[11,"ge","","",17,null],[11,"eq","","",17,null],[11,"ne","","",17,null],[11,"hash","","",17,null],[11,"new","","Creates a new `StructuredData` signed with `signing_key`.",17,{"inputs":[{"name":"u64"},{"name":"xorname"},{"name":"u64"},{"name":"vec"},{"name":"vec"},{"name":"vec"},{"name":"option"}],"output":{"name":"result"}}],[11,"replace_with_other","","Replaces this data item with the given updated version if the update is valid, otherwise\nreturns an error.",17,null],[11,"name","","Returns the name.",17,null],[11,"identifier","","Returns `DataIdentifier` for this data element.",17,null],[11,"validate_self_against_successor","","Verifies that `other` is a valid update for `self`; returns an error otherwise.",17,null],[11,"add_signature","","Adds a signature with the given `secret_key` to the `previous_owner_signatures` and returns\nthe number of signatures that are still required. If more than 50% of the previous owners\nhave signed, 0 is returned and validation is complete.",17,null],[11,"replace_signatures","","Overwrite any existing signatures with the new signatures provided.",17,null],[11,"get_type_tag","","Get the type_tag",17,null],[11,"get_data","","Get the serialised data",17,null],[11,"get_previous_owner_keys","","Get the previous owner keys",17,null],[11,"get_version","","Get the version",17,null],[11,"get_owner_keys","","Get the current owner keys",17,null],[11,"get_previous_owner_signatures","","Get previous owner signatures",17,null],[11,"payload_size","","Return data size.",17,null],[11,"fmt","","",17,null],[11,"hash","","",18,null],[11,"decode","","",18,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",18,null],[11,"eq","","",18,null],[11,"ne","","",18,null],[11,"clone","","",18,null],[11,"fmt","","",18,null],[11,"partial_cmp","","",18,null],[11,"lt","","",18,null],[11,"le","","",18,null],[11,"gt","","",18,null],[11,"ge","","",18,null],[11,"cmp","","",18,null],[11,"new","","Generate a new `MessageId` with random content.",18,{"inputs":[],"output":{"name":"messageid"}}],[11,"zero","","Generate a `MessageId` with value 0. This should only be used for messages where there is\nno danger of duplication.",18,{"inputs":[],"output":{"name":"messageid"}}],[11,"from_lost_node","","Generate a new `MessageId` with contents extracted from lost node.",18,{"inputs":[{"name":"xorname"}],"output":{"name":"messageid"}}],[11,"from_added_node","","Generate a new `MessageId` with contents extracted from new node.",18,{"inputs":[{"name":"xorname"}],"output":{"name":"messageid"}}],[11,"from_reverse","","Generate the reverse of the given `MessageId`.",18,{"inputs":[{"name":"messageid"}],"output":{"name":"messageid"}}],[11,"increment_first_byte","","Generate the increment (on the MSB only) of the given `MessageId`.",18,{"inputs":[{"name":"messageid"}],"output":{"name":"messageid"}}],[11,"decrement_first_byte","","Generate the decrement (on the MSB only) of the given `MessageId`.",18,{"inputs":[{"name":"messageid"}],"output":{"name":"messageid"}}],[11,"default","","",18,{"inputs":[],"output":{"name":"messageid"}}],[11,"fmt","","",9,null],[11,"partial_cmp","","",0,null],[11,"lt","","",0,null],[11,"le","","",0,null],[11,"gt","","",0,null],[11,"ge","","",0,null],[11,"eq","","",0,null],[11,"ne","","",0,null],[11,"cmp","","",0,null],[11,"hash","","",0,null],[11,"clone","","",0,null],[11,"to_hex","","Hex-encode the `XorName` as a `String`.",0,null],[11,"with_flipped_bit","","Returns a copy of `self`, with the `index`-th bit flipped.",0,null],[11,"count_differing_bits","","Returns the number of bits in which `self` differs from `other`.",0,null],[11,"from_hex","","Hex-decode a `XorName` from a `&str`.",0,{"inputs":[{"name":"str"}],"output":{"name":"result"}}],[11,"bucket_index","","Returns the number of leading bits in which `self` and `name` agree.",0,null],[11,"cmp_distance","","Compares `lhs` and `rhs` with respect to their distance from `self`.",0,null],[11,"differs_in_bit","","Returns `true` if the `i`-th bit of `name` is different from the `i`-th bit of `self`.",0,null],[11,"closer","","Returns true if `lhs` is closer to `self` than `rhs`.",0,null],[11,"closer_or_equal","","Returns true if `lhs` is closer to `self` than `rhs`, or `lhs == rhs`.",0,null],[11,"bucket_index","","",0,null],[11,"cmp_distance","","",0,null],[11,"differs_in_bit","","",0,null],[11,"fmt","","",0,null],[11,"fmt","","",0,null],[11,"rand","","",0,{"inputs":[{"name":"r"}],"output":{"name":"xorname"}}],[11,"index","","",0,null],[11,"index","","",0,null],[11,"index","","",0,null],[11,"index","","",0,null],[11,"encode","","",0,null],[11,"decode","","",0,{"inputs":[{"name":"d"}],"output":{"name":"result"}}],[17,"GROUP_SIZE","","The group size for the routing table. This is the maximum that can be used for consensus.",null,null],[17,"QUORUM_SIZE","","The quorum for group consensus.",null,null],[17,"MAX_STRUCTURED_DATA_SIZE_IN_BYTES","","Maximum allowed size for a Structured Data to grow to",null,null],[17,"XOR_NAME_BITS","","Constant bit length of `XorName`.",null,null],[17,"XOR_NAME_LEN","","Constant byte length of `XorName`.",null,null],[8,"Cache","","A cache that stores `Response`s keyed by `Requests`. Should be implemented\nby layers above routing.",null,null],[10,"get","","Retrieve cached response for the given request.",19,null],[10,"put","","Cache the given response.",19,null]],"paths":[[3,"XorName"],[4,"Authority"],[4,"Data"],[4,"DataIdentifier"],[4,"InterfaceError"],[4,"RoutingError"],[4,"Event"],[4,"Request"],[4,"Response"],[4,"XorNameFromHexError"],[3,"Client"],[3,"FullId"],[3,"PublicId"],[3,"ImmutableData"],[3,"NodeBuilder"],[3,"Node"],[3,"PlainData"],[3,"StructuredData"],[3,"MessageId"],[8,"Cache"]]}; initSearch(searchIndex);