diff --git a/bindings/cgosling/cgosling_8h.html b/bindings/cgosling/cgosling_8h.html index 93ebfb92..29bb5f70 100644 --- a/bindings/cgosling/cgosling_8h.html +++ b/bindings/cgosling/cgosling_8h.html @@ -158,56 +158,56 @@
Enumerations |
Functions | |||||||||
void | gosling_context_set_tor_bootstrap_status_received_callback (gosling_context *context, gosling_tor_bootstrap_status_received_callback_t callback, gosling_error **error) | ||||||||
void | gosling_context_set_tor_bootstrap_completed_callback (gosling_context *context, gosling_tor_bootstrap_completed_callback_t callback, gosling_error **error) | ||||||||
void | gosling_context_set_tor_log_received_callback (gosling_context *context, gosling_tor_log_received_callback_t callback, gosling_error **error) | ||||||||
void | gosling_context_set_identity_client_challenge_response_size_callback (gosling_context *context, gosling_identity_client_handshake_challenge_response_size_callback_t callback, gosling_error **error) | ||||||||
void | gosling_context_set_identity_client_build_challenge_response_callback (gosling_context *context, gosling_identity_client_handshake_build_challenge_response_callback_t callback, gosling_error **error) | ||||||||
void | gosling_context_set_identity_client_handshake_completed_callback (gosling_context *context, gosling_identity_client_handshake_completed_callback_t callback, gosling_error **error) | ||||||||
void | gosling_context_set_identity_client_handshake_failed_callback (gosling_context *context, gosling_identity_client_handshake_failed_callback_t callback, gosling_error **error) | ||||||||
void | gosling_context_set_identity_server_published_callback (gosling_context *context, gosling_identity_server_published_callback_t callback, gosling_error **error) | ||||||||
void | gosling_context_set_identity_server_handshake_started_callback (gosling_context *context, gosling_identity_server_handshake_started_callback_t callback, gosling_error **error) | ||||||||
void | gosling_context_set_identity_server_client_allowed_callback (gosling_context *context, gosling_identity_server_handshake_client_allowed_callback_t callback, gosling_error **error) | ||||||||
void | gosling_context_set_identity_server_endpoint_supported_callback (gosling_context *context, gosling_identity_server_endpoint_supported_callback_t callback, gosling_error **error) | ||||||||
void | gosling_context_set_identity_server_challenge_size_callback (gosling_context *context, gosling_identity_server_handshake_challenge_size_callback_t callback, gosling_error **error) | ||||||||
void | gosling_context_set_identity_server_build_challenge_callback (gosling_context *context, gosling_identity_server_handshake_build_challenge_callback_t callback, gosling_error **error) | ||||||||
void | gosling_context_set_identity_server_verify_challenge_response_callback (gosling_context *context, gosling_identity_server_handshake_verify_challenge_response_callback_t callback, gosling_error **error) | ||||||||
void | gosling_context_set_identity_server_handshake_completed_callback (gosling_context *context, gosling_identity_server_handshake_completed_callback_t callback, gosling_error **error) | ||||||||
void | gosling_context_set_identity_server_handshake_rejected_callback (gosling_context *context, gosling_identity_server_handshake_rejected_callback_t callback, gosling_error **error) | ||||||||
void | gosling_context_set_identity_server_handshake_failed_callback (gosling_context *context, gosling_identity_server_handshake_failed_callback_t callback, gosling_error **error) | ||||||||
void | gosling_context_set_endpoint_client_handshake_completed_callback (gosling_context *context, gosling_endpoint_client_handshake_completed_callback_t callback, gosling_error **error) | ||||||||
void | gosling_context_set_endpoint_client_handshake_failed_callback (gosling_context *context, gosling_endpoint_client_handshake_failed_callback_t callback, gosling_error **error) | ||||||||
void | gosling_context_set_endpoint_server_published_callback (gosling_context *context, gosling_endpoint_server_published_callback_t callback, gosling_error **error) | ||||||||
void | gosling_context_set_endpoint_server_handshake_started_callback (gosling_context *context, gosling_endpoint_server_handshake_started_callback_t callback, gosling_error **error) | ||||||||
void | gosling_context_set_endpoint_server_channel_supported_callback (gosling_context *context, gosling_endpoint_server_channel_supported_callback_t callback, gosling_error **error) | ||||||||
void | gosling_context_set_endpoint_server_handshake_completed_callback (gosling_context *context, gosling_endpoint_server_handshake_completed_callback_t callback, gosling_error **error) | ||||||||
void | gosling_context_set_endpoint_server_handshake_rejected_callback (gosling_context *context, gosling_endpoint_server_handshake_rejected_callback_t callback, gosling_error **error) | ||||||||
void | gosling_context_set_endpoint_server_handshake_failed_callback (gosling_context *context, gosling_endpoint_server_handshake_failed_callback_t callback, gosling_error **error) | ||||||||
void | gosling_context_set_tor_bootstrap_status_received_callback (gosling_context *context, gosling_tor_bootstrap_status_received_callback_t callback, void *callback_data, gosling_error **error) | ||||||||
void | gosling_context_set_tor_bootstrap_completed_callback (gosling_context *context, gosling_tor_bootstrap_completed_callback_t callback, void *callback_data, gosling_error **error) | ||||||||
void | gosling_context_set_tor_log_received_callback (gosling_context *context, gosling_tor_log_received_callback_t callback, void *callback_data, gosling_error **error) | ||||||||
void | gosling_context_set_identity_client_challenge_response_size_callback (gosling_context *context, gosling_identity_client_handshake_challenge_response_size_callback_t callback, void *callback_data, gosling_error **error) | ||||||||
void | gosling_context_set_identity_client_build_challenge_response_callback (gosling_context *context, gosling_identity_client_handshake_build_challenge_response_callback_t callback, void *callback_data, gosling_error **error) | ||||||||
void | gosling_context_set_identity_client_handshake_completed_callback (gosling_context *context, gosling_identity_client_handshake_completed_callback_t callback, void *callback_data, gosling_error **error) | ||||||||
void | gosling_context_set_identity_client_handshake_failed_callback (gosling_context *context, gosling_identity_client_handshake_failed_callback_t callback, void *callback_data, gosling_error **error) | ||||||||
void | gosling_context_set_identity_server_published_callback (gosling_context *context, gosling_identity_server_published_callback_t callback, void *callback_data, gosling_error **error) | ||||||||
void | gosling_context_set_identity_server_handshake_started_callback (gosling_context *context, gosling_identity_server_handshake_started_callback_t callback, void *callback_data, gosling_error **error) | ||||||||
void | gosling_context_set_identity_server_client_allowed_callback (gosling_context *context, gosling_identity_server_handshake_client_allowed_callback_t callback, void *callback_data, gosling_error **error) | ||||||||
void | gosling_context_set_identity_server_endpoint_supported_callback (gosling_context *context, gosling_identity_server_endpoint_supported_callback_t callback, void *callback_data, gosling_error **error) | ||||||||
void | gosling_context_set_identity_server_challenge_size_callback (gosling_context *context, gosling_identity_server_handshake_challenge_size_callback_t callback, void *callback_data, gosling_error **error) | ||||||||
void | gosling_context_set_identity_server_build_challenge_callback (gosling_context *context, gosling_identity_server_handshake_build_challenge_callback_t callback, void *callback_data, gosling_error **error) | ||||||||
void | gosling_context_set_identity_server_verify_challenge_response_callback (gosling_context *context, gosling_identity_server_handshake_verify_challenge_response_callback_t callback, void *callback_data, gosling_error **error) | ||||||||
void | gosling_context_set_identity_server_handshake_completed_callback (gosling_context *context, gosling_identity_server_handshake_completed_callback_t callback, void *callback_data, gosling_error **error) | ||||||||
void | gosling_context_set_identity_server_handshake_rejected_callback (gosling_context *context, gosling_identity_server_handshake_rejected_callback_t callback, void *callback_data, gosling_error **error) | ||||||||
void | gosling_context_set_identity_server_handshake_failed_callback (gosling_context *context, gosling_identity_server_handshake_failed_callback_t callback, void *callback_data, gosling_error **error) | ||||||||
void | gosling_context_set_endpoint_client_handshake_completed_callback (gosling_context *context, gosling_endpoint_client_handshake_completed_callback_t callback, void *callback_data, gosling_error **error) | ||||||||
void | gosling_context_set_endpoint_client_handshake_failed_callback (gosling_context *context, gosling_endpoint_client_handshake_failed_callback_t callback, void *callback_data, gosling_error **error) | ||||||||
void | gosling_context_set_endpoint_server_published_callback (gosling_context *context, gosling_endpoint_server_published_callback_t callback, void *callback_data, gosling_error **error) | ||||||||
void | gosling_context_set_endpoint_server_handshake_started_callback (gosling_context *context, gosling_endpoint_server_handshake_started_callback_t callback, void *callback_data, gosling_error **error) | ||||||||
void | gosling_context_set_endpoint_server_channel_supported_callback (gosling_context *context, gosling_endpoint_server_channel_supported_callback_t callback, void *callback_data, gosling_error **error) | ||||||||
void | gosling_context_set_endpoint_server_handshake_completed_callback (gosling_context *context, gosling_endpoint_server_handshake_completed_callback_t callback, void *callback_data, gosling_error **error) | ||||||||
void | gosling_context_set_endpoint_server_handshake_rejected_callback (gosling_context *context, gosling_endpoint_server_handshake_rejected_callback_t callback, void *callback_data, gosling_error **error) | ||||||||
void | gosling_context_set_endpoint_server_handshake_failed_callback (gosling_context *context, gosling_endpoint_server_handshake_failed_callback_t callback, void *callback_data, gosling_error **error) | ||||||||
void | gosling_context_free (gosling_context *in_context) | ||||||||
void | gosling_context_init (gosling_context **out_context, gosling_tor_provider *in_tor_provider, uint16_t identity_port, uint16_t endpoint_port, const gosling_ed25519_private_key *identity_private_key, gosling_error **error) |
typedef void(* gosling_endpoint_client_handshake_completed_callback_t) (gosling_context *context, gosling_handshake_handle_t handshake_handle, const gosling_v3_onion_service_id *endpoint_service_id, const char *channel_name, size_t channel_name_length, gosling_tcp_socket_t stream) | +typedef void(* gosling_endpoint_client_handshake_completed_callback_t) (void *callback_data, gosling_context *context, gosling_handshake_handle_t handshake_handle, const gosling_v3_onion_service_id *endpoint_service_id, const char *channel_name, size_t channel_name_length, gosling_tcp_socket_t stream) |
The function pointer type for the endpoint client handshake completed callback. This callback is called when the client successfully connects to an endpoint server.
callback_data | arbitrary pointer to developer-defined memory provided when setting this callback | ||||||||
context | the context associated with this event | ||||||||
handshake_handle | the handshake handle this callback is associated with | ||||||||
endpoint_service_id | the onion service id of the endpoint server the client has connected to |
typedef void(* gosling_endpoint_client_handshake_failed_callback_t) (gosling_context *context, gosling_handshake_handle_t handshake_handle, const gosling_error *error) | +typedef void(* gosling_endpoint_client_handshake_failed_callback_t) (void *callback_data, gosling_context *context, gosling_handshake_handle_t handshake_handle, const gosling_error *error) |
The function pointer type for the endpoint client handshake handshake failed callback. This callback is called when a client's endpoint handshake fails.
callback_data | arbitrary pointer to developer-defined memory provided when setting this callback | ||||||||
context | the context associated with this event | ||||||||
handshake_handle | the handshake handle this callback is associated with | ||||||||
error | error associated with this failure |
typedef bool(* gosling_endpoint_server_channel_supported_callback_t) (gosling_context *context, gosling_handshake_handle_t handshake_handle, const gosling_v3_onion_service_id *client_service_id, const char *channel_name, size_t channel_name_length) | +typedef bool(* gosling_endpoint_server_channel_supported_callback_t) (void *callback_data, gosling_context *context, gosling_handshake_handle_t handshake_handle, const gosling_v3_onion_service_id *client_service_id, const char *channel_name, size_t channel_name_length) |
The function pointer type of the endpoint server channel supported callback. This callback is called when the server needs to determine if the client's requested channel is supported. The result of this callback partially determines if an incoming endpoint client handshake request is possible to complete.
callback_data | arbitrary pointer to developer-defined memory provided when setting this callback | ||||||||
context | the context associated with this event | ||||||||
handshake_handle | the handshake handle this callback is associated with | ||||||||
client_service_id | the onion service id of the connected endpoint client |
typedef void(* gosling_endpoint_server_handshake_completed_callback_t) (gosling_context *context, gosling_handshake_handle_t handshake_handle, const gosling_v3_onion_service_id *endpoint_service_id, const gosling_v3_onion_service_id *client_service_id, const char *channel_name, size_t channel_name_length, gosling_tcp_socket_t stream) | +typedef void(* gosling_endpoint_server_handshake_completed_callback_t) (void *callback_data, gosling_context *context, gosling_handshake_handle_t handshake_handle, const gosling_v3_onion_service_id *endpoint_service_id, const gosling_v3_onion_service_id *client_service_id, const char *channel_name, size_t channel_name_length, gosling_tcp_socket_t stream) |
The function pointer type for the endpoint server handshake completed callback. This callback is called when an endpoint server completes a handshake with an endpoint client.
callback_data | arbitrary pointer to developer-defined memory provided when setting this callback | ||||||||
context | the context associated with this event | ||||||||
handshake_handle | the handshake handle this callback is associated with | ||||||||
endpoint_service_id | the onion service id of the endpoint server the endpoint client has connected to |
typedef void(* gosling_endpoint_server_handshake_failed_callback_t) (gosling_context *context, gosling_handshake_handle_t handshake_handle, const gosling_error *error) | +typedef void(* gosling_endpoint_server_handshake_failed_callback_t) (void *callback_data, gosling_context *context, gosling_handshake_handle_t handshake_handle, const gosling_error *error) |
The function pointer type for the endpoint server handshake handshake failed callback. This callback is called when a server's endpoint handshake fails.
callback_data | arbitrary pointer to developer-defined memory provided when setting this callback | ||||||||
context | the context associated with this event | ||||||||
handshake_handle | the handshake handle this callback is associated with | ||||||||
error | error associated with this failure |
typedef void(* gosling_endpoint_server_handshake_rejected_callback_t) (gosling_context *context, gosling_handshake_handle_t handshake_handle, bool client_allowed, bool client_requested_channel_valid, bool client_proof_signature_valid) | +typedef void(* gosling_endpoint_server_handshake_rejected_callback_t) (void *callback_data, gosling_context *context, gosling_handshake_handle_t handshake_handle, bool client_allowed, bool client_requested_channel_valid, bool client_proof_signature_valid) |
The function pointer type of the endpoint server handshake rejected callback. This callback is called whenever the endpoint server has rejected an endpoint client's handshake.
callback_data | arbitrary pointer to developer-defined memory provided when setting this callback | ||||||||
context | the context associated with this event | ||||||||
handshake_handle | the handshake handle this callback is associated with | ||||||||
client_allowed | true if requesting client is allowed, false otherwies |
typedef void(* gosling_endpoint_server_handshake_started_callback_t) (gosling_context *context, gosling_handshake_handle_t handshake_handle) | +typedef void(* gosling_endpoint_server_handshake_started_callback_t) (void *callback_data, gosling_context *context, gosling_handshake_handle_t handshake_handle) |
The function pointer type of the endpoint server handshake started callback. This callback is called whenever the endpoint server is initially connected to.
callback_data | arbitrary pointer to developer-defined memory provided when setting this callback |
context | the context associated with this event |
handshake_handle | the handshake handle this callback is associated with |
typedef void(* gosling_endpoint_server_published_callback_t) (gosling_context *context, const gosling_v3_onion_service_id *endpoint_service_id, const char *endpoint_name, size_t endpoint_name_length) | +typedef void(* gosling_endpoint_server_published_callback_t) (void *callback_data, gosling_context *context, const gosling_v3_onion_service_id *endpoint_service_id, const char *endpoint_name, size_t endpoint_name_length) |
The function pointer type for the endpoint server published callback. This callbcak is called whenever the onion service of the indicated endpoint server associted with the given context is published and should be reachable by clients.
callback_data | arbitrary pointer to developer-defined memory provided when setting this callback | ||||||||
context | the context associated with this event | ||||||||
endpoint_service_id | the onion service id of the published endpoint server | ||||||||
endpoint_name | the null-terminated name of the endpoint server published |
typedef void(* gosling_identity_client_handshake_build_challenge_response_callback_t) (gosling_context *context, gosling_handshake_handle_t handshake_handle, const uint8_t *challenge_buffer, size_t challenge_buffer_size, uint8_t *out_challenge_response_buffer, size_t out_challenge_response_buffer_size) | +typedef void(* gosling_identity_client_handshake_build_challenge_response_callback_t) (void *callback_data, gosling_context *context, gosling_handshake_handle_t handshake_handle, const uint8_t *challenge_buffer, size_t challenge_buffer_size, uint8_t *out_challenge_response_buffer, size_t out_challenge_response_buffer_size) |
The function pointer type for the identity client handshake build challlenge response callback. This callback is called when a client is ready to build a challenge response object.
callback_data | arbitrary pointer to developer-defined memory provided when setting this callback | ||||||||
context | the context associated with this event | ||||||||
handshake_handle | the handshake handle this callback is associated with | ||||||||
challenge_buffer | the source buffer containing a BSON document received from the identity server to serve as an endpoint request challenge |
typedef size_t(* gosling_identity_client_handshake_challenge_response_size_callback_t) (gosling_context *context, gosling_handshake_handle_t handshake_handle, const uint8_t *challenge_buffer, size_t challenge_buffer_size) | +typedef size_t(* gosling_identity_client_handshake_challenge_response_size_callback_t) (void *callback_data, gosling_context *context, gosling_handshake_handle_t handshake_handle, const uint8_t *challenge_buffer, size_t challenge_buffer_size) |
The function pointer type for the client handshake challenge response size callback. This callback is called when a client needs to know how much memory to allocate for a challenge response.
callback_data | arbitrary pointer to developer-defined memory provided when setting this callback | ||||||||
context | the context associated with this event | ||||||||
handshake_handle | pointer to the client handshake handle this callback invocation is associated with; null if no client handshake init callback was provided | ||||||||
challenge_buffer | the source buffer containing a BSON document received from the identity server to serve as an endpoint request challenge |
typedef void(* gosling_identity_client_handshake_completed_callback_t) (gosling_context *context, gosling_handshake_handle_t handshake_handle, const gosling_v3_onion_service_id *identity_service_id, const gosling_v3_onion_service_id *endpoint_service_id, const char *endpoint_name, size_t endpoint_name_length, const gosling_x25519_private_key *client_auth_private_key) | +typedef void(* gosling_identity_client_handshake_completed_callback_t) (void *callback_data, gosling_context *context, gosling_handshake_handle_t handshake_handle, const gosling_v3_onion_service_id *identity_service_id, const gosling_v3_onion_service_id *endpoint_service_id, const char *endpoint_name, size_t endpoint_name_length, const gosling_x25519_private_key *client_auth_private_key) |
The function pointer type for the identity client handshake completed callback. This callback is called whenever the client successfully completes a handshake with an identity server and is granted access to an endpoint server.
callback_data | arbitrary pointer to developer-defined memory provided when setting this callback | ||||||||
context | the context associated with this event | ||||||||
handshake_handle | the handshake handle this callback is associated with | ||||||||
identity_service_id | the onion service id of the identity server the client has successfully completed a hadshake with |
typedef void(* gosling_identity_client_handshake_failed_callback_t) (gosling_context *context, gosling_handshake_handle_t handshake_handle, const gosling_error *error) | +typedef void(* gosling_identity_client_handshake_failed_callback_t) (void *callback_data, gosling_context *context, gosling_handshake_handle_t handshake_handle, const gosling_error *error) |
The function pointer type for the identity client handshake handshake failed callback. This callback is called when a client's identity handshake fails.
callback_data | arbitrary pointer to developer-defined memory provided when setting this callback | ||||||||
context | the context associated with this event | ||||||||
handshake_handle | the handshake handle this callback is associated with | ||||||||
error | error associated with this failure |
typedef bool(* gosling_identity_server_endpoint_supported_callback_t) (gosling_context *context, gosling_handshake_handle_t handshake_handle, const char *endpoint_name, size_t endpoint_name_length) | +typedef bool(* gosling_identity_server_endpoint_supported_callback_t) (void *callback_data, gosling_context *context, gosling_handshake_handle_t handshake_handle, const char *endpoint_name, size_t endpoint_name_length) |
The function pointer type of the identity server endpoint supported callback. This callback is called when the server needs to determine if the client's requested endpoint is supported. The result of this callback partially determines if an incoming client handshake request is possible to complete.
callback_data | arbitrary pointer to developer-defined memory provided when setting this callback | ||||||||
context | the context associated with this event | ||||||||
handshake_handle | the handshake handle this callback is associated with | ||||||||
endpoint_name | a null-terminated ASCII string containing the name of the endpoint being requested |
typedef void(* gosling_identity_server_handshake_build_challenge_callback_t) (gosling_context *context, gosling_handshake_handle_t handshake_handle, uint8_t *out_challenge_buffer, size_t out_challenge_buffer_size) | +typedef void(* gosling_identity_server_handshake_build_challenge_callback_t) (void *callback_data, gosling_context *context, gosling_handshake_handle_t handshake_handle, uint8_t *out_challenge_buffer, size_t out_challenge_buffer_size) |
The function pointer type for the server handshake build challenge callback. This callback is called when a server needs to build a challenge object.
callback_data | arbitrary pointer to developer-defined memory provided when setting this callback | ||||||||
context | the context associated with this event | ||||||||
handshake_handle | the handshake handle this callback is associated with | ||||||||
out_challenge_buffer | the destination buffer for the callback to write a BSON document representing the endpoint request challenge object |
typedef size_t(* gosling_identity_server_handshake_challenge_size_callback_t) (gosling_context *context, gosling_handshake_handle_t handshake_handle) | +typedef size_t(* gosling_identity_server_handshake_challenge_size_callback_t) (void *callback_data, gosling_context *context, gosling_handshake_handle_t handshake_handle) |
The function pointer type for the server handshake challenge size callback. This callback is called when a server needs to know how much memory to allocate for a challenge.
callback_data | arbitrary pointer to developer-defined memory provided when setting this callback |
context | the context associated with this event |
handshake_handle | the handshake handle this callback is associated with |
typedef bool(* gosling_identity_server_handshake_client_allowed_callback_t) (gosling_context *context, gosling_handshake_handle_t handshake_handle, const gosling_v3_onion_service_id *client_service_id) | +typedef bool(* gosling_identity_server_handshake_client_allowed_callback_t) (void *callback_data, gosling_context *context, gosling_handshake_handle_t handshake_handle, const gosling_v3_onion_service_id *client_service_id) |
The function pointer type of the identity server handshake client allowed callback. The result of this callback partially determines if an incoming client handshake request is possible to complete. For instance an implementation of this function completed.
callback_data | arbitrary pointer to developer-defined memory provided when setting this callback | ||||||||
context | the context associated with this event | ||||||||
handshake_handle | the handshake handle this callback is associated with | ||||||||
client_service_id | the v3 onion service id of the connected client |
typedef void(* gosling_identity_server_handshake_completed_callback_t) (gosling_context *context, gosling_handshake_handle_t handshake_handle, const gosling_ed25519_private_key *endpoint_private_key, const char *endpoint_name, size_t endpoint_name_length, const gosling_v3_onion_service_id *client_service_id, const gosling_x25519_public_key *client_auth_public_key) | +typedef void(* gosling_identity_server_handshake_completed_callback_t) (void *callback_data, gosling_context *context, gosling_handshake_handle_t handshake_handle, const gosling_ed25519_private_key *endpoint_private_key, const char *endpoint_name, size_t endpoint_name_length, const gosling_v3_onion_service_id *client_service_id, const gosling_x25519_public_key *client_auth_public_key) |
The function pointer type for the identity server handshake completed callback. This callback is called whenever the identity server has successfully completed a handshake with and granted to a connecting identity client.
callback_data | arbitrary pointer to developer-defined memory provided when setting this callback | ||||||||
context | the context associated with this event | ||||||||
handshake_handle | the handshake handle this callback is associated with | ||||||||
endpoint_private_key | the ed25519 private key of the endpoint server to host for the client |
typedef void(* gosling_identity_server_handshake_failed_callback_t) (gosling_context *context, gosling_handshake_handle_t handshake_handle, const gosling_error *error) | +typedef void(* gosling_identity_server_handshake_failed_callback_t) (void *callback_data, gosling_context *context, gosling_handshake_handle_t handshake_handle, const gosling_error *error) |
The function pointer type for the identity server handshake handshake failed callback. This callback is called when a server's identity handshake fails.
callback_data | arbitrary pointer to developer-defined memory provided when setting this callback | ||||||||
context | the context associated with this event | ||||||||
handshake_handle | the handshake handle this callback is associated with | ||||||||
error | error associated with this failure |
typedef void(* gosling_identity_server_handshake_rejected_callback_t) (gosling_context *context, gosling_handshake_handle_t handshake_handle, bool client_allowed, bool client_requested_endpoint_valid, bool client_proof_signature_valid, bool client_auth_signature_valid, bool challenge_response_valid) | +typedef void(* gosling_identity_server_handshake_rejected_callback_t) (void *callback_data, gosling_context *context, gosling_handshake_handle_t handshake_handle, bool client_allowed, bool client_requested_endpoint_valid, bool client_proof_signature_valid, bool client_auth_signature_valid, bool challenge_response_valid) |
The function pointer type of the identity server handshake rejected callback. This callback is called whenever the identity server has rejected an identity client's handshake.
callback_data | arbitrary pointer to developer-defined memory provided when setting this callback | ||||||||
context | the context associated with this event | ||||||||
handshake_handle | the handshake handle this callback is associated with | ||||||||
client_allowed | true if requesting client is allowed, false otherwies |
typedef void(* gosling_identity_server_handshake_started_callback_t) (gosling_context *context, gosling_handshake_handle_t handshake_handle) | +typedef void(* gosling_identity_server_handshake_started_callback_t) (void *callback_data, gosling_context *context, gosling_handshake_handle_t handshake_handle) |
The function pointer type of the identity server handshake started callback. This callback is called whenever the identity server is initially connected to.
callback_data | arbitrary pointer to developer-defined memory provided when setting this callback |
context | the context associated with this event |
handshake_handle | the handshake handle this callback is associated with |
typedef bool(* gosling_identity_server_handshake_verify_challenge_response_callback_t) (gosling_context *context, gosling_handshake_handle_t handshake_handle, const uint8_t *challenge_response_buffer, size_t challenge_response_buffer_size) | +typedef bool(* gosling_identity_server_handshake_verify_challenge_response_callback_t) (void *callback_data, gosling_context *context, gosling_handshake_handle_t handshake_handle, const uint8_t *challenge_response_buffer, size_t challenge_response_buffer_size) |
The function poointer type for the server handshake verify challenge response callback. This callback is called when a server needs to verify a challenge response object.
callback_data | arbitrary pointer to developer-defined memory provided when setting this callback | ||||||||
context | the context associated with this event | ||||||||
handshake_handle | the handshake handle this callback is associated with | ||||||||
challenge_response_buffer | a buffer containing the BSON document representing the endpoint request challenge response object |
typedef void(* gosling_identity_server_published_callback_t) (gosling_context *context) | +typedef void(* gosling_identity_server_published_callback_t) (void *callback_data, gosling_context *context) |
The function pointer type for the identity server published callback. This callback is called whenever the onion service of the identity server associated with the given context is published and should be reachable by clients.
callback_data | arbitrary pointer to developer-defined memory provided when setting this callback |
context | the context associated with this event |
typedef void(* gosling_tor_bootstrap_completed_callback_t) (gosling_context *context) | +typedef void(* gosling_tor_bootstrap_completed_callback_t) (void *callback_data, gosling_context *context) |
The function pointer type for the tor boootstrap completed callback. This callback is called when the context's tor daemon's bootstrap process has completed.
callback_data | arbitrary pointer to developer-defined memory provided when setting this callback |
context | the context associated with this event |
typedef void(* gosling_tor_bootstrap_status_received_callback_t) (gosling_context *context, uint32_t progress, const char *tag, size_t tag_length, const char *summary, size_t summary_length) | +typedef void(* gosling_tor_bootstrap_status_received_callback_t) (void *callback_data, gosling_context *context, uint32_t progress, const char *tag, size_t tag_length, const char *summary, size_t summary_length) |
The function pointer type for the tor bootstrap status received callback. This callback is called when context's tor daemon's bootstrap status has progressed.
callback_data | arbitrary pointer to developer-defined memory provided when setting this callback | ||||||||
context | the context associated with this event | ||||||||
progress | an unsigned integer from 0 to 100 indicating the current completion perentage of the context's bootstrap process | ||||||||
tag | the null-terminated short name of the current bootstrap stage |
typedef void(* gosling_tor_log_received_callback_t) (gosling_context *context, const char *line, size_t line_length) | +typedef void(* gosling_tor_log_received_callback_t) (void *callback_data, gosling_context *context, const char *line, size_t line_length) |
The function pointer type for the tor log received callback. This callback is called whenever the context's tor daemon prints new log lines.
callback_data | arbitrary pointer to developer-defined memory provided when setting this callback | ||||||||
context | the context associated with this event | ||||||||
line | the null-terminated received log line | ||||||||
line_length | the number of chars in line not including the null-terminator | - | gosling_endpoint_client_handshake_completed_callback_t | +gosling_endpoint_client_handshake_completed_callback_t | callback, | +||||
+ | + | void * | +callback_data, | +||||||
@@ -2153,6 +2184,7 @@ | |||||||||
context | the context to register the callback to | ||||||||
callback | the callback to register | ||||||||
callback_data | the custom data to pass to this callback | ||||||||
error | filled on error |
pub enum ContextEvent {
+ContextEvent in gosling::context - Rust Enum gosling::context::ContextEvent
source · pub enum ContextEvent {
Show 21 variants
TorBootstrapStatusReceived {
- progress: u32,
- tag: String,
- summary: String,
+ progress: u32,
+ tag: String,
+ summary: String,
},
TorBootstrapCompleted,
TorLogReceived {
- line: String,
+ line: String,
},
IdentityClientChallengeReceived {
handle: HandshakeHandle,
@@ -16,7 +16,7 @@
handle: HandshakeHandle,
identity_service_id: V3OnionServiceId,
endpoint_service_id: V3OnionServiceId,
- endpoint_name: String,
+ endpoint_name: String,
client_auth_private_key: X25519PrivateKey,
},
IdentityClientHandshakeFailed {
@@ -30,7 +30,7 @@
IdentityServerEndpointRequestReceived {
handle: HandshakeHandle,
client_service_id: V3OnionServiceId,
- requested_endpoint: String,
+ requested_endpoint: String,
},
IdentityServerChallengeResponseReceived {
handle: HandshakeHandle,
@@ -39,17 +39,17 @@
IdentityServerHandshakeCompleted {
handle: HandshakeHandle,
endpoint_private_key: Ed25519PrivateKey,
- endpoint_name: String,
+ endpoint_name: String,
client_service_id: V3OnionServiceId,
client_auth_public_key: X25519PublicKey,
},
IdentityServerHandshakeRejected {
handle: HandshakeHandle,
- client_allowed: bool,
- client_requested_endpoint_valid: bool,
- client_proof_signature_valid: bool,
- client_auth_signature_valid: bool,
- challenge_response_valid: bool,
+ client_allowed: bool,
+ client_requested_endpoint_valid: bool,
+ client_proof_signature_valid: bool,
+ client_auth_signature_valid: bool,
+ challenge_response_valid: bool,
},
IdentityServerHandshakeFailed {
handle: HandshakeHandle,
@@ -58,8 +58,8 @@
EndpointClientHandshakeCompleted {
handle: HandshakeHandle,
endpoint_service_id: V3OnionServiceId,
- channel_name: String,
- stream: TcpStream,
+ channel_name: String,
+ stream: TcpStream,
},
EndpointClientHandshakeFailed {
handle: HandshakeHandle,
@@ -67,7 +67,7 @@
},
EndpointServerPublished {
endpoint_service_id: V3OnionServiceId,
- endpoint_name: String,
+ endpoint_name: String,
},
EndpointServerHandshakeStarted {
handle: HandshakeHandle,
@@ -75,20 +75,20 @@
EndpointServerChannelRequestReceived {
handle: HandshakeHandle,
client_service_id: V3OnionServiceId,
- requested_channel: String,
+ requested_channel: String,
},
EndpointServerHandshakeCompleted {
handle: HandshakeHandle,
endpoint_service_id: V3OnionServiceId,
client_service_id: V3OnionServiceId,
- channel_name: String,
- stream: TcpStream,
+ channel_name: String,
+ stream: TcpStream,
},
EndpointServerHandshakeRejected {
handle: HandshakeHandle,
- client_allowed: bool,
- client_requested_channel_valid: bool,
- client_proof_signature_valid: bool,
+ client_allowed: bool,
+ client_requested_channel_valid: bool,
+ client_proof_signature_valid: bool,
},
EndpointServerHandshakeFailed {
handle: HandshakeHandle,
@@ -96,12 +96,12 @@
},
}
Expand description
Events to signal completion of asynchronous Context
operations
Variants§
§TorBootstrapStatusReceived
Tor bootstrap progress
-Fields
§summary: String
A longer human-readable summary of the bootstrap progress
+Fields
§TorBootstrapCompleted
Tor bootstrap completed
§TorLogReceived
Human-readable logs from the Context
’s TorProvider
-Fields
§line: String
Human-readable debug log
+§IdentityClientChallengeReceived
An identity client has received a challenge request from an identy server
To continue the handshake, the client must call Context::identity_client_handle_challenge_received()
Fields
§handle: HandshakeHandle
The handle of the in-progress handshake
@@ -110,7 +110,7 @@
Fields
§handle: HandshakeHandle
The handle of the completed handshake
§identity_service_id: V3OnionServiceId
The onion-service service-id of the identity server the client has completed an identity handshake with
§endpoint_service_id: V3OnionServiceId
The onion-service service-id of the requested endpoint server
-§client_auth_private_key: X25519PrivateKey
The private x25519 client-auth key required to access the requested endpoint server
§IdentityClientHandshakeFailed
An incoming identit handshake has failed
Fields
§handle: HandshakeHandle
The handle of the failed handshake
@@ -122,7 +122,7 @@
To continue the handshake, the server must call Context::identity_server_handle_endpoint_request_received()
Fields
§handle: HandshakeHandle
The handle of the in-progress handshake
§client_service_id: V3OnionServiceId
The alleged onion-service service-id of the connecting client
-§IdentityServerChallengeResponseReceived
An identity server has received a challenge response from an identity client.
To continue the handshake, the server must call Context::identity_server_handle_challenge_response_received()
Fields
§handle: HandshakeHandle
The handle of the in-progress handshake
@@ -130,172 +130,172 @@
§IdentityServerHandshakeCompleted
An identity server’s handshake has completed.
Fields
§handle: HandshakeHandle
The handle of the completed handshake
§endpoint_private_key: Ed25519PrivateKey
The ed25519 private key of requested endpoint server
-§client_service_id: V3OnionServiceId
The onion-service service-id of the authenticated client
§client_auth_public_key: X25519PublicKey
The public x25519 client-auth key used to encrypt the endpoint server’s onion-service descriptor
§IdentityServerHandshakeRejected
An identity server has rejected an identity client’s endpoint-request.
There are multiple potential reasons why a handshake may be rejected and this event provides a breakdown on which part(s) failed specifically.
Fields
§handle: HandshakeHandle
The handle of the rejected handshake
-§client_requested_endpoint_valid: bool
false
if the requested endpoint name was not understood by the server
-§client_proof_signature_valid: bool
false
if the client failed its authentication proof (i.e. potential attempt at identity client impersonation)
-§client_auth_signature_valid: bool
false
if the client fails its x25519 key-ownership proof (i.e. potential attempt at use an x25519 public key not owned by the client)
-§client_requested_endpoint_valid: bool
false
if the requested endpoint name was not understood by the server
+§client_proof_signature_valid: bool
false
if the client failed its authentication proof (i.e. potential attempt at identity client impersonation)
+§IdentityServerHandshakeFailed
An incoming identity handshake has failed.
§EndpointClientHandshakeCompleted
An endpoint client has successfully completed an endpoint handshake and may now communicate freely with the endpoint server.
Fields
§handle: HandshakeHandle
The handle of the completed handshake
§endpoint_service_id: V3OnionServiceId
The onion-service service-id of the endpoint server the client has connected to
-§EndpointClientHandshakeFailed
An outgoing endpoint handshake has failed.
§EndpointServerPublished
The endpoint server’s onion-service has been published and may be reachable by endpoint clients.
Fields
§endpoint_service_id: V3OnionServiceId
The onion-service service-id of the published endpoint server
-§EndpointServerHandshakeStarted
An endpoint server has received an incoming connection and the handshake is ready to begin.
Fields
§handle: HandshakeHandle
The handle of the new handshake
§EndpointServerChannelRequestReceived
An endpoint server has received a request for a channel from an endpoint client.
To continue the handshake, the server must call Context::endpoint_server_handle_channel_request_received()
Fields
§handle: HandshakeHandle
The handle of the in-progress handshake
§client_service_id: V3OnionServiceId
The alleged onion-service service-id of the connecting client
-§EndpointServerHandshakeCompleted
An endpoint server’s handshake has completed
Fields
§handle: HandshakeHandle
The handle of the completed handshake
§endpoint_service_id: V3OnionServiceId
The onion-service service-id of the endpoint server which an endpoint client has connected to
§client_service_id: V3OnionServiceId
The onion-service service-id of the connected client
-§EndpointServerHandshakeRejected
An endpoint server has rejected an endpoint client’s channel request.
There are multiple potential reasons why a handshake may be rejected and this event provides a breakdown on which part(s) failed specifically.
Fields
§handle: HandshakeHandle
The handle of the rejected handshake
-§client_requested_channel_valid: bool
false
if the requested channel name was not understood by the server
-§client_proof_signature_valid: bool
false
if the client failed its authentication proof (i.e. potential attempt at endpoint client impersonation)
+§EndpointServerHandshakeFailed
An incoming endpoint handshake has failed.
Trait Implementations§
Auto Trait Implementations§
§impl Freeze for ContextEvent
§impl !RefUnwindSafe for ContextEvent
§impl Send for ContextEvent
§impl Sync for ContextEvent
§impl Unpin for ContextEvent
§impl !UnwindSafe for ContextEvent
Blanket Implementations§
Trait Implementations§
Auto Trait Implementations§
§impl Freeze for ContextEvent
§impl !RefUnwindSafe for ContextEvent
§impl Send for ContextEvent
§impl Sync for ContextEvent
§impl Unpin for ContextEvent
§impl !UnwindSafe for ContextEvent
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
+ T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
source§impl<T> BorrowMut<T> for Twhere
- T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more§impl<T> Conv for T
§impl<T> Downcast for Twhere
- T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
Convert Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
-then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
-further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
-generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
source§impl<T> BorrowMut<T> for Twhere
+ T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more§impl<T> Conv for T
§impl<T> Downcast for Twhere
+ T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
Convert Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
+then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
+further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
+generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert &mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> DowncastSync for T
§fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>
§impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
- Self: Binary,
Causes self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
- Self: Display,
Causes self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
+ Self: Display,
Causes self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
- Self: LowerExp,
Causes self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
- Self: LowerHex,
Causes self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
- Self: Octal,
Causes self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
- Self: Pointer,
Causes self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
+ Self: Pointer,
Causes self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
- Self: UpperExp,
Causes self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
- Self: UpperHex,
Causes self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
- &'a Self: for<'a> IntoIterator,
Formats each item in a sequence. Read moresource§impl<T> From<T> for T
source§fn from(t: T) -> T
Returns the argument unchanged.
+ &'a Self: for<'a> IntoIterator,Formats each item in a sequence. Read more§impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
source§impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more§impl<Source, Target> OctetsInto<Target> for Sourcewhere
Target: OctetsFrom<Source>,
§type Error = <Target as OctetsFrom<Source>>::Error
§fn try_octets_into(
self,
-) -> Result<Target, <Source as OctetsInto<Target>>::Error>
Performs the conversion.§fn octets_into(self) -> Targetwhere
- Self::Error: Into<Infallible>,
Performs an infallible conversion.§impl<T> Pipe for Twhere
- T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
- Self: Sized,
Pipes by value. This is generally the method you want to use. Read more§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
- R: 'a,
Borrows self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
- R: 'a,
Mutably borrows self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
- Self: Borrow<B>,
- B: 'a + ?Sized,
+) -> Result<Target, <Source as OctetsInto<Target>>::Error>Performs the conversion.§fn octets_into(self) -> Targetwhere
+ Self::Error: Into<Infallible>,
Performs an infallible conversion.
§impl<T> Pipe for Twhere
+ T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
+ Self: Sized,
Pipes by value. This is generally the method you want to use. Read more§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
+ R: 'a,
Borrows self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
+ R: 'a,
Mutably borrows self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
- func: impl FnOnce(&'a mut B) -> R,
+ func: impl FnOnce(&'a mut B) -> R,
) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
Mutably borrows self
, then passes self.as_mut()
into the pipe
-function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows self
, then passes self.deref()
into the pipe function.§impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls .tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls .tap_mut()
only in debug builds, and is erased in release
-builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls .tap_borrow()
only in debug builds, and is erased in release
-builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls .tap_borrow_mut()
only in debug builds, and is erased in release
-builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls .tap_ref()
only in debug builds, and is erased in release
-builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls .tap_ref_mut()
only in debug builds, and is erased in release
-builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls .tap_deref()
only in debug builds, and is erased in release
-builds.§impl<T> TryConv for T
§impl<V, T> VZip<V> for Twhere
+function.
§impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls .tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls .tap_mut()
only in debug builds, and is erased in release
+builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls .tap_borrow()
only in debug builds, and is erased in release
+builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls .tap_borrow_mut()
only in debug builds, and is erased in release
+builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls .tap_ref()
only in debug builds, and is erased in release
+builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls .tap_ref_mut()
only in debug builds, and is erased in release
+builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls .tap_deref()
only in debug builds, and is erased in release
+builds.§impl<T> TryConv for T
§impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
- S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
+ S: Into<Dispatch>,§fn with_current_subscriber(self) -> WithDispatch<Self>
§impl<T> ErasedDestructor for Twhere
T: 'static,
§impl<T> MaybeSendSync for T
\ No newline at end of file
diff --git a/crates/gosling/context/enum.Error.html b/crates/gosling/context/enum.Error.html
index ce637c79..574193ec 100644
--- a/crates/gosling/context/enum.Error.html
+++ b/crates/gosling/context/enum.Error.html
@@ -1,9 +1,9 @@
-Error in gosling::context - Rust pub enum Error {
- InvalidArgument(String),
+Error in gosling::context - Rust pub enum Error {
+ InvalidArgument(String),
TorNotConnected(),
HandshakeHandleNotFound(HandshakeHandle),
- IncorrectUsage(String),
- Io(Error),
+ IncorrectUsage(String),
+ Io(Error),
HonkRpc(Error),
TorCrypto(Error),
TorProvider(Error),
@@ -12,11 +12,11 @@
EndpointClientError(Error),
EndpointServerError(Error),
}
Expand description
The error type for the Context
type.
-Variants§
§InvalidArgument(String)
An invalid argument was provided to a function
+Variants§
§InvalidArgument(String)
An invalid argument was provided to a function
§TorNotConnected()
Function requiring tor connectivity called before bootstrap
§HandshakeHandleNotFound(HandshakeHandle)
Provided handle does not map to an in-flight handshake
-§IncorrectUsage(String)
Requesting an invalid operation
-§Io(Error)
An underlying std::io::Error
+§IncorrectUsage(String)
Requesting an invalid operation
+§Io(Error)
An underlying std::io::Error
§HonkRpc(Error)
An underlying honk_rpc::honk_rpc::Error
§TorCrypto(Error)
An underlying tor_interface::tor_crypto::Error
§TorProvider(Error)
An underlying tor_interface::tor_provider::Error
@@ -24,128 +24,128 @@
§IdentityServerError(Error)
Failure ocurred in incoming identity handshake
§EndpointClientError(Error)
Failure ocurred in outgoing endpoint handshake
§EndpointServerError(Error)
Failure ocurred in incoming endpoint handshake
-Trait Implementations§
source§impl Error for Error
source§fn source(&self) -> Option<&(dyn Error + 'static)>
The lower-level source of this error, if any. Read more1.0.0 · source§fn description(&self) -> &str
👎Deprecated since 1.42.0: use the Display impl or to_string()Auto Trait Implementations§
§impl Freeze for Error
§impl !RefUnwindSafe for Error
§impl Send for Error
§impl Sync for Error
§impl Unpin for Error
§impl !UnwindSafe for Error
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
- T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
+
Trait Implementations§
source§impl Error for Error
source§fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more1.0.0 · source§fn description(&self) -> &str
👎Deprecated since 1.42.0: use the Display impl or to_string()Auto Trait Implementations§
§impl Freeze for Error
§impl !RefUnwindSafe for Error
§impl Send for Error
§impl Sync for Error
§impl Unpin for Error
§impl !UnwindSafe for Error
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
+ T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
source§impl<T> BorrowMut<T> for Twhere
- T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more§impl<T> Conv for T
§impl<T> Downcast for Twhere
- T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
Convert Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
-then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
-further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
-generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
source§impl<T> BorrowMut<T> for Twhere
+ T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more§impl<T> Conv for T
§impl<T> Downcast for Twhere
+ T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
Convert Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
+then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
+further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
+generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert &mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> DowncastSync for T
§fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>
§impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
- Self: Binary,
Causes self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
- Self: Display,
§impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
+ Self: Binary,
Causes self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
+ Self: Display,
Causes self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
- Self: LowerExp,
Causes self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
- Self: LowerHex,
Causes self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
- Self: Octal,
Causes self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
- Self: Pointer,
Causes self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
+ Self: Pointer,
Causes self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
- Self: UpperExp,
Causes self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
- Self: UpperHex,
Causes self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
- &'a Self: for<'a> IntoIterator,
Formats each item in a sequence. Read moresource§impl<T> From<T> for T
source§fn from(t: T) -> T
Returns the argument unchanged.
+ &'a Self: for<'a> IntoIterator,Formats each item in a sequence. Read more§impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
source§impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more§impl<Source, Target> OctetsInto<Target> for Sourcewhere
Target: OctetsFrom<Source>,
§type Error = <Target as OctetsFrom<Source>>::Error
§fn try_octets_into(
self,
-) -> Result<Target, <Source as OctetsInto<Target>>::Error>
Performs the conversion.§fn octets_into(self) -> Targetwhere
- Self::Error: Into<Infallible>,
Performs an infallible conversion.§impl<T> Pipe for Twhere
- T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
- Self: Sized,
Pipes by value. This is generally the method you want to use. Read more§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
- R: 'a,
Borrows self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
- R: 'a,
Mutably borrows self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
- Self: Borrow<B>,
- B: 'a + ?Sized,
+) -> Result<Target, <Source as OctetsInto<Target>>::Error>Performs the conversion.§fn octets_into(self) -> Targetwhere
+ Self::Error: Into<Infallible>,
Performs an infallible conversion.
§impl<T> Pipe for Twhere
+ T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
+ Self: Sized,
Pipes by value. This is generally the method you want to use. Read more§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
+ R: 'a,
Borrows self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
+ R: 'a,
Mutably borrows self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
- func: impl FnOnce(&'a mut B) -> R,
+ func: impl FnOnce(&'a mut B) -> R,
) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
Mutably borrows self
, then passes self.as_mut()
into the pipe
-function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows self
, then passes self.deref()
into the pipe function.§impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls .tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls .tap_mut()
only in debug builds, and is erased in release
-builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls .tap_borrow()
only in debug builds, and is erased in release
-builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls .tap_borrow_mut()
only in debug builds, and is erased in release
-builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls .tap_ref()
only in debug builds, and is erased in release
-builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls .tap_ref_mut()
only in debug builds, and is erased in release
-builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls .tap_deref()
only in debug builds, and is erased in release
-builds.§impl<T> TryConv for T
§impl<T> TryIntoSlug for T
§fn try_into_slug(&self) -> Result<Slug, BadSlug>
Convert self
into a Slug
, if it has the right syntax§impl<V, T> VZip<V> for Twhere
+function.
§impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls .tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls .tap_mut()
only in debug builds, and is erased in release
+builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls .tap_borrow()
only in debug builds, and is erased in release
+builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls .tap_borrow_mut()
only in debug builds, and is erased in release
+builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls .tap_ref()
only in debug builds, and is erased in release
+builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls .tap_ref_mut()
only in debug builds, and is erased in release
+builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls .tap_deref()
only in debug builds, and is erased in release
+builds.§impl<T> TryConv for T
§impl<T> TryIntoSlug for T
§fn try_into_slug(&self) -> Result<Slug, BadSlug>
Convert self
into a Slug
, if it has the right syntax§impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
- S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
+ S: Into<Dispatch>,§fn with_current_subscriber(self) -> WithDispatch<Self>
§impl<T> ErasedDestructor for Twhere
T: 'static,
§impl<T> MaybeSendSync for T
\ No newline at end of file
diff --git a/crates/gosling/context/index.html b/crates/gosling/context/index.html
index c429ea53..1c9c5150 100644
--- a/crates/gosling/context/index.html
+++ b/crates/gosling/context/index.html
@@ -1,2 +1,2 @@
-gosling::context - Rust
\ No newline at end of file
+gosling::context - Rust
\ No newline at end of file
diff --git a/crates/gosling/context/struct.Context.html b/crates/gosling/context/struct.Context.html
index 498efc1f..0b78a488 100644
--- a/crates/gosling/context/struct.Context.html
+++ b/crates/gosling/context/struct.Context.html
@@ -1,18 +1,18 @@
-Context in gosling::context - Rust pub struct Context { /* private fields */ }
Expand description
The gosling protocol implementation.
+Context in gosling::context - Rust pub struct Context { /* private fields */ }
Expand description
The gosling protocol implementation.
The Context
object provides various methods for starting and progressing identity and endpoint handshakes. The general usage pattern developers will follow is to construct a Context
object, connect to the Tor Network using Context::bootstrap()
, optionally start an identity or endpoint servers, and listen for and handle incoming identity and endpoint clients using Context::update()
and the various associated methods. Depending on the application’s requirements, the developer can also initiate identity and endpoint handshakes as necessary.
The Gosling Protocol specification can be found here:
Implementations§
source§impl Context
sourcepub fn new(
- tor_provider: Box<dyn TorProvider>,
- identity_port: u16,
- endpoint_port: u16,
- identity_timeout: Duration,
- identity_max_message_size: i32,
- endpoint_timeout: Option<Duration>,
+ tor_provider: Box<dyn TorProvider>,
+ identity_port: u16,
+ endpoint_port: u16,
+ identity_timeout: Duration,
+ identity_max_message_size: i32,
+ endpoint_timeout: Option<Duration>,
identity_private_key: Ed25519PrivateKey,
-) -> Result<Self, Error>
Construct a new Context
object.
+) -> Result<Self, Error>Construct a new Context
object.
§Parameters
tor_provider
: an implementation of the TorProvider
trait which provides our Tor Network connectivity
@@ -25,12 +25,12 @@ §Parameters
§Returns
A newly constructed Context
.
-
sourcepub fn bootstrap(&mut self) -> Result<(), Error>
Initiate bootstrap of the Context
’s owned TorProvider
. Bootstrap status is communicated through ContextEvent
s returned from the Context::update()
method.
+sourcepub fn bootstrap(&mut self) -> Result<(), Error>
Initiate bootstrap of the Context
’s owned TorProvider
. Bootstrap status is communicated through ContextEvent
s returned from the Context::update()
method.
sourcepub fn identity_client_begin_handshake(
&mut self,
identity_server_id: V3OnionServiceId,
- endpoint: String,
-) -> Result<HandshakeHandle, Error>
Initiate an identity handshake with an identity server. Handshake progression is communicated through ContextEvent
s returned from the Context::update()
method.
+ endpoint: String,
+) -> Result<HandshakeHandle, Error>Initiate an identity handshake with an identity server. Handshake progression is communicated through ContextEvent
s returned from the Context::update()
method.
§Parameters
identitity_server_id
: the long term identity onion-service service-id of a remote peer
@@ -41,7 +41,7 @@ §Returns
sourcepub fn identity_client_abort_handshake(
&mut self,
handle: HandshakeHandle,
-) -> Result<(), Error>
Abort an in-process outgoing identity handshake.
+) -> Result<(), Error>Abort an in-process outgoing identity handshake.
§Parameters
handle
: the handle of the in-progress outoing identity handshake to abort
@@ -50,21 +50,21 @@ §Parameter
&mut self,
handle: HandshakeHandle,
challenge_response: Document,
-) -> Result<(), Error>Handle an identity server’s endpoint challenge. Callers must construct an identity client’s endpoint challenge-response. The particulars of creating and verifying the challenge-response BSON documents are undefined and application-specific.
+) -> Result<(), Error>Handle an identity server’s endpoint challenge. Callers must construct an identity client’s endpoint challenge-response. The particulars of creating and verifying the challenge-response BSON documents are undefined and application-specific.
§Parameters
handle
: the handle of the in-progress outgoing identity handshake
challenge_response
: an application-specific BSON document which somehow responds to an identity server’s challenge.
-sourcepub fn identity_server_start(&mut self) -> Result<(), Error>
Start this Context
’s identity server. Publish status is communicated through ContextEvent
s returned from the Context::update()
method.
-sourcepub fn identity_server_stop(&mut self) -> Result<(), Error>
Stops this Context
’s identity server and ends any in-progress incoming identity handshakes.
+sourcepub fn identity_server_start(&mut self) -> Result<(), Error>
Start this Context
’s identity server. Publish status is communicated through ContextEvent
s returned from the Context::update()
method.
+sourcepub fn identity_server_stop(&mut self) -> Result<(), Error>
Stops this Context
’s identity server and ends any in-progress incoming identity handshakes.
sourcepub fn identity_server_handle_endpoint_request_received(
&mut self,
handle: HandshakeHandle,
- client_allowed: bool,
- endpoint_supported: bool,
+ client_allowed: bool,
+ endpoint_supported: bool,
endpoint_challenge: Document,
-) -> Result<(), Error>
Handle an identity client’s incoming endpoint request. Callers must determine whether the connected identity client is allowed to access the requested endpoint, decide whether the requested endpoint is supported by this Context
, and build an endpoint challenge for the identity client. The particulars of creating the endpoint challenge is undefined and application-specific.
+) -> Result<(), Error>Handle an identity client’s incoming endpoint request. Callers must determine whether the connected identity client is allowed to access the requested endpoint, decide whether the requested endpoint is supported by this Context
, and build an endpoint challenge for the identity client. The particulars of creating the endpoint challenge is undefined and application-specific.
§Parameters
handle
: the handle of the in-progress incoming identity handshake
@@ -75,8 +75,8 @@ §Parameter
sourcepub fn identity_server_handle_challenge_response_received(
&mut self,
handle: HandshakeHandle,
- challenge_response_valid: bool,
-) -> Result<(), Error>
Handle an identity client’s incoming endpoint challenge-response. Callers must determine whether the connected identity client’s challenge-response is valid. The particulars of verifying the challenge-response is undefined and application-specific.
+ challenge_response_valid: bool,
+) -> Result<(), Error>Handle an identity client’s incoming endpoint challenge-response. Callers must determine whether the connected identity client’s challenge-response is valid. The particulars of verifying the challenge-response is undefined and application-specific.
§Parameters
handle
: the handle of the in-progress incoming identity handshake
@@ -86,8 +86,8 @@ §Parameter
&mut self,
endpoint_server_id: V3OnionServiceId,
client_auth_key: X25519PrivateKey,
- channel: String,
-) -> Result<HandshakeHandle, Error>Initiate an endpoint handshake with an identity server. An endpoint client acquires the endpoint_server_id
and client_auth_key
by completing an identity handshake or through some other side-channnel. Handshake progression is communicated through ContextEvent
s returned from the Context::update()
method.
+ channel: String,
+) -> Result<HandshakeHandle, Error>Initiate an endpoint handshake with an identity server. An endpoint client acquires the endpoint_server_id
and client_auth_key
by completing an identity handshake or through some other side-channnel. Handshake progression is communicated through ContextEvent
s returned from the Context::update()
method.
§Parameters
endpoint_server_id
: the endpoint onion-service service-id of a remote peer
@@ -97,7 +97,7 @@ §Parameter
sourcepub fn endpoint_client_abort_handshake(
&mut self,
handle: HandshakeHandle,
-) -> Result<(), Error>
Abort an in-process outgoing endpoint handshake
+) -> Result<(), Error>Abort an in-process outgoing endpoint handshake
§Parameters
handle
: the handle of the in-progress outoing identity handshake to abort
@@ -105,10 +105,10 @@ §Parameter
sourcepub fn endpoint_server_start(
&mut self,
endpoint_private_key: Ed25519PrivateKey,
- endpoint_name: String,
+ endpoint_name: String,
client_identity: V3OnionServiceId,
client_auth: X25519PublicKey,
-) -> Result<(), Error>
Start one of this Context
’s endpoint servers. Publish status is communicated through ContextEvent
s returned from the Context::update()
method.
+) -> Result<(), Error>Start one of this Context
’s endpoint servers. Publish status is communicated through ContextEvent
s returned from the Context::update()
method.
§Parameters
endpoint_private_key
: the ed25519 private key used to start this endpoint server’s onion-service
@@ -119,8 +119,8 @@ §Parameter
sourcepub fn endpoint_server_handle_channel_request_received(
&mut self,
handle: HandshakeHandle,
- channel_supported: bool,
-) -> Result<(), Error>
Handle an endpoint client’s incoming channel request. Callers must determine whether the requested channel is supported by this Context
. The particulars of making this determination is undefined and application-specific.
+ channel_supported: bool,
+) -> Result<(), Error>Handle an endpoint client’s incoming channel request. Callers must determine whether the requested channel is supported by this Context
. The particulars of making this determination is undefined and application-specific.
§Parameters
handle
: the handle of the in-progress incoming endpoint handshake
@@ -129,7 +129,7 @@ §Parameter
sourcepub fn endpoint_server_stop(
&mut self,
endpoint_identity: V3OnionServiceId,
-) -> Result<(), Error>
Stop one of this Context
’s endpoint servers and ends any of its in-progress incoming endpoint handshakes.
+) -> Result<(), Error>Stop one of this Context
’s endpoint servers and ends any of its in-progress incoming endpoint handshakes.
§Parameters
endpoint_identity
: the onion-service service-id of the enpdoint server to stop
@@ -137,128 +137,128 @@ §Paramet
sourcepub fn connect(
&mut self,
target_addr: TargetAddr,
- circuit_token: Option<CircuitToken>,
-) -> Result<OnionStream, Error>
A direct pass-through to the underlying TorProvider
’s TorProvider::connect()
method.
+ circuit_token: Option<CircuitToken>,
+) -> Result<OnionStream, Error>A direct pass-through to the underlying TorProvider
’s TorProvider::connect()
method.
sourcepub fn generate_circuit_token(&mut self) -> CircuitToken
A direct pass-through to the underlying TorProvider
’s TorProvider::generate_token()
method.
sourcepub fn release_circuit_token(&mut self, circuit_token: CircuitToken)
A direct pass-through to the underlying TorProvider
’s TorProvider::release_token()
method.
-sourcepub fn update(&mut self) -> Result<VecDeque<ContextEvent>, Error>
This function updates the Context
’s underlying TorProvider
, handles new handshakes requests, and updates in-progress handshakes. This function needs to be regularly called to process the returned ContextEvent
s.
-Auto Trait Implementations§
§impl Freeze for Context
§impl !RefUnwindSafe for Context
§impl Send for Context
§impl !Sync for Context
§impl Unpin for Context
§impl !UnwindSafe for Context
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
- T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
+
sourcepub fn update(&mut self) -> Result<VecDeque<ContextEvent>, Error>
This function updates the Context
’s underlying TorProvider
, handles new handshakes requests, and updates in-progress handshakes. This function needs to be regularly called to process the returned ContextEvent
s.
+Auto Trait Implementations§
§impl Freeze for Context
§impl !RefUnwindSafe for Context
§impl Send for Context
§impl !Sync for Context
§impl Unpin for Context
§impl !UnwindSafe for Context
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
+ T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
source§impl<T> BorrowMut<T> for Twhere
- T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more§impl<T> Conv for T
§impl<T> Downcast for Twhere
- T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
Convert Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
-then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
-further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
-generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
source§impl<T> BorrowMut<T> for Twhere
+ T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more§impl<T> Conv for T
§impl<T> Downcast for Twhere
+ T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
Convert Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
+then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
+further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
+generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert &mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
- Self: Binary,
Causes self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
- Self: Display,
Causes self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
+ Self: Display,
Causes self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
- Self: LowerExp,
Causes self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
- Self: LowerHex,
Causes self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
- Self: Octal,
Causes self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
- Self: Pointer,
Causes self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
+ Self: Pointer,
Causes self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
- Self: UpperExp,
Causes self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
- Self: UpperHex,
Causes self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
- &'a Self: for<'a> IntoIterator,
Formats each item in a sequence. Read moresource§impl<T> From<T> for T
source§fn from(t: T) -> T
Returns the argument unchanged.
+ &'a Self: for<'a> IntoIterator,Formats each item in a sequence. Read more§impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
source§impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more§impl<Source, Target> OctetsInto<Target> for Sourcewhere
Target: OctetsFrom<Source>,
§type Error = <Target as OctetsFrom<Source>>::Error
§fn try_octets_into(
self,
-) -> Result<Target, <Source as OctetsInto<Target>>::Error>
Performs the conversion.§fn octets_into(self) -> Targetwhere
- Self::Error: Into<Infallible>,
Performs an infallible conversion.§impl<T> Pipe for Twhere
- T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
- Self: Sized,
Pipes by value. This is generally the method you want to use. Read more§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
- R: 'a,
Borrows self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
- R: 'a,
Mutably borrows self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
- Self: Borrow<B>,
- B: 'a + ?Sized,
+) -> Result<Target, <Source as OctetsInto<Target>>::Error>Performs the conversion.§fn octets_into(self) -> Targetwhere
+ Self::Error: Into<Infallible>,
Performs an infallible conversion.
§impl<T> Pipe for Twhere
+ T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
+ Self: Sized,
Pipes by value. This is generally the method you want to use. Read more§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
+ R: 'a,
Borrows self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
+ R: 'a,
Mutably borrows self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
- func: impl FnOnce(&'a mut B) -> R,
+ func: impl FnOnce(&'a mut B) -> R,
) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
Mutably borrows self
, then passes self.as_mut()
into the pipe
-function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows self
, then passes self.deref()
into the pipe function.§impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls .tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls .tap_mut()
only in debug builds, and is erased in release
-builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls .tap_borrow()
only in debug builds, and is erased in release
-builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls .tap_borrow_mut()
only in debug builds, and is erased in release
-builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls .tap_ref()
only in debug builds, and is erased in release
-builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls .tap_ref_mut()
only in debug builds, and is erased in release
-builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls .tap_deref()
only in debug builds, and is erased in release
-builds.§impl<T> TryConv for T
§impl<V, T> VZip<V> for Twhere
+function.
§impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls .tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls .tap_mut()
only in debug builds, and is erased in release
+builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls .tap_borrow()
only in debug builds, and is erased in release
+builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls .tap_borrow_mut()
only in debug builds, and is erased in release
+builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls .tap_ref()
only in debug builds, and is erased in release
+builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls .tap_ref_mut()
only in debug builds, and is erased in release
+builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls .tap_deref()
only in debug builds, and is erased in release
+builds.§impl<T> TryConv for T
§impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
- S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
+ S: Into<Dispatch>,§fn with_current_subscriber(self) -> WithDispatch<Self>
§impl<T> ErasedDestructor for Twhere
T: 'static,
§impl<T> MaybeSendSync for T
\ No newline at end of file
diff --git a/crates/gosling/context/type.HandshakeHandle.html b/crates/gosling/context/type.HandshakeHandle.html
index 822ca3a7..69325f13 100644
--- a/crates/gosling/context/type.HandshakeHandle.html
+++ b/crates/gosling/context/type.HandshakeHandle.html
@@ -1,2 +1,2 @@
-HandshakeHandle in gosling::context - Rust Type Alias gosling::context::HandshakeHandle
source · pub type HandshakeHandle = usize;
Expand description
A handle to an in-progres identity or endpoint handshake
+HandshakeHandle in gosling::context - Rust Type Alias gosling::context::HandshakeHandle
source · pub type HandshakeHandle = usize;
Expand description
A handle to an in-progres identity or endpoint handshake
\ No newline at end of file
diff --git a/crates/gosling/index.html b/crates/gosling/index.html
index 3d32d518..eeb1d707 100644
--- a/crates/gosling/index.html
+++ b/crates/gosling/index.html
@@ -1,4 +1,4 @@
-gosling - Rust Expand description
§Gosling
+gosling - Rust Expand description
§Gosling
Gosling is a crate which encapsulates connecting to and authenticating with onion-service peers on the Tor Network. The authentication mechanism is based on and improves upon the peer authentication handshake found in Ricochet-Refresh.
Peer-to-peer applications can be built using Gosling with the following features by default:
diff --git a/crates/help.html b/crates/help.html
index efb3133b..05209302 100644
--- a/crates/help.html
+++ b/crates/help.html
@@ -1 +1 @@
-Help Rustdoc help
Back
\ No newline at end of file
+Help Rustdoc help
Back
\ No newline at end of file
diff --git a/crates/honk_rpc/all.html b/crates/honk_rpc/all.html
index b1914503..3873c9f0 100644
--- a/crates/honk_rpc/all.html
+++ b/crates/honk_rpc/all.html
@@ -1 +1 @@
-List of all items in this crate List of all items
Structs
Enums
Traits
Functions
- honk_rpc::get_error_section_size
- honk_rpc::get_message_overhead
- honk_rpc::get_request_section_size
- honk_rpc::get_response_section_size
Type Aliases
Constants
\ No newline at end of file
+List of all items in this crate List of all items
Structs
Enums
Traits
Functions
- honk_rpc::get_error_section_size
- honk_rpc::get_message_overhead
- honk_rpc::get_request_section_size
- honk_rpc::get_response_section_size
Type Aliases
Constants
\ No newline at end of file
diff --git a/crates/honk_rpc/honk_rpc/constant.DEFAULT_MAX_MESSAGE_SIZE.html b/crates/honk_rpc/honk_rpc/constant.DEFAULT_MAX_MESSAGE_SIZE.html
index a87d85b0..fd994db0 100644
--- a/crates/honk_rpc/honk_rpc/constant.DEFAULT_MAX_MESSAGE_SIZE.html
+++ b/crates/honk_rpc/honk_rpc/constant.DEFAULT_MAX_MESSAGE_SIZE.html
@@ -1,2 +1,2 @@
-DEFAULT_MAX_MESSAGE_SIZE in honk_rpc::honk_rpc - Rust Constant honk_rpc::honk_rpc::DEFAULT_MAX_MESSAGE_SIZE
source · pub const DEFAULT_MAX_MESSAGE_SIZE: usize = _; // 4_096usize
Expand description
The default maximum allowed Honk-RPC message (4096 bytes)
+DEFAULT_MAX_MESSAGE_SIZE in honk_rpc::honk_rpc - Rust Constant honk_rpc::honk_rpc::DEFAULT_MAX_MESSAGE_SIZE
source · pub const DEFAULT_MAX_MESSAGE_SIZE: usize = _; // 4_096usize
Expand description
The default maximum allowed Honk-RPC message (4096 bytes)
\ No newline at end of file
diff --git a/crates/honk_rpc/honk_rpc/constant.DEFAULT_MAX_WAIT_TIME.html b/crates/honk_rpc/honk_rpc/constant.DEFAULT_MAX_WAIT_TIME.html
index 6cbfc65f..6a7898b5 100644
--- a/crates/honk_rpc/honk_rpc/constant.DEFAULT_MAX_WAIT_TIME.html
+++ b/crates/honk_rpc/honk_rpc/constant.DEFAULT_MAX_WAIT_TIME.html
@@ -1,2 +1,2 @@
-DEFAULT_MAX_WAIT_TIME in honk_rpc::honk_rpc - Rust Constant honk_rpc::honk_rpc::DEFAULT_MAX_WAIT_TIME
source · pub const DEFAULT_MAX_WAIT_TIME: Duration;
Expand description
The default maximum allowed duration between Honk-RPC (60 seconds)
+DEFAULT_MAX_WAIT_TIME in honk_rpc::honk_rpc - Rust Constant honk_rpc::honk_rpc::DEFAULT_MAX_WAIT_TIME
source · pub const DEFAULT_MAX_WAIT_TIME: Duration;
Expand description
The default maximum allowed duration between Honk-RPC (60 seconds)
\ No newline at end of file
diff --git a/crates/honk_rpc/honk_rpc/enum.Error.html b/crates/honk_rpc/honk_rpc/enum.Error.html
index f696a9fb..a41ff31a 100644
--- a/crates/honk_rpc/honk_rpc/enum.Error.html
+++ b/crates/honk_rpc/honk_rpc/enum.Error.html
@@ -1,118 +1,118 @@
-Error in honk_rpc::honk_rpc - Rust pub enum Error {
- ReaderReadFailed(Error),
- BsonDocumentSizeTooSmall(i32),
- BsonDocumentSizeTooLarge(i32, i32),
- MessageReadTimedOut(Duration),
+Error in honk_rpc::honk_rpc - Rust pub enum Error {
+ ReaderReadFailed(Error),
+ BsonDocumentSizeTooSmall(i32),
+ BsonDocumentSizeTooLarge(i32, i32),
+ MessageReadTimedOut(Duration),
BsonDocumentParseFailed(Error),
MessageConversionFailed(ErrorCode),
BsonWriteFailed(Error),
- WriterWriteFailed(Error),
- WriterFlushFailed(Error),
+ WriterWriteFailed(Error),
+ WriterFlushFailed(Error),
UnknownErrorSectionReceived(ErrorCode),
InvalidMaxMesageSize(),
- SectionTooLarge(usize, usize),
+ SectionTooLarge(usize, usize),
}
Expand description
The error type for the Session
type.
-Variants§
§ReaderReadFailed(Error)
Failed to read data from read stream due to std::io::Error
-§BsonDocumentSizeTooSmall(i32)
Bson documents need to be at least 4 bytes long
-§BsonDocumentSizeTooLarge(i32, i32)
Received Bson document header is larger than Session supports
-§MessageReadTimedOut(Duration)
Too much time has elapsed without receiving a message
+Variants§
§ReaderReadFailed(Error)
Failed to read data from read stream due to std::io::Error
+§BsonDocumentSizeTooSmall(i32)
Bson documents need to be at least 4 bytes long
+§BsonDocumentSizeTooLarge(i32, i32)
Received Bson document header is larger than Session supports
+§MessageReadTimedOut(Duration)
Too much time has elapsed without receiving a message
§BsonDocumentParseFailed(Error)
Failed to parse bson message
§MessageConversionFailed(ErrorCode)
Failed to convert bson document to Honk-RPC message
§BsonWriteFailed(Error)
Failed to serialise bson document
-§WriterWriteFailed(Error)
Failed to write data to write stream due to std::io::Error
-§WriterFlushFailed(Error)
Failed to flush data to write stream due to std::io::Error
+§WriterWriteFailed(Error)
Failed to write data to write stream due to std::io::Error
+§WriterFlushFailed(Error)
Failed to flush data to write stream due to std::io::Error
§UnknownErrorSectionReceived(ErrorCode)
Received a Honk-RPC error_section
without an associated request cookie
§InvalidMaxMesageSize()
Attempted to define invalid maximum message size
-§SectionTooLarge(usize, usize)
Attempted to send a Honk-RPC section
that is too large to fit in a message
-Trait Implementations§
source§impl Error for Error
source§fn source(&self) -> Option<&(dyn Error + 'static)>
The lower-level source of this error, if any. Read more1.0.0 · source§fn description(&self) -> &str
👎Deprecated since 1.42.0: use the Display impl or to_string()Auto Trait Implementations§
§impl Freeze for Error
§impl !RefUnwindSafe for Error
§impl Send for Error
§impl Sync for Error
§impl Unpin for Error
§impl !UnwindSafe for Error
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
- T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more§impl<T> Conv for T
§impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
- Self: Binary,
Causes self
to use its Binary
implementation when Debug
-formatted.Trait Implementations§
source§impl Error for Error
source§fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more1.0.0 · source§fn description(&self) -> &str
👎Deprecated since 1.42.0: use the Display impl or to_string()Auto Trait Implementations§
§impl Freeze for Error
§impl !RefUnwindSafe for Error
§impl Send for Error
§impl Sync for Error
§impl Unpin for Error
§impl !UnwindSafe for Error
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
+ T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more§impl<T> Conv for T
§impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
+ Self: Binary,
Causes self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
+ Self: Display,
Causes self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
- Self: LowerExp,
Causes self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
- Self: LowerHex,
Causes self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
- Self: Octal,
Causes self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
- Self: Pointer,
Causes self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
+ Self: Pointer,
Causes self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
- Self: UpperExp,
Causes self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
- Self: UpperHex,
Causes self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
- &'a Self: for<'a> IntoIterator,
Formats each item in a sequence. Read moresource§impl<T, U> Into<U> for Twhere
- U: From<T>,
source§fn into(self) -> U
Calls U::from(self)
.
+ &'a Self: for<'a> IntoIterator,Formats each item in a sequence. Read more§impl<T> Pipe for Twhere
- T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
- Self: Sized,
Pipes by value. This is generally the method you want to use. Read more§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
- R: 'a,
Borrows self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
- R: 'a,
Mutably borrows self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
+ Self: Sized,
Pipes by value. This is generally the method you want to use. Read more§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
+ R: 'a,
Borrows self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
+ R: 'a,
Mutably borrows self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
- func: impl FnOnce(&'a mut B) -> R,
+ func: impl FnOnce(&'a mut B) -> R,
) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
Mutably borrows self
, then passes self.as_mut()
into the pipe
-function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows self
, then passes self.deref()
into the pipe function.§impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls .tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls .tap_mut()
only in debug builds, and is erased in release
-builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls .tap_borrow()
only in debug builds, and is erased in release
-builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls .tap_borrow_mut()
only in debug builds, and is erased in release
-builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls .tap_ref()
only in debug builds, and is erased in release
-builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls .tap_ref_mut()
only in debug builds, and is erased in release
-builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls .tap_deref()
only in debug builds, and is erased in release
-builds.§impl<T> TryConv for T
§impl<V, T> VZip<V> for Twhere
+function.
§impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls .tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls .tap_mut()
only in debug builds, and is erased in release
+builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls .tap_borrow()
only in debug builds, and is erased in release
+builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls .tap_borrow_mut()
only in debug builds, and is erased in release
+builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls .tap_ref()
only in debug builds, and is erased in release
+builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls .tap_ref_mut()
only in debug builds, and is erased in release
+builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls .tap_deref()
only in debug builds, and is erased in release
+builds.§impl<T> TryConv for T
\ No newline at end of file
diff --git a/crates/honk_rpc/honk_rpc/enum.ErrorCode.html b/crates/honk_rpc/honk_rpc/enum.ErrorCode.html
index 1c835caa..fbda94e7 100644
--- a/crates/honk_rpc/honk_rpc/enum.ErrorCode.html
+++ b/crates/honk_rpc/honk_rpc/enum.ErrorCode.html
@@ -1,4 +1,4 @@
-ErrorCode in honk_rpc::honk_rpc - Rust pub enum ErrorCode {
+ErrorCode in honk_rpc::honk_rpc - Rust pub enum ErrorCode {
}
Expand description
Represents various error codes that can be present in a Honk-RPC error_section
Variants§
§BsonParseFailed
Failure to parse a received BSON document.
§MessageTooBig
Received message document was too big; the default maximum message size
@@ -28,103 +28,102 @@
§RequestVersionInvalid
Provided request version does not exist.
§ResponseCookieInvalid
Provided response cookie is not recognized.
§ResponseStateInvalid
Provided response state is not valid.
-§Runtime(i32)
Represents an application-specific runtime error with a specific error code.
-§Unknown(i32)
Represents an unknown error with a specific error code.
-Trait Implementations§
source§impl Error for ErrorCode
1.30.0 · source§fn source(&self) -> Option<&(dyn Error + 'static)>
The lower-level source of this error, if any. Read more1.0.0 · source§fn description(&self) -> &str
👎Deprecated since 1.42.0: use the Display impl or to_string()source§impl PartialEq for ErrorCode
source§impl Eq for ErrorCode
source§impl StructuralPartialEq for ErrorCode
Auto Trait Implementations§
§impl Freeze for ErrorCode
§impl RefUnwindSafe for ErrorCode
§impl Send for ErrorCode
§impl Sync for ErrorCode
§impl Unpin for ErrorCode
§impl UnwindSafe for ErrorCode
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
- T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more§impl<T> Conv for T
§impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more§impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.§impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
- Self: Binary,
Causes self
to use its Binary
implementation when Debug
-formatted.Trait Implementations§
source§impl Error for ErrorCode
1.30.0 · source§fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more1.0.0 · source§fn description(&self) -> &str
👎Deprecated since 1.42.0: use the Display impl or to_string()source§impl Eq for ErrorCode
source§impl StructuralPartialEq for ErrorCode
Auto Trait Implementations§
§impl Freeze for ErrorCode
§impl RefUnwindSafe for ErrorCode
§impl Send for ErrorCode
§impl Sync for ErrorCode
§impl Unpin for ErrorCode
§impl UnwindSafe for ErrorCode
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
+ T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more§impl<T> Conv for T
§impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more§impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.§impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
+ Self: Binary,
Causes self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
+ Self: Display,
Causes self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
- Self: LowerExp,
Causes self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
- Self: LowerHex,
Causes self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
- Self: Octal,
Causes self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
- Self: Pointer,
Causes self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
+ Self: Pointer,
Causes self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
- Self: UpperExp,
Causes self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
- Self: UpperHex,
Causes self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
- &'a Self: for<'a> IntoIterator,
Formats each item in a sequence. Read moresource§impl<T, U> Into<U> for Twhere
- U: From<T>,
source§fn into(self) -> U
Calls U::from(self)
.
+ &'a Self: for<'a> IntoIterator,Formats each item in a sequence. Read more§impl<T> Pipe for Twhere
- T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
- Self: Sized,
Pipes by value. This is generally the method you want to use. Read more§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
- R: 'a,
Borrows self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
- R: 'a,
Mutably borrows self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
+ Self: Sized,
Pipes by value. This is generally the method you want to use. Read more§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
+ R: 'a,
Borrows self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
+ R: 'a,
Mutably borrows self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
- func: impl FnOnce(&'a mut B) -> R,
+ func: impl FnOnce(&'a mut B) -> R,
) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
Mutably borrows self
, then passes self.as_mut()
into the pipe
-function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows self
, then passes self.deref()
into the pipe function.§impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls .tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls .tap_mut()
only in debug builds, and is erased in release
-builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls .tap_borrow()
only in debug builds, and is erased in release
-builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls .tap_borrow_mut()
only in debug builds, and is erased in release
-builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls .tap_ref()
only in debug builds, and is erased in release
-builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls .tap_ref_mut()
only in debug builds, and is erased in release
-builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls .tap_deref()
only in debug builds, and is erased in release
-builds.§impl<T> TryConv for T
§impl<V, T> VZip<V> for Twhere
+function.
§impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls .tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls .tap_mut()
only in debug builds, and is erased in release
+builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls .tap_borrow()
only in debug builds, and is erased in release
+builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls .tap_borrow_mut()
only in debug builds, and is erased in release
+builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls .tap_ref()
only in debug builds, and is erased in release
+builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls .tap_ref_mut()
only in debug builds, and is erased in release
+builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls .tap_deref()
only in debug builds, and is erased in release
+builds.§impl<T> TryConv for T
\ No newline at end of file
diff --git a/crates/honk_rpc/honk_rpc/enum.Response.html b/crates/honk_rpc/honk_rpc/enum.Response.html
index 3f9eaa3d..8efa9888 100644
--- a/crates/honk_rpc/honk_rpc/enum.Response.html
+++ b/crates/honk_rpc/honk_rpc/enum.Response.html
@@ -1,10 +1,10 @@
-Response in honk_rpc::honk_rpc - Rust pub enum Response {
+Response in honk_rpc::honk_rpc - Rust pub enum Response {
Pending {
cookie: RequestCookie,
},
Success {
cookie: RequestCookie,
- result: Option<Bson>,
+ result: Option<Bson>,
},
Error {
cookie: RequestCookie,
@@ -15,98 +15,98 @@
Fields
The cookie associated with the request.
§Success
A successful response, containing the result of the request.
Fields
The cookie associated with the request.
-§Error
An error response, containing the error code.
Auto Trait Implementations§
§impl Freeze for Response
§impl RefUnwindSafe for Response
§impl Send for Response
§impl Sync for Response
§impl Unpin for Response
§impl UnwindSafe for Response
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
- T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more§impl<T> Conv for T
§impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
- Self: Binary,
Causes self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
- Self: Display,
Causes self
to use its Display
implementation when
+Auto Trait Implementations§
§impl Freeze for Response
§impl RefUnwindSafe for Response
§impl Send for Response
§impl Sync for Response
§impl Unpin for Response
§impl UnwindSafe for Response
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
+ T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more§impl<T> Conv for T
§impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
+ Self: Binary,
Causes self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
+ Self: Display,
Causes self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
- Self: LowerExp,
Causes self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
- Self: LowerHex,
Causes self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
- Self: Octal,
Causes self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
- Self: Pointer,
Causes self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
+ Self: Pointer,
Causes self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
- Self: UpperExp,
Causes self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
- Self: UpperHex,
Causes self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
- &'a Self: for<'a> IntoIterator,
Formats each item in a sequence. Read moresource§impl<T, U> Into<U> for Twhere
- U: From<T>,
source§fn into(self) -> U
Calls U::from(self)
.
+ &'a Self: for<'a> IntoIterator,Formats each item in a sequence. Read more§impl<T> Pipe for Twhere
- T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
- Self: Sized,
Pipes by value. This is generally the method you want to use. Read more§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
- R: 'a,
Borrows self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
- R: 'a,
Mutably borrows self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
+ Self: Sized,
Pipes by value. This is generally the method you want to use. Read more§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
+ R: 'a,
Borrows self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
+ R: 'a,
Mutably borrows self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
- func: impl FnOnce(&'a mut B) -> R,
+ func: impl FnOnce(&'a mut B) -> R,
) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
Mutably borrows self
, then passes self.as_mut()
into the pipe
-function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows self
, then passes self.deref()
into the pipe function.§impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls .tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls .tap_mut()
only in debug builds, and is erased in release
-builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls .tap_borrow()
only in debug builds, and is erased in release
-builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls .tap_borrow_mut()
only in debug builds, and is erased in release
-builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls .tap_ref()
only in debug builds, and is erased in release
-builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls .tap_ref_mut()
only in debug builds, and is erased in release
-builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls .tap_deref()
only in debug builds, and is erased in release
-builds.§impl<T> TryConv for T
§impl<V, T> VZip<V> for Twhere
+function.
§impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls .tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls .tap_mut()
only in debug builds, and is erased in release
+builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls .tap_borrow()
only in debug builds, and is erased in release
+builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls .tap_borrow_mut()
only in debug builds, and is erased in release
+builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls .tap_ref()
only in debug builds, and is erased in release
+builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls .tap_ref_mut()
only in debug builds, and is erased in release
+builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls .tap_deref()
only in debug builds, and is erased in release
+builds.§impl<T> TryConv for T
\ No newline at end of file
diff --git a/crates/honk_rpc/honk_rpc/fn.get_error_section_size.html b/crates/honk_rpc/honk_rpc/fn.get_error_section_size.html
index 7cecf0f3..f42e9522 100644
--- a/crates/honk_rpc/honk_rpc/fn.get_error_section_size.html
+++ b/crates/honk_rpc/honk_rpc/fn.get_error_section_size.html
@@ -1,8 +1,8 @@
-get_error_section_size in honk_rpc::honk_rpc - Rust Function honk_rpc::honk_rpc::get_error_section_size
source · pub fn get_error_section_size(
- cookie: Option<RequestCookie>,
- message: Option<String>,
- data: Option<Bson>,
-) -> Result<usize, Error>
Expand description
Computes the required size of a Honk-RPC error section in bytes.
+get_error_section_size in honk_rpc::honk_rpc - Rust Function honk_rpc::honk_rpc::get_error_section_size
source · pub fn get_error_section_size(
+ cookie: Option<RequestCookie>,
+ message: Option<String>,
+ data: Option<Bson>,
+) -> Result<usize, Error>
Expand description
Computes the required size of a Honk-RPC error section in bytes.
Returns the size of the BSON-encoded error section. If BSON encoding fails,
an Error::BsonWriteFailed
is returned.
\ No newline at end of file
diff --git a/crates/honk_rpc/honk_rpc/fn.get_message_overhead.html b/crates/honk_rpc/honk_rpc/fn.get_message_overhead.html
index f8ecda9e..a13d62fa 100644
--- a/crates/honk_rpc/honk_rpc/fn.get_message_overhead.html
+++ b/crates/honk_rpc/honk_rpc/fn.get_message_overhead.html
@@ -1,4 +1,4 @@
-get_message_overhead in honk_rpc::honk_rpc - Rust Function honk_rpc::honk_rpc::get_message_overhead
source · pub fn get_message_overhead() -> Result<usize, Error>
Expand description
Computes the overhead of the Honk-RPC message type. This method in conjunction with
+
get_message_overhead in honk_rpc::honk_rpc - Rust Function honk_rpc::honk_rpc::get_message_overhead
source · pub fn get_message_overhead() -> Result<usize, Error>
Expand description
Computes the overhead of the Honk-RPC message type. This method in conjunction with
the other get_*_section_size(..)
functions can be used to compute the size of a
Honk-RPC message with exactly one section.
\ No newline at end of file
diff --git a/crates/honk_rpc/honk_rpc/fn.get_request_section_size.html b/crates/honk_rpc/honk_rpc/fn.get_request_section_size.html
index 9484ddb4..9c65dfae 100644
--- a/crates/honk_rpc/honk_rpc/fn.get_request_section_size.html
+++ b/crates/honk_rpc/honk_rpc/fn.get_request_section_size.html
@@ -1,10 +1,10 @@
-get_request_section_size in honk_rpc::honk_rpc - Rust Function honk_rpc::honk_rpc::get_request_section_size
source · pub fn get_request_section_size(
- cookie: Option<RequestCookie>,
- namespace: Option<String>,
- function: String,
- version: Option<i32>,
- arguments: Option<Document>,
-) -> Result<usize, Error>
Expand description
Computes the required size of a Honk-RPC requests section in bytes.
+get_request_section_size in honk_rpc::honk_rpc - Rust Function honk_rpc::honk_rpc::get_request_section_size
source · pub fn get_request_section_size(
+ cookie: Option<RequestCookie>,
+ namespace: Option<String>,
+ function: String,
+ version: Option<i32>,
+ arguments: Option<Document>,
+) -> Result<usize, Error>
Expand description
Computes the required size of a Honk-RPC requests section in bytes.
Returns the size of the BSON-encoded request section. If BSON encoding fails,
an Error::BsonWriteFailed
is returned.
\ No newline at end of file
diff --git a/crates/honk_rpc/honk_rpc/fn.get_response_section_size.html b/crates/honk_rpc/honk_rpc/fn.get_response_section_size.html
index eb9cd2bb..201968f3 100644
--- a/crates/honk_rpc/honk_rpc/fn.get_response_section_size.html
+++ b/crates/honk_rpc/honk_rpc/fn.get_response_section_size.html
@@ -1,4 +1,4 @@
-get_response_section_size in honk_rpc::honk_rpc - Rust Function honk_rpc::honk_rpc::get_response_section_size
source · pub fn get_response_section_size(result: Option<Bson>) -> Result<usize, Error>
Expand description
Computes the required size of a Honk-RPC response section in bytes.
+get_response_section_size in honk_rpc::honk_rpc - Rust Function honk_rpc::honk_rpc::get_response_section_size
source · pub fn get_response_section_size(result: Option<Bson>) -> Result<usize, Error>
Expand description
Computes the required size of a Honk-RPC response section in bytes.
Returns the size of the BSON-encoded response section. If BSON encoding fails,
an Error::BsonWriteFailed
is returned.
\ No newline at end of file
diff --git a/crates/honk_rpc/honk_rpc/index.html b/crates/honk_rpc/honk_rpc/index.html
index da91c24e..64abe322 100644
--- a/crates/honk_rpc/honk_rpc/index.html
+++ b/crates/honk_rpc/honk_rpc/index.html
@@ -1,6 +1,6 @@
-honk_rpc::honk_rpc - Rust Structs§
- The object that handles the communication between two endpoints using the
+
honk_rpc::honk_rpc - Rust Structs§
- The object that handles the communication between two endpoints using the
Honk-RPC protocol. Provides methods for setting and getting configuration
parameters, reading and processing message documents, and handling API
-requests and responses.
Enums§
- The error type for the
Session
type. - Represents various error codes that can be present in a Honk-RPC
error_section
- Represents the response to a client request.
Constants§
- The default maximum allowed Honk-RPC message (4096 bytes)
- The default maximum allowed duration between Honk-RPC (60 seconds)
Traits§
- The
ApiSet
trait represents a set of APIs that can be remotely invoked by a connecting Honk-RPC client.
Functions§
- Computes the required size of a Honk-RPC error section in bytes.
- Computes the overhead of the Honk-RPC message type. This method in conjunction with
+requests and responses.
Enums§
- The error type for the
Session
type. - Represents various error codes that can be present in a Honk-RPC
error_section
- Represents the response to a client request.
Constants§
- The default maximum allowed Honk-RPC message (4096 bytes)
- The default maximum allowed duration between Honk-RPC (60 seconds)
Traits§
- The
ApiSet
trait represents a set of APIs that can be remotely invoked by a connecting Honk-RPC client.
Functions§
- Computes the required size of a Honk-RPC error section in bytes.
- Computes the overhead of the Honk-RPC message type. This method in conjunction with
the other
get_*_section_size(..)
functions can be used to compute the size of a
-Honk-RPC message with exactly one section. - Computes the required size of a Honk-RPC requests section in bytes.
- Computes the required size of a Honk-RPC response section in bytes.
Type Aliases§
- A type alias for the cookie used to track client requests.
\ No newline at end of file
+Honk-RPC message with exactly one section. - Computes the required size of a Honk-RPC requests section in bytes.
- Computes the required size of a Honk-RPC response section in bytes.
Type Aliases§
- A type alias for the cookie used to track client requests.
\ No newline at end of file
diff --git a/crates/honk_rpc/honk_rpc/struct.Session.html b/crates/honk_rpc/honk_rpc/struct.Session.html
index abfce4dd..08e70b3b 100644
--- a/crates/honk_rpc/honk_rpc/struct.Session.html
+++ b/crates/honk_rpc/honk_rpc/struct.Session.html
@@ -1,124 +1,124 @@
-Session in honk_rpc::honk_rpc - Rust pub struct Session<RW> { /* private fields */ }
Expand description
The object that handles the communication between two endpoints using the
+
Session in honk_rpc::honk_rpc - Rust pub struct Session<RW> { /* private fields */ }
Expand description
The object that handles the communication between two endpoints using the
Honk-RPC protocol. Provides methods for setting and getting configuration
parameters, reading and processing message documents, and handling API
requests and responses.
Implementations§
source§impl<RW> Session<RW>
sourcepub fn set_max_message_size(
+ RW: Read + Write + Send,
sourcepub fn set_max_message_size(
&mut self,
- max_message_size: i32,
-) -> Result<(), Error>
Sets the maximum message size this Session
is willing to read from from the underlying RW
. Attempted reads will abort if the next bson document’s i32
size field is greater than the max_message_size
defined in this function.
-sourcepub fn get_max_message_size(&self) -> usize
Gets the maximum allowed message size this Session
is willing to read from the underlying RW
. The default value is 4096 bytes.
-sourcepub fn set_max_wait_time(&mut self, max_wait_time: Duration)
Sets the maximum amount of time this Session
is willing to wait for a new Honk-RPC message on the underlying RW
. Session
updates will fil after max_wait_time
has elapsed without receiving any new Honk-RPC message documents.
-sourcepub fn get_max_wait_time(&self) -> Duration
Gets the maximum amount this Session
is willing to wait for a new Honk-RPC message. The default value is 60 seconds.
+ max_message_size: i32,
+) -> Result<(), Error>Sets the maximum message size this Session
is willing to read from from the underlying RW
. Attempted reads will abort if the next bson document’s i32
size field is greater than the max_message_size
defined in this function.
+sourcepub fn get_max_message_size(&self) -> usize
Gets the maximum allowed message size this Session
is willing to read from the underlying RW
. The default value is 4096 bytes.
+sourcepub fn set_max_wait_time(&mut self, max_wait_time: Duration)
Sets the maximum amount of time this Session
is willing to wait for a new Honk-RPC message on the underlying RW
. Session
updates will fil after max_wait_time
has elapsed without receiving any new Honk-RPC message documents.
+sourcepub fn get_max_wait_time(&self) -> Duration
Gets the maximum amount this Session
is willing to wait for a new Honk-RPC message. The default value is 60 seconds.
sourcepub fn into_stream(self) -> RW
Consumes the Session
and returns the underlying stream.
sourcepub fn update(
&mut self,
- apisets: Option<&mut [&mut dyn ApiSet]>,
-) -> Result<(), Error>
Read and process Honk-RPC message documents from connected peer, handle any new incoming Honk-RPC requests, update any in-progress async requests and write pending reponses, errors and requests to peer. This function must be called regularly for the Session
to make forward progress.
+ apisets: Option<&mut [&mut dyn ApiSet]>,
+) -> Result<(), Error>Read and process Honk-RPC message documents from connected peer, handle any new incoming Honk-RPC requests, update any in-progress async requests and write pending reponses, errors and requests to peer. This function must be called regularly for the Session
to make forward progress.
sourcepub fn client_call(
&mut self,
- namespace: &str,
- function: &str,
- version: i32,
+ namespace: &str,
+ function: &str,
+ version: i32,
arguments: Document,
-) -> Result<RequestCookie, Error>
Performs a client call to a remote function. Returns a RequestCookie
to associate this client call with a future Response
.
-sourcepub fn client_drain_responses(&mut self) -> Drain<'_, Response>
Drains all Response
objects resulting from prevoius invocations of Session::client_call()
-sourcepub fn client_next_response(&mut self) -> Option<Response>
Retrieves the next Response
object from previous invocations of Session::client_call()
-Auto Trait Implementations§
§impl<RW> Freeze for Session<RW>where
- RW: Freeze,
§impl<RW> RefUnwindSafe for Session<RW>where
- RW: RefUnwindSafe,
§impl<RW> Send for Session<RW>where
- RW: Send,
§impl<RW> Sync for Session<RW>where
- RW: Sync,
§impl<RW> Unpin for Session<RW>where
- RW: Unpin,
§impl<RW> UnwindSafe for Session<RW>where
- RW: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
- T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more§impl<T> Conv for T
§impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
- Self: Binary,
Causes self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
- Self: Display,
Causes self
to use its Display
implementation when
+) -> Result<RequestCookie, Error>Performs a client call to a remote function. Returns a RequestCookie
to associate this client call with a future Response
.
+sourcepub fn client_drain_responses(&mut self) -> Drain<'_, Response>
Drains all Response
objects resulting from prevoius invocations of Session::client_call()
+sourcepub fn client_next_response(&mut self) -> Option<Response>
Retrieves the next Response
object from previous invocations of Session::client_call()
+Auto Trait Implementations§
§impl<RW> Freeze for Session<RW>where
+ RW: Freeze,
§impl<RW> RefUnwindSafe for Session<RW>where
+ RW: RefUnwindSafe,
§impl<RW> Send for Session<RW>where
+ RW: Send,
§impl<RW> Sync for Session<RW>where
+ RW: Sync,
§impl<RW> Unpin for Session<RW>where
+ RW: Unpin,
§impl<RW> UnwindSafe for Session<RW>where
+ RW: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
+ T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more§impl<T> Conv for T
§impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
+ Self: Binary,
Causes self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
+ Self: Display,
Causes self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
- Self: LowerExp,
Causes self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
- Self: LowerHex,
Causes self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
- Self: Octal,
Causes self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
- Self: Pointer,
Causes self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
+ Self: Pointer,
Causes self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
- Self: UpperExp,
Causes self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
- Self: UpperHex,
Causes self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
- &'a Self: for<'a> IntoIterator,
Formats each item in a sequence. Read moresource§impl<T, U> Into<U> for Twhere
- U: From<T>,
source§fn into(self) -> U
Calls U::from(self)
.
+ &'a Self: for<'a> IntoIterator,Formats each item in a sequence. Read more§impl<T> Pipe for Twhere
- T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
- Self: Sized,
Pipes by value. This is generally the method you want to use. Read more§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
- R: 'a,
Borrows self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
- R: 'a,
Mutably borrows self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
+ Self: Sized,
Pipes by value. This is generally the method you want to use. Read more§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
+ R: 'a,
Borrows self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
+ R: 'a,
Mutably borrows self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
- func: impl FnOnce(&'a mut B) -> R,
+ func: impl FnOnce(&'a mut B) -> R,
) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
Mutably borrows self
, then passes self.as_mut()
into the pipe
-function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows self
, then passes self.deref()
into the pipe function.§impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls .tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls .tap_mut()
only in debug builds, and is erased in release
-builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls .tap_borrow()
only in debug builds, and is erased in release
-builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls .tap_borrow_mut()
only in debug builds, and is erased in release
-builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls .tap_ref()
only in debug builds, and is erased in release
-builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls .tap_ref_mut()
only in debug builds, and is erased in release
-builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls .tap_deref()
only in debug builds, and is erased in release
-builds.§impl<T> TryConv for T
§impl<V, T> VZip<V> for Twhere
+function.
§impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls .tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls .tap_mut()
only in debug builds, and is erased in release
+builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls .tap_borrow()
only in debug builds, and is erased in release
+builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls .tap_borrow_mut()
only in debug builds, and is erased in release
+builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls .tap_ref()
only in debug builds, and is erased in release
+builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls .tap_ref_mut()
only in debug builds, and is erased in release
+builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls .tap_deref()
only in debug builds, and is erased in release
+builds.§impl<T> TryConv for T
\ No newline at end of file
diff --git a/crates/honk_rpc/honk_rpc/trait.ApiSet.html b/crates/honk_rpc/honk_rpc/trait.ApiSet.html
index 2eec8083..d6a43c80 100644
--- a/crates/honk_rpc/honk_rpc/trait.ApiSet.html
+++ b/crates/honk_rpc/honk_rpc/trait.ApiSet.html
@@ -1,19 +1,19 @@
-ApiSet in honk_rpc::honk_rpc - Rust pub trait ApiSet {
+ApiSet in honk_rpc::honk_rpc - Rust pub trait ApiSet {
// Required methods
- fn namespace(&self) -> &str;
+ fn namespace(&self) -> &str;
fn exec_function(
&mut self,
- name: &str,
- version: i32,
+ name: &str,
+ version: i32,
args: Document,
- request_cookie: Option<RequestCookie>,
- ) -> Option<Result<Option<Bson>, ErrorCode>>;
+ request_cookie: Option<RequestCookie>,
+ ) -> Option<Result<Option<Bson>, ErrorCode>>;
// Provided methods
fn update(&mut self) { ... }
fn next_result(
&mut self,
- ) -> Option<(RequestCookie, Result<Option<Bson>, ErrorCode>)> { ... }
+ ) -> Option<(RequestCookie, Result<Option<Bson>, ErrorCode>)> { ... }
}
Required Methods§
Required Methods§
sourcefn exec_function(
&mut self,
- name: &str,
- version: i32,
+ name: &str,
+ version: i32,
args: Document,
- request_cookie: Option<RequestCookie>,
-) -> Option<Result<Option<Bson>, ErrorCode>>
Schedules the execution of the requested remote procedure call. Calls to this
+ request_cookie: Option<RequestCookie>,
+) -> Option<Result<Option<Bson>, ErrorCode>>
Schedules the execution of the requested remote procedure call. Calls to this
function map directly to a received Honk-RPC request. Each request has the
following parameters:
@@ -130,7 +130,7 @@ §Example
function is a no-op.
sourcefn next_result(
&mut self,
-) -> Option<(RequestCookie, Result<Option<Bson>, ErrorCode>)>
Returns the result of any in-flight asynchronous requests.
+) -> Option<(RequestCookie, Result<Option<Bson>, ErrorCode>)>Returns the result of any in-flight asynchronous requests.
- Asynchronous requests may signal success by returning
Some((cookie, Ok(..)))
- Asynchronous requests may signal failure by returning
Some((cookie, Err(..)))
diff --git a/crates/honk_rpc/honk_rpc/type.RequestCookie.html b/crates/honk_rpc/honk_rpc/type.RequestCookie.html
index 31ac25b4..59398106 100644
--- a/crates/honk_rpc/honk_rpc/type.RequestCookie.html
+++ b/crates/honk_rpc/honk_rpc/type.RequestCookie.html
@@ -1,2 +1,2 @@
-RequestCookie in honk_rpc::honk_rpc - Rust Type Alias honk_rpc::honk_rpc::RequestCookie
source · pub type RequestCookie = i64;
Expand description
A type alias for the cookie used to track client requests.
+RequestCookie in honk_rpc::honk_rpc - Rust Type Alias honk_rpc::honk_rpc::RequestCookie
source · pub type RequestCookie = i64;
Expand description
A type alias for the cookie used to track client requests.
\ No newline at end of file
diff --git a/crates/honk_rpc/index.html b/crates/honk_rpc/index.html
index 1cf2b56c..525cdaaa 100644
--- a/crates/honk_rpc/index.html
+++ b/crates/honk_rpc/index.html
@@ -1,4 +1,4 @@
-honk_rpc - Rust Expand description
§Honk-RPC
+honk_rpc - Rust Expand description
§Honk-RPC
Implementation of the Honk-RPC remote procedure call protocol.
§Overview
The honk-rpc
crate is a bare-bones implementation of the Honk-RPC
protocol. This protocol is heavily inspired by JSON-RPC, but uses BSON as the underlying message format to enable more efficient transmission of large binary payloads.
@@ -6,4 +6,4 @@ §Overview
For now, communications are presumed to take place over a Rust object implementing both std::io::Read
and std::io::Write
. In practice, this is presumed to be a std::io::TcpStream
.
§⚠ Unstable ⚠
The honk-rpc
crate’s API and the Honk-RPC
protocol specification are considered unstable. The honk-rpc
crate will likely be changed in the future to operate purely on bson
objects and lave the specifics of the transport layer up to consumers of the crate.
-Modules§
\ No newline at end of file
+Modules§
\ No newline at end of file
diff --git a/crates/search-index.js b/crates/search-index.js
index a1693134..75cc86c2 100644
--- a/crates/search-index.js
+++ b/crates/search-index.js
@@ -1,7 +1,4 @@
-var searchIndex = new Map(JSON.parse('[\
-["gosling",{"t":"CFGPPPPPPPPPPGIPPPPPPPPPPPPPPPPPPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO","n":["context","Context","ContextEvent","EndpointClientError","EndpointClientHandshakeCompleted","EndpointClientHandshakeFailed","EndpointServerChannelRequestReceived","EndpointServerError","EndpointServerHandshakeCompleted","EndpointServerHandshakeFailed","EndpointServerHandshakeRejected","EndpointServerHandshakeStarted","EndpointServerPublished","Error","HandshakeHandle","HandshakeHandleNotFound","HonkRpc","IdentityClientChallengeReceived","IdentityClientError","IdentityClientHandshakeCompleted","IdentityClientHandshakeFailed","IdentityServerChallengeResponseReceived","IdentityServerEndpointRequestReceived","IdentityServerError","IdentityServerHandshakeCompleted","IdentityServerHandshakeFailed","IdentityServerHandshakeRejected","IdentityServerHandshakeStarted","IdentityServerPublished","IncorrectUsage","InvalidArgument","Io","TorBootstrapCompleted","TorBootstrapStatusReceived","TorCrypto","TorLogReceived","TorNotConnected","TorProvider","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","bootstrap","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","connect","endpoint_client_abort_handshake","endpoint_client_begin_handshake","endpoint_server_handle_channel_request_received","endpoint_server_start","endpoint_server_stop","fmt","fmt","fmt","from","from","from","from","from","from","from","generate_circuit_token","identity_client_abort_handshake","identity_client_begin_handshake","identity_client_handle_challenge_received","identity_server_handle_challenge_response_received","identity_server_handle_endpoint_request_received","identity_server_start","identity_server_stop","into","into","into","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","new","release_circuit_token","report","source","to_string","try_from","try_from","try_from","try_into","try_into","try_into","try_into_slug","try_octets_into","try_octets_into","try_octets_into","type_id","type_id","type_id","update","vzip","vzip","vzip","challenge_response","challenge_response_valid","channel_name","channel_name","client_allowed","client_allowed","client_auth_private_key","client_auth_public_key","client_auth_signature_valid","client_proof_signature_valid","client_proof_signature_valid","client_requested_channel_valid","client_requested_endpoint_valid","client_service_id","client_service_id","client_service_id","client_service_id","endpoint_challenge","endpoint_name","endpoint_name","endpoint_name","endpoint_private_key","endpoint_service_id","endpoint_service_id","endpoint_service_id","endpoint_service_id","handle","handle","handle","handle","handle","handle","handle","handle","handle","handle","handle","handle","handle","handle","handle","handle","identity_service_id","line","progress","reason","reason","reason","reason","requested_channel","requested_endpoint","stream","stream","summary","tag"],"q":[[0,"gosling"],[1,"gosling::context"],[108,"gosling::context::ContextEvent"],[163,"core::any"],[164,"core::result"],[165,"tor_interface::tor_provider"],[166,"core::option"],[167,"tor_interface::tor_crypto"],[168,"alloc::string"],[169,"core::fmt"],[170,"honk_rpc::honk_rpc"],[171,"std::io::error"],[172,"bson::document"],[173,"alloc::boxed"],[174,"alloc::sync"],[175,"alloc::rc"],[176,"core::time"],[177,"tor_error::report"],[178,"core::error"],[179,"tor_persist::slug"],[180,"alloc::collections::vec_deque"]],"i":[0,0,0,6,21,21,21,6,21,21,21,21,21,0,0,6,6,21,6,21,21,21,21,6,21,21,21,21,21,6,6,6,21,21,6,21,6,6,4,6,21,4,6,21,4,4,6,21,4,6,21,4,4,4,4,4,4,6,6,21,4,6,6,6,6,6,21,4,4,4,4,4,4,4,4,4,6,21,4,6,21,6,21,4,6,21,4,4,6,6,6,4,6,21,4,6,21,6,4,6,21,4,6,21,4,4,6,21,41,42,43,44,42,45,46,47,42,42,45,45,42,48,47,49,44,50,46,47,51,47,46,43,51,44,50,46,52,53,48,41,47,42,54,43,55,56,49,44,45,57,46,58,59,52,54,55,57,49,48,43,44,59,59],"f":"``````````````````````````````````````{{{b{c}}}{{b{d}}}{}}00{{{b{fc}}}{{b{fd}}}{}}00{{{b{fh}}}{{n{jl}}}}{{{b{c}}}{{b{e}}}{}{}}00{{{b{fc}}}{{b{fe}}}{}{}}00{{{b{fh}}A`{Ad{Ab}}}{{n{Afl}}}}{{{b{fh}}Ah}{{n{jl}}}}{{{b{fh}}AjAlAn}{{n{Ahl}}}}{{{b{fh}}AhB`}{{n{jl}}}}{{{b{fh}}BbAnAjBd}{{n{jl}}}}{{{b{fh}}Aj}{{n{jl}}}}{{{b{l}}{b{fBf}}}Bh}0{{{b{Bj}}{b{fBf}}}Bh}{cc{}}{Bll}{Bnl}{C`l}3{Cbl}4{{{b{fh}}}Ab}<{{{b{fh}}AjAn}{{n{Ahl}}}}{{{b{fh}}AhCd}{{n{jl}}}}<{{{b{fh}}AhB`B`Cd}{{n{jl}}}}{{{b{fh}}}{{n{jl}}}}0{ce{}{}}00{{{Cf{c}}}{{Cf{d}}}{}}00{{{Ch{c}}}{{Ch{d}}}{}}0{{{Cj{c}}}{{Cj{d}}}{}}00{{{Cf{Cl}}CnCnD`Db{Ad{D`}}Bb}{{n{hl}}}}{{{b{fh}}Ab}j}{{{b{c}}}{{Df{Dd}}}{}}{{{b{l}}}{{Ad{{b{Dh}}}}}}{{{b{c}}}An{}}{c{{n{e}}}{}{}}00000{{{b{c}}}{{n{DjDl}}}{}}111{{{b{c}}}Dn{}}00{{{b{fh}}}{{n{{E`{Bj}}l}}}}<<<```````````````````````````````````````````````````````","D":"Nl","p":[[1,"reference"],[10,"Any",163],[0,"mut"],[5,"Context",1],[1,"unit"],[6,"Error",1],[6,"Result",164],[6,"TargetAddr",165],[8,"CircuitToken",165],[6,"Option",166],[5,"OnionStream",165],[8,"HandshakeHandle",1],[5,"V3OnionServiceId",167],[5,"X25519PrivateKey",167],[5,"String",168],[1,"bool"],[5,"Ed25519PrivateKey",167],[5,"X25519PublicKey",167],[5,"Formatter",169],[8,"Result",169],[6,"ContextEvent",1],[6,"Error",167],[6,"Error",170],[6,"Error",165],[5,"Error",171],[5,"Document",172],[5,"Box",173],[5,"Arc",174],[5,"Rc",175],[10,"TorProvider",165],[1,"u16"],[5,"Duration",176],[1,"i32"],[5,"ReportHelper",177],[5,"Report",177],[10,"Error",178],[5,"Slug",179],[6,"BadSlug",179],[5,"TypeId",163],[5,"VecDeque",180],[15,"IdentityServerChallengeResponseReceived",108],[15,"IdentityServerHandshakeRejected",108],[15,"EndpointClientHandshakeCompleted",108],[15,"EndpointServerHandshakeCompleted",108],[15,"EndpointServerHandshakeRejected",108],[15,"IdentityClientHandshakeCompleted",108],[15,"IdentityServerHandshakeCompleted",108],[15,"IdentityServerEndpointRequestReceived",108],[15,"EndpointServerChannelRequestReceived",108],[15,"IdentityClientChallengeReceived",108],[15,"EndpointServerPublished",108],[15,"IdentityClientHandshakeFailed",108],[15,"IdentityServerHandshakeStarted",108],[15,"IdentityServerHandshakeFailed",108],[15,"EndpointClientHandshakeFailed",108],[15,"EndpointServerHandshakeStarted",108],[15,"EndpointServerHandshakeFailed",108],[15,"TorLogReceived",108],[15,"TorBootstrapStatusReceived",108]],"r":[],"b":[[57,"impl-Debug-for-Error"],[58,"impl-Display-for-Error"],[61,"impl-From%3CError%3E-for-Error"],[62,"impl-From%3CError%3E-for-Error"],[63,"impl-From%3CError%3E-for-Error"],[65,"impl-From%3CError%3E-for-Error"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAC0ACAAnAAUALgAFADoAAgA+AAIAQgAAAE8ABwBZAA8AagACAA=="}],\
-["honk_rpc",{"t":"CKPPPPPSSGPGPPPPPPPPIPPPPGPPPPPPFPPPPPNNNNNNNNNNNNNNNMNNNNNNNNNHNNHHHNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNOOOOO","n":["honk_rpc","ApiSet","BsonDocumentParseFailed","BsonDocumentSizeTooLarge","BsonDocumentSizeTooSmall","BsonParseFailed","BsonWriteFailed","DEFAULT_MAX_MESSAGE_SIZE","DEFAULT_MAX_WAIT_TIME","Error","Error","ErrorCode","InvalidMaxMesageSize","MessageConversionFailed","MessageParseFailed","MessageReadTimedOut","MessageTooBig","MessageVersionIncompatible","Pending","ReaderReadFailed","RequestCookie","RequestCookieInvalid","RequestFunctionInvalid","RequestNamespaceInvalid","RequestVersionInvalid","Response","ResponseCookieInvalid","ResponseStateInvalid","Runtime","SectionIdUnknown","SectionParseFailed","SectionTooLarge","Session","Success","Unknown","UnknownErrorSectionReceived","WriterFlushFailed","WriterWriteFailed","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","client_call","client_drain_responses","client_next_response","eq","equivalent","equivalent","equivalent","exec_function","fmt","fmt","fmt","fmt","from","from","from","from","from","get_error_section_size","get_max_message_size","get_max_wait_time","get_message_overhead","get_request_section_size","get_response_section_size","into","into","into","into","into_stream","namespace","new","next_result","set_max_message_size","set_max_wait_time","source","to_string","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","update","update","vzip","vzip","vzip","vzip","cookie","cookie","cookie","error_code","result"],"q":[[0,"honk_rpc"],[1,"honk_rpc::honk_rpc"],[100,"honk_rpc::honk_rpc::Response"],[105,"bson::document"],[106,"core::result"],[107,"std::io"],[108,"core::marker"],[109,"alloc::collections::vec_deque::drain"],[110,"core::option"],[111,"bson::bson"],[112,"core::fmt"],[113,"alloc::string"],[114,"core::time"],[115,"core::error"],[116,"core::any"]],"i":[0,0,8,8,8,16,8,0,0,0,13,0,8,8,16,8,16,16,13,8,0,16,16,16,16,0,16,16,16,16,16,8,0,13,16,8,8,8,13,3,16,8,13,3,16,8,3,3,3,16,16,16,16,18,16,16,8,8,13,3,16,16,8,0,3,3,0,0,0,13,3,16,8,3,18,3,18,3,3,8,16,8,13,3,16,8,13,3,16,8,13,3,16,8,18,3,13,3,16,8,30,31,32,32,31],"f":"``````````````````````````````````````{{{b{c}}}{{b{e}}}{}{}}000{{{b{dc}}}{{b{de}}}{}{}}000{{{b{d{f{c}}}}{b{h}}{b{h}}jl}{{Ab{nA`}}}{AdAfAh}}{{{b{d{f{c}}}}}{{Al{Aj}}}{AdAfAh}}{{{b{d{f{c}}}}}{{An{Aj}}}{AdAfAh}}{{{b{B`}}{b{B`}}}Bb}{{{b{c}}{b{e}}}Bb{}{}}00{{{b{dBd}}{b{h}}jl{An{n}}}{{An{{Ab{{An{Bf}}B`}}}}}}{{{b{B`}}{b{dBh}}}Bj}0{{{b{A`}}{b{dBh}}}Bj}0{cc{}}0{jB`}11{{{An{n}}{An{Bl}}{An{Bf}}}{{Ab{BnA`}}}}{{{b{{f{c}}}}}Bn{AdAfAh}}{{{b{{f{c}}}}}C`{AdAfAh}}{{}{{Ab{BnA`}}}}{{{An{n}}{An{Bl}}Bl{An{j}}{An{l}}}{{Ab{BnA`}}}}{{{An{Bf}}}{{Ab{BnA`}}}}{ce{}{}}000{{{f{c}}}c{AdAfAh}}{{{b{Bd}}}{{b{h}}}}{c{{f{c}}}{AdAfAh}}{{{b{dBd}}}{{An{{Cb{n{Ab{{An{Bf}}B`}}}}}}}}{{{b{d{f{c}}}}j}{{Ab{CdA`}}}{AdAfAh}}{{{b{d{f{c}}}}C`}Cd{AdAfAh}}{{{b{A`}}}{{An{{b{Cf}}}}}}{{{b{c}}}Bl{}}0{c{{Ab{e}}}{}{}}0000000{{{b{c}}}Ch{}}000{{{b{dBd}}}Cd}{{{b{d{f{c}}}}{An{{b{d{Cj{{b{dBd}}}}}}}}}{{Ab{CdA`}}}{AdAfAh}}<<<<`````","D":"Hj","p":[[1,"reference"],[0,"mut"],[5,"Session",1],[1,"str"],[1,"i32"],[5,"Document",105],[8,"RequestCookie",1],[6,"Error",1],[6,"Result",106],[10,"Read",107],[10,"Write",107],[10,"Send",108],[6,"Response",1],[5,"Drain",109],[6,"Option",110],[6,"ErrorCode",1],[1,"bool"],[10,"ApiSet",1],[6,"Bson",111],[5,"Formatter",112],[8,"Result",112],[5,"String",113],[1,"usize"],[5,"Duration",114],[1,"tuple"],[1,"unit"],[10,"Error",115],[5,"TypeId",116],[1,"slice"],[15,"Pending",100],[15,"Success",100],[15,"Error",100]],"r":[],"b":[[54,"impl-Debug-for-ErrorCode"],[55,"impl-Display-for-ErrorCode"],[56,"impl-Display-for-Error"],[57,"impl-Debug-for-Error"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAACQABwABAAAAJwAHADIAAwA3AAMAPQAAAFAADgBhAAMA"}],\
-["tor_interface",{"t":"CCCCCCCCPPPPFGPPPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPPPFGPPPFGPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPPPPPGPPPFGPPPPPPPPPPPPPPPPPPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOGFPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPPGFPPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPFGGPFPFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPSSSSSSSFFFGPPPGFSSFFSSSSSSPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPIPFGPPGFFPPFPPGGKPNNNNNMNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNOOOOO","n":["arti_client_tor_client","censorship_circumvention","legacy_tor_client","legacy_tor_version","mock_tor_client","proxy","tor_crypto","tor_provider","ArtiClientConfigBuilderError","ArtiClientError","ArtiClientOnionServiceLaunchError","ArtiClientTorAddrError","ArtiClientTorClient","Error","NotImplemented","OnionServiceConfigBuilderError","TcpListenerAcceptFailed","TcpListenerBindFailed","TcpListenerLocalAddrFailed","TcpStreamConnectFailed","TcpStreamIntoFailed","TorKeyMgrError","add_client_auth","as_any","as_any","as_any_mut","as_any_mut","bootstrap","borrow","borrow","borrow_mut","borrow_mut","connect","fmt","fmt","from","from","generate_token","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","listener","new","release_token","remove_client_auth","report","source","to_string","try_from","try_from","try_into","try_into","try_into_slug","try_octets_into","try_octets_into","type_id","type_id","update","vzip","vzip","AddressMissing","AddressParseFailed","AddressPortInvalid","BinaryPathInvalid","BridgeLine","BridgeLineError","FingerprintInvalid","FingerprintMissing","KeyValueInvalid","PluggableTransportConfig","PluggableTransportConfigError","TransportMissing","TransportNameInvalid","TransportNameInvalid","__clone_box","__clone_box","add_option","address","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_legacy_tor_setconf_value","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","clone_to_uninit","clone_to_uninit","fingerprint","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from_str","into","into","into","into","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","keyvalues","new","new","options","path_to_binary","report","report","to_owned","to_owned","to_string","to_string","transport","transports","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into_slug","try_into_slug","try_octets_into","try_octets_into","try_octets_into","try_octets_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","AddOnionFailed","BridgeTransportNotSupported","BridgeTransportTypeMultiplyDefined","BundledTor","CircuitTokenInvalid","DelOnionFailed","Error","GetInfoNetListenersSocksFailed","GetInfoVersionFailed","LegacyControlStreamCreationFailed","LegacyTorClient","LegacyTorClientConfig","LegacyTorControllerCreationFailed","LegacyTorNotBootstrapped","LegacyTorProcessAuthenticationFailed","LegacyTorProcessCreationFailed","LegacyTorProcessTooOld","NoSocksListenersFound","NotImplemented","OnionClientAuthAddFailed","OnionClientAuthRemoveFailed","PluggableTransportBinaryNameNotUtf8Representnable","PluggableTransportConfigDirectoryCreationFailed","PluggableTransportConfigError","PluggableTransportDirectoryNameCollision","PluggableTransportSymlinkCreationFailed","PluggableTransportSymlinkRemovalFailed","SetConfDisableNetwork0Failed","SetConfFailed","SetEventsFailed","Socks5ConnectionFailed","SystemTor","TcpListenerBindFailed","TcpListenerLocalAddrFailed","WaitAsyncEventsFailed","__clone_box","add_client_auth","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","bootstrap","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","clone_to_uninit","connect","fmt","fmt","fmt","from","from","from","generate_token","into","into","into","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","listener","new","release_token","remove_client_auth","report","source","to_owned","to_string","try_from","try_from","try_from","try_into","try_into","try_into","try_into_slug","try_octets_into","try_octets_into","try_octets_into","type_id","type_id","type_id","update","version","vzip","vzip","vzip","allowed_ports","bridge_lines","data_directory","pluggable_transports","proxy_settings","tor_bin_path","tor_control_addr","tor_control_passwd","tor_socks_addr","Error","LegacyTorVersion","ParseError","__clone_box","as_any","as_any","as_any_mut","as_any_mut","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","clone_to_uninit","eq","fmt","fmt","from","from","from_str","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","new","partial_cmp","report","to_owned","to_string","to_string","try_from","try_from","try_into","try_into","try_into_slug","try_into_slug","try_octets_into","try_octets_into","type_id","type_id","vzip","vzip","ClientAlreadyBootstrapped","ClientNotBootstrapped","ConnectFailed","Error","MockTorClient","NotImplemented","OnionServiceAuthInvalid","OnionServiceNotFound","OnionServiceNotPublished","OnionServiceRequiresOnionAuth","TcpListenerBindFailed","TcpListenerLocalAddrFailed","add_client_auth","as_any","as_any","as_any_mut","as_any_mut","bootstrap","borrow","borrow","borrow_mut","borrow_mut","connect","default","drop","fmt","fmt","from","from","generate_token","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","listener","new","release_token","remove_client_auth","report","source","to_string","try_from","try_from","try_into","try_into","try_into_slug","try_octets_into","try_octets_into","type_id","type_id","update","vzip","vzip","Generic","Https","HttpsProxyConfig","ProxyConfig","ProxyConfigError","Socks4","Socks4ProxyConfig","Socks5","Socks5ProxyConfig","__clone_box","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","new","new","new","report","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into_slug","try_octets_into","try_octets_into","try_octets_into","try_octets_into","try_octets_into","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","ConversionError","ED25519_PRIVATE_KEYBLOB_BASE64_LENGTH","ED25519_PRIVATE_KEY_KEYBLOB_HEADER_LENGTH","ED25519_PRIVATE_KEY_KEYBLOB_LENGTH","ED25519_PRIVATE_KEY_KEYBLOB_SIZE","ED25519_PRIVATE_KEY_SIZE","ED25519_PUBLIC_KEY_SIZE","ED25519_SIGNATURE_SIZE","Ed25519PrivateKey","Ed25519PublicKey","Ed25519Signature","Error","KeyInvalid","One","ParseError","SignBit","V3OnionServiceId","V3_ONION_SERVICE_ID_STRING_LENGTH","V3_ONION_SERVICE_ID_STRING_SIZE","X25519PrivateKey","X25519PublicKey","X25519_PRIVATE_KEY_BASE64_LENGTH","X25519_PRIVATE_KEY_BASE64_SIZE","X25519_PRIVATE_KEY_SIZE","X25519_PUBLIC_KEY_BASE32_LENGTH","X25519_PUBLIC_KEY_BASE32_SIZE","X25519_PUBLIC_KEY_SIZE","Zero","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_bytes","as_bytes","as_bytes","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","cmp","compare","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from_base32","from_base64","from_key_blob","from_private_key","from_private_key","from_private_key","from_private_x25519","from_public_key","from_raw","from_raw","from_raw","from_raw","from_raw","from_service_id","from_string","generate","generate","hash","hash","into","into","into","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","is_valid","partial_cmp","report","sign_message","sign_message","to_base32","to_base64","to_bytes","to_bytes","to_bytes","to_key_blob","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into_slug","try_into_slug","try_octets_into","try_octets_into","try_octets_into","try_octets_into","try_octets_into","try_octets_into","try_octets_into","try_octets_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","verify","verify_x25519","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","BootstrapComplete","BootstrapStatus","CircuitToken","Domain","DomainAddr","Error","Generic","LogReceived","OnionAddr","OnionAddrV3","OnionListener","OnionService","OnionServicePublished","OnionStream","ParseFailure","Socket","TargetAddr","TorEvent","TorProvider","V3","__clone_box","__clone_box","__clone_box","__clone_box","accept","add_client_auth","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","bootstrap","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","cmp","cmp","cmp","compare","compare","compare","connect","deref","deref_mut","domain","drop","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","flush","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from_str","from_str","from_str","generate_token","hash","hash","hash","into","into","into","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","listener","local_addr","new","partial_cmp","partial_cmp","partial_cmp","peer_addr","port","read","release_token","remove_client_auth","report","service_id","set_nonblocking","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","try_clone","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into_slug","try_into_slug","try_into_slug","try_into_slug","try_into_slug","try_octets_into","try_octets_into","try_octets_into","try_octets_into","try_octets_into","try_octets_into","try_octets_into","try_octets_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update","virt_port","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","write","write","line","progress","service_id","summary","tag"],"q":[[0,"tor_interface"],[8,"tor_interface::arti_client_tor_client"],[65,"tor_interface::censorship_circumvention"],[169,"tor_interface::legacy_tor_client"],[268,"tor_interface::legacy_tor_client::LegacyTorClientConfig"],[277,"tor_interface::legacy_tor_version"],[324,"tor_interface::mock_tor_client"],[381,"tor_interface::proxy"],[495,"tor_interface::tor_crypto"],[734,"tor_interface::tor_provider"],[964,"tor_interface::tor_provider::TorEvent"],[969,"core::result"],[970,"core::any"],[971,"core::option"],[972,"core::fmt"],[973,"alloc::boxed"],[974,"alloc::sync"],[975,"alloc::rc"],[976,"tokio::runtime::runtime"],[977,"std::path"],[978,"tor_error::report"],[979,"core::error"],[980,"alloc::string"],[981,"tor_persist::slug"],[982,"alloc::vec"],[983,"dyn_clone::sealed"],[984,"core::net::socket_addr"],[985,"core::cmp"],[986,"core::hash"],[987,"std::io::error"],[988,"der::error"]],"i":[0,0,0,0,0,0,0,0,14,14,14,14,0,0,14,14,14,14,14,14,14,14,2,2,14,2,14,2,2,14,2,14,2,14,14,2,14,2,2,14,2,14,2,14,2,14,2,2,2,2,14,14,14,2,14,2,14,14,2,14,2,14,2,2,14,41,41,41,40,0,0,41,41,41,0,0,41,40,41,37,38,37,38,37,40,38,41,37,40,38,41,38,37,40,38,41,37,40,38,41,37,38,37,38,37,38,38,37,40,40,38,41,41,37,40,38,41,38,37,40,38,41,37,40,38,41,37,40,38,41,37,40,38,41,38,37,38,37,37,40,41,37,38,40,41,38,37,37,40,38,41,37,40,38,41,40,41,37,40,38,41,37,40,38,41,37,40,38,41,47,47,47,46,47,47,0,47,47,47,0,0,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,46,47,47,47,46,45,45,47,46,45,47,46,45,45,47,46,45,47,46,46,46,46,45,47,47,46,45,47,46,45,45,47,46,45,47,46,45,47,46,45,47,46,45,45,45,45,47,47,46,47,45,47,46,45,47,46,47,45,47,46,45,47,46,45,45,45,47,46,74,74,74,74,74,74,75,75,75,0,0,50,48,50,48,50,48,50,48,50,48,48,48,48,48,50,50,50,48,48,50,48,50,48,50,48,50,48,48,48,50,48,50,48,50,48,50,48,50,48,50,48,50,48,50,48,54,54,54,0,0,54,54,54,54,54,54,54,53,53,54,53,54,53,53,54,53,54,53,53,53,54,54,53,54,53,53,54,53,54,53,54,53,54,53,53,53,53,54,54,54,53,54,53,54,54,53,54,53,54,53,53,54,59,58,0,0,0,58,0,58,0,55,56,57,58,59,55,56,57,58,59,55,56,57,58,59,55,56,57,58,59,55,56,57,58,55,56,57,58,55,56,57,58,55,56,57,58,59,59,55,56,57,58,59,55,56,57,58,58,58,58,59,55,56,57,58,59,55,56,57,58,59,55,56,57,58,59,55,56,57,58,55,56,57,59,55,56,57,58,59,59,55,56,57,58,59,55,56,57,58,59,59,55,56,57,58,59,55,56,57,58,59,55,56,57,58,65,0,0,0,0,0,0,0,0,0,0,0,65,64,65,0,0,0,0,0,0,0,0,0,0,0,0,64,20,60,63,5,22,4,64,20,65,60,63,5,22,4,64,20,65,60,63,5,22,4,64,60,22,4,20,65,60,63,5,22,4,64,20,65,60,63,5,22,4,64,20,60,63,5,22,4,64,20,60,63,5,22,4,64,20,60,63,5,22,4,64,64,4,4,20,60,63,5,22,4,22,22,22,4,4,4,20,65,65,60,63,5,22,4,4,20,65,60,63,5,22,4,64,64,22,5,20,60,22,4,20,4,20,60,63,5,22,60,4,20,5,22,4,20,65,60,63,5,22,4,64,20,65,60,63,5,22,4,64,20,65,60,63,5,22,4,64,20,65,60,63,5,22,4,64,4,4,65,20,5,22,5,20,63,5,20,20,60,63,5,22,4,64,65,4,20,65,60,63,5,22,4,64,20,65,60,63,5,22,4,64,65,4,20,65,60,63,5,22,4,64,20,65,60,63,5,22,4,64,63,63,20,65,60,63,5,22,4,64,34,34,0,10,0,0,7,34,0,0,0,10,34,0,7,10,0,0,0,70,69,70,71,10,24,68,13,24,7,69,70,71,10,34,13,24,7,69,70,71,10,34,68,13,24,7,69,70,71,10,34,13,24,7,69,70,71,10,34,69,70,71,10,69,70,71,10,69,70,71,10,69,70,71,69,70,71,68,13,13,71,24,69,70,71,69,69,69,70,70,70,71,71,71,13,7,7,69,69,70,70,71,71,10,10,34,13,24,7,7,7,7,69,70,71,10,10,34,70,71,10,68,69,70,71,13,24,7,69,70,71,10,34,13,24,7,69,70,71,10,34,13,7,69,70,71,10,34,13,24,7,69,70,71,10,34,68,13,69,69,70,71,13,71,13,68,68,7,69,24,69,70,71,10,7,69,70,71,10,13,13,24,7,69,70,71,71,10,34,13,24,7,69,70,71,10,34,7,69,70,71,10,13,24,7,69,70,71,10,34,13,24,7,69,70,71,10,34,68,69,13,24,7,69,70,71,10,34,13,13,76,77,78,77,77],"f":"``````````````````````{{{f{bd}}{f{h}}{f{j}}}{{A`{ln}}}}{{{f{c}}}{{f{Ab}}}{}}0{{{f{bc}}}{{f{bAb}}}{}}0{{{f{bd}}}{{A`{ln}}}}{{{f{c}}}{{f{e}}}{}{}}0{{{f{bc}}}{{f{be}}}{}{}}0{{{f{bd}}Ad{Ah{Af}}}{{A`{Ajn}}}}{{{f{Al}}{f{bAn}}}B`}0{cc{}}0{{{f{bd}}}Af}{ce{}{}}0{{{Bb{c}}}{{Bb{Ab}}}{}}0{{{Bd{c}}}{{Bd{Ab}}}{}}0{{{Bf{c}}}{{Bf{Ab}}}{}}0{{{f{bd}}{f{Bh}}Bj{Ah{{f{{Bn{Bl}}}}}}}{{A`{C`n}}}}{{{Bd{Cb}}{f{Cd}}}{{A`{dAl}}}}{{{f{bd}}Af}l}{{{f{bd}}{f{h}}}{{A`{ln}}}}{{{f{c}}}{{Ch{Cf}}}{}}{{{f{Al}}}{{Ah{{f{Cj}}}}}}{{{f{c}}}Cl{}}{c{{A`{e}}}{}{}}000{{{f{c}}}{{A`{CnD`}}}{}}11{{{f{c}}}Db{}}0{{{f{bd}}}{{A`{{Df{Dd}}n}}}}>>``````````````{{{f{c}}Dh}l{}}0{{{f{bDj}}Cl}l}{{{f{Dl}}}{{f{Dn}}}}{{{f{c}}}{{f{Ab}}}{}}000{{{f{bc}}}{{f{bAb}}}{}}000{{{f{Dl}}}Cl}{{{f{c}}}{{f{e}}}{}{}}000{{{f{bc}}}{{f{be}}}{}{}}000{{{f{Dj}}}Dj}{{{f{Dl}}}Dl}{{{f{c}}{f{be}}}l{}{}}0{{{f{c}}}l{}}0{{{f{Dl}}}{{f{Cl}}}}{{{f{Dj}}{f{bAn}}}B`}{{{f{E`}}{f{bAn}}}B`}0{{{f{Dl}}{f{bAn}}}B`}{{{f{Eb}}{f{bAn}}}B`}0{cc{}}000{{{f{Ed}}}{{A`{Dlc}}}{}}{ce{}{}}000{{{Bb{c}}}{{Bb{Ab}}}{}}000{{{Bd{c}}}{{Bd{Ab}}}{}}000{{{Bf{c}}}{{Bf{Ab}}}{}}000{{{f{Dl}}}{{f{{Df{{Ef{ClCl}}}}}}}}{{{Df{Cl}}Eh}{{A`{DjE`}}}}{{ClDnCl{Df{{Ef{ClCl}}}}}{{A`{DlEb}}}}{{{f{Dj}}}{{f{{Df{Cl}}}}}}{{{f{Dj}}}{{f{Eh}}}}{{{f{c}}}{{Ch{Cf}}}{}}0{{{f{c}}}e{}{}}0{{{f{c}}}Cl{}}0{{{f{Dl}}}{{f{Cl}}}}5{c{{A`{e}}}{}{}}0000000{{{f{c}}}{{A`{CnD`}}}{}}01111{{{f{c}}}Db{}}000????```````````````````````````````````{{{f{c}}Dh}l{}}{{{f{bEj}}{f{h}}{f{j}}}{{A`{ln}}}}{{{f{c}}}{{f{Ab}}}{}}00{{{f{bc}}}{{f{bAb}}}{}}00{{{f{bEj}}}{{A`{ln}}}}{{{f{c}}}{{f{e}}}{}{}}00{{{f{bc}}}{{f{be}}}{}{}}00{{{f{El}}}El}{{{f{c}}{f{be}}}l{}{}}{{{f{c}}}l{}}{{{f{bEj}}Ad{Ah{Af}}}{{A`{Ajn}}}}{{{f{En}}{f{bAn}}}B`}0{{{f{El}}{f{bAn}}}B`}{cc{}}00{{{f{bEj}}}Af}{ce{}{}}00{{{Bb{c}}}{{Bb{Ab}}}{}}00{{{Bd{c}}}{{Bd{Ab}}}{}}00{{{Bf{c}}}{{Bf{Ab}}}{}}00{{{f{bEj}}{f{Bh}}Bj{Ah{{f{{Bn{Bl}}}}}}}{{A`{C`n}}}}{El{{A`{EjEn}}}}{{{f{bEj}}Af}l}{{{f{bEj}}{f{h}}}{{A`{ln}}}}{{{f{c}}}{{Ch{Cf}}}{}}{{{f{En}}}{{Ah{{f{Cj}}}}}}{{{f{c}}}e{}{}}{{{f{c}}}Cl{}}{c{{A`{e}}}{}{}}00000{{{f{c}}}{{A`{CnD`}}}{}}111{{{f{c}}}Db{}}00{{{f{bEj}}}{{A`{{Df{Dd}}n}}}}{{{f{bEj}}}F`}{ce{}{}}00````````````{{{f{c}}Dh}l{}}{{{f{c}}}{{f{Ab}}}{}}0{{{f{bc}}}{{f{bAb}}}{}}0{{{f{c}}}{{f{e}}}{}{}}0{{{f{bc}}}{{f{be}}}{}{}}0{{{f{F`}}}F`}{{{f{c}}{f{be}}}l{}{}}{{{f{c}}}l{}}{{{f{F`}}{f{F`}}}Fb}{{{f{Fd}}{f{bAn}}}B`}0{cc{}}0{{{f{Ed}}}{{A`{F`c}}}{}}<<{{{Bb{c}}}{{Bb{Ab}}}{}}0{{{Bd{c}}}{{Bd{Ab}}}{}}0{{{Bf{c}}}{{Bf{Ab}}}{}}0{{FfFfFf{Ah{Ff}}{Ah{{f{Ed}}}}}{{A`{F`Fd}}}}{{{f{F`}}{f{F`}}}{{Ah{Fh}}}}{{{f{c}}}{{Ch{Cf}}}{}}{{{f{c}}}e{}{}}{{{f{c}}}Cl{}}{{{f{F`}}}Cl}{c{{A`{e}}}{}{}}000{{{f{c}}}{{A`{CnD`}}}{}}011{{{f{c}}}Db{}}0{ce{}{}}0````````````{{{f{bFj}}{f{h}}{f{j}}}{{A`{ln}}}}{{{f{c}}}{{f{Ab}}}{}}0{{{f{bc}}}{{f{bAb}}}{}}0{{{f{bFj}}}{{A`{ln}}}}{{{f{c}}}{{f{e}}}{}{}}0{{{f{bc}}}{{f{be}}}{}{}}0{{{f{bFj}}Ad{Ah{Af}}}{{A`{Ajn}}}}{{}Fj}{{{f{bFj}}}l}{{{f{Fl}}{f{bAn}}}B`}0{cc{}}0{{{f{bFj}}}Af}<<{{{Bb{c}}}{{Bb{Ab}}}{}}0{{{Bd{c}}}{{Bd{Ab}}}{}}0{{{Bf{c}}}{{Bf{Ab}}}{}}0{{{f{bFj}}{f{Bh}}Bj{Ah{{f{{Bn{Bl}}}}}}}{{A`{C`n}}}}8{{{f{bFj}}Af}l}{{{f{bFj}}{f{h}}}{{A`{ln}}}}{{{f{c}}}{{Ch{Cf}}}{}}{{{f{Fl}}}{{Ah{{f{Cj}}}}}}{{{f{c}}}Cl{}}{c{{A`{e}}}{}{}}000{{{f{c}}}{{A`{CnD`}}}{}}11{{{f{c}}}Db{}}0{{{f{bFj}}}{{A`{{Df{Dd}}n}}}}{ce{}{}}0`````````{{{f{c}}Dh}l{}}000{{{f{c}}}{{f{Ab}}}{}}0000{{{f{bc}}}{{f{bAb}}}{}}0000{{{f{c}}}{{f{e}}}{}{}}0000{{{f{bc}}}{{f{be}}}{}{}}0000{{{f{Fn}}}Fn}{{{f{G`}}}G`}{{{f{Gb}}}Gb}{{{f{Gd}}}Gd}{{{f{c}}{f{be}}}l{}{}}000{{{f{c}}}l{}}000{{{f{Gf}}{f{bAn}}}B`}0{{{f{Fn}}{f{bAn}}}B`}{{{f{G`}}{f{bAn}}}B`}{{{f{Gb}}{f{bAn}}}B`}{{{f{Gd}}{f{bAn}}}B`}{cc{}}000{GbGd}{FnGd}{G`Gd}3{ce{}{}}0000{{{Bb{c}}}{{Bb{Ab}}}{}}0000{{{Bd{c}}}{{Bd{Ab}}}{}}0000{{{Bf{c}}}{{Bf{Ab}}}{}}0000{Ad{{A`{FnGf}}}}{{Ad{Ah{Cl}}{Ah{Cl}}}{{A`{G`Gf}}}}{{Ad{Ah{Cl}}{Ah{Cl}}}{{A`{GbGf}}}}{{{f{c}}}{{Ch{Cf}}}{}}{{{f{c}}}e{}{}}000{{{f{c}}}Cl{}}{c{{A`{e}}}{}{}}000000000{{{f{c}}}{{A`{CnD`}}}{}}11111{{{f{c}}}Db{}}0000<<<<<````````````````````````````{{{f{c}}Dh}l{}}000000{{{f{c}}}{{f{Ab}}}{}}0000000{{{f{bc}}}{{f{bAb}}}{}}0000000{{{f{Gh}}}{{f{{Gl{Gj}}}}}}{{{f{Bl}}}{{f{{Gl{Gj}}}}}}{{{f{h}}}{{f{{Gl{Gj}}}}}}{{{f{c}}}{{f{e}}}{}{}}0000000{{{f{bc}}}{{f{be}}}{}{}}0000000{{{f{Bh}}}Bh}{{{f{Gh}}}Gh}{{{f{Gn}}}Gn}{{{f{j}}}j}{{{f{Bl}}}Bl}{{{f{h}}}h}{{{f{H`}}}H`}{{{f{c}}{f{be}}}l{}{}}000000{{{f{c}}}l{}}0000000{{{f{h}}{f{h}}}Fh}{{{f{c}}{f{e}}}Fh{}{}}{{{f{Bh}}{f{Bh}}}Fb}{{{f{Gh}}{f{Gh}}}Fb}{{{f{Gn}}{f{Gn}}}Fb}{{{f{j}}{f{j}}}Fb}{{{f{Bl}}{f{Bl}}}Fb}{{{f{h}}{f{h}}}Fb}{{{f{c}}{f{e}}}Fb{}{}}00000{{{f{Bh}}{f{bAn}}}B`}{{{f{Hb}}{f{bAn}}}B`}0{{{f{Gh}}{f{bAn}}}B`}{{{f{Gn}}{f{bAn}}}B`}{{{f{j}}{f{bAn}}}B`}{{{f{Bl}}{f{bAn}}}B`}{{{f{h}}{f{bAn}}}B`}0{cc{}}0000000{FbH`}{{{f{Ed}}}{{A`{BlHb}}}}{{{f{Ed}}}{{A`{jHb}}}}{{{f{Ed}}}{{A`{BhHb}}}}{{{f{Bh}}}Gh}{{{f{j}}}Bl}{{{f{Bh}}}h}{{{f{j}}}{{A`{{Ef{BhH`}}Hb}}}}{{{f{Gh}}}h}{{{f{{Gl{Gj}}}}}{{A`{BhHb}}}}{{{f{{Gl{Gj}}}}}{{A`{GhHb}}}}{{{f{{Gl{Gj}}}}}{{A`{GnHb}}}}{{{f{{Gl{Gj}}}}}{{A`{jHb}}}}{{{f{{Gl{Gj}}}}}Bl}{{{f{h}}}{{A`{GhHb}}}}{{{f{Ed}}}{{A`{hHb}}}}{{}Bh}{{}j}{{{f{Bl}}{f{bc}}}lHd}{{{f{h}}{f{bc}}}lHd}{ce{}{}}0000000{{{Bb{c}}}{{Bb{Ab}}}{}}0000000{{{Bd{c}}}{{Bd{Ab}}}{}}0000000{{{Bf{c}}}{{Bf{Ab}}}{}}0000000{{{f{Ed}}}Fb}{{{f{h}}{f{h}}}{{Ah{Fh}}}}{{{f{c}}}{{Ch{Cf}}}{}}{{{f{Bh}}{f{{Bn{Gj}}}}}Gn}{{{f{j}}{f{{Bn{Gj}}}}}{{A`{{Ef{GnH`}}Hb}}}}{{{f{Bl}}}Cl}{{{f{j}}}Cl}{{{f{Bh}}}{{Gl{Gj}}}}{{{f{Gn}}}{{Gl{Gj}}}}{{{f{j}}}{{Gl{Gj}}}}{{{f{Bh}}}Cl}{{{f{c}}}e{}{}}000000{{{f{c}}}Cl{}}0{c{{A`{e}}}{}{}}000000000000000{{{f{c}}}{{A`{CnD`}}}{}}011111111{{{f{c}}}Db{}}0000000{{{f{Gn}}{f{{Bn{Gj}}}}{f{Gh}}}Fb}{{{f{Gn}}{f{{Bn{Gj}}}}{f{Bl}}H`}Fb}{ce{}{}}0000000````````````````````{{{f{c}}Dh}l{}}000{{{f{C`}}}{{A`{{Ah{Aj}}Hf}}}}{{{f{bHh}}{f{h}}{f{j}}}{{A`{ln}}}}{{{f{c}}}{{f{Ab}}}{}}0000000{{{f{bc}}}{{f{bAb}}}{}}0000000{{{f{bHh}}}{{A`{ln}}}}{{{f{c}}}{{f{e}}}{}{}}0000000{{{f{bc}}}{{f{be}}}{}{}}0000000{{{f{Hj}}}Hj}{{{f{Hl}}}Hl}{{{f{Hn}}}Hn}{{{f{Ad}}}Ad}{{{f{c}}{f{be}}}l{}{}}000{{{f{c}}}l{}}000{{{f{Hj}}{f{Hj}}}Fh}{{{f{Hl}}{f{Hl}}}Fh}{{{f{Hn}}{f{Hn}}}Fh}{{{f{c}}{f{e}}}Fh{}{}}00{{{f{bHh}}Ad{Ah{Af}}}{{A`{Ajn}}}}{{{f{Aj}}}{{f{c}}}{}}{{{f{bAj}}}{{f{bc}}}{}}{{{f{Hn}}}{{f{Ed}}}}{{{f{bC`}}}l}{{{f{Hj}}{f{Hj}}}Fb}{{{f{Hl}}{f{Hl}}}Fb}{{{f{Hn}}{f{Hn}}}Fb}{{{f{c}}{f{e}}}Fb{}{}}00000000{{{f{bAj}}}{{A`{lHf}}}}{{{f{n}}{f{bAn}}}B`}0{{{f{Hj}}{f{bAn}}}B`}0{{{f{Hl}}{f{bAn}}}B`}0{{{f{Hn}}{f{bAn}}}B`}0{{{f{Ad}}{f{bAn}}}B`}0{{{f{Dd}}{f{bAn}}}B`}{cc{}}0{Enn}{Aln}2{Fln}333{{{Ef{hBj}}}Ad}44{{{f{Ed}}}{{A`{Hlc}}}{}}{{{f{Ed}}}{{A`{Hnc}}}{}}{{{f{Ed}}}{{A`{Adc}}}{}}{{{f{bHh}}}Af}{{{f{Hj}}{f{bc}}}lHd}{{{f{Hl}}{f{bc}}}lHd}{{{f{Hn}}{f{bc}}}lHd}{ce{}{}}0000000{{{Bb{c}}}{{Bb{Ab}}}{}}0000000{{{Bd{c}}}{{Bd{Ab}}}{}}000000{{{Bf{c}}}{{Bf{Ab}}}{}}0000000{{{f{bHh}}{f{Bh}}Bj{Ah{{f{{Bn{Bl}}}}}}}{{A`{C`n}}}}{{{f{Aj}}}{{Ah{Hl}}}}{{hBj}Hj}{{{f{Hj}}{f{Hj}}}{{Ah{Fh}}}}{{{f{Hl}}{f{Hl}}}{{Ah{Fh}}}}{{{f{Hn}}{f{Hn}}}{{Ah{Fh}}}}{{{f{Aj}}}{{Ah{Ad}}}}{{{f{Hn}}}Bj}{{{f{bAj}}{f{b{Bn{Gj}}}}}{{A`{I`Hf}}}}{{{f{bHh}}Af}l}{{{f{bHh}}{f{h}}}{{A`{ln}}}}{{{f{c}}}{{Ch{Cf}}}{}}{{{f{Hj}}}{{f{h}}}}{{{f{C`}}Fb}{{A`{lHf}}}}{{{f{c}}}e{}{}}000{{{f{c}}}Cl{}}0000{{{f{Aj}}}{{A`{AjHf}}}}{c{{A`{e}}}{}{}}0000{{{Ef{ClBj}}}{{A`{Hnc}}}{}}11111111111{{{f{c}}}{{A`{CnD`}}}{}}000022222222{{{f{c}}}Db{}}0000000{{{f{bHh}}}{{A`{{Df{Dd}}n}}}}{{{f{Hj}}}Bj}{ce{}{}}0000000{{{f{bAj}}{f{{Bn{Gj}}}}}{{A`{I`Hf}}}}{{{f{bc}}{f{{Bn{Gj}}}}}{{A`{lIb}}}{}}`````","D":"ALd","p":[[0,"mut"],[5,"ArtiClientTorClient",8],[1,"reference"],[5,"V3OnionServiceId",495],[5,"X25519PrivateKey",495],[1,"unit"],[6,"Error",734],[6,"Result",969],[10,"Any",970],[6,"TargetAddr",734],[8,"CircuitToken",734],[6,"Option",971],[5,"OnionStream",734],[6,"Error",8],[5,"Formatter",972],[8,"Result",972],[5,"Box",973],[5,"Arc",974],[5,"Rc",975],[5,"Ed25519PrivateKey",495],[1,"u16"],[5,"X25519PublicKey",495],[1,"slice"],[5,"OnionListener",734],[5,"Runtime",976],[5,"Path",977],[5,"ReportHelper",978],[5,"Report",978],[10,"Error",979],[5,"String",980],[5,"Slug",981],[6,"BadSlug",981],[5,"TypeId",970],[6,"TorEvent",734],[5,"Vec",982],[5,"Private",983],[5,"PluggableTransportConfig",65],[5,"BridgeLine",65],[6,"SocketAddr",984],[6,"PluggableTransportConfigError",65],[6,"BridgeLineError",65],[1,"str"],[1,"tuple"],[5,"PathBuf",977],[5,"LegacyTorClient",169],[6,"LegacyTorClientConfig",169],[6,"Error",169],[5,"LegacyTorVersion",277],[1,"bool"],[6,"Error",277],[1,"u32"],[6,"Ordering",985],[5,"MockTorClient",324],[6,"Error",324],[5,"Socks4ProxyConfig",381],[5,"Socks5ProxyConfig",381],[5,"HttpsProxyConfig",381],[6,"ProxyConfig",381],[6,"ProxyConfigError",381],[5,"Ed25519PublicKey",495],[1,"u8"],[1,"array"],[5,"Ed25519Signature",495],[6,"SignBit",495],[6,"Error",495],[10,"Hasher",986],[5,"Error",987],[10,"TorProvider",734],[5,"OnionAddrV3",734],[6,"OnionAddr",734],[5,"DomainAddr",734],[1,"usize"],[5,"Error",988],[15,"BundledTor",268],[15,"SystemTor",268],[15,"LogReceived",964],[15,"BootstrapStatus",964],[15,"OnionServicePublished",964]],"r":[],"b":[[33,"impl-Display-for-Error"],[34,"impl-Debug-for-Error"],[108,"impl-Debug-for-PluggableTransportConfigError"],[109,"impl-Display-for-PluggableTransportConfigError"],[111,"impl-Debug-for-BridgeLineError"],[112,"impl-Display-for-BridgeLineError"],[223,"impl-Debug-for-Error"],[224,"impl-Display-for-Error"],[293,"impl-Debug-for-Error"],[294,"impl-Display-for-Error"],[349,"impl-Debug-for-Error"],[350,"impl-Display-for-Error"],[426,"impl-Debug-for-ProxyConfigError"],[427,"impl-Display-for-ProxyConfigError"],[436,"impl-From%3CHttpsProxyConfig%3E-for-ProxyConfig"],[437,"impl-From%3CSocks4ProxyConfig%3E-for-ProxyConfig"],[438,"impl-From%3CSocks5ProxyConfig%3E-for-ProxyConfig"],[602,"impl-Debug-for-Error"],[603,"impl-Display-for-Error"],[608,"impl-Display-for-V3OnionServiceId"],[609,"impl-Debug-for-V3OnionServiceId"],[829,"impl-Debug-for-Error"],[830,"impl-Display-for-Error"],[831,"impl-Display-for-OnionAddrV3"],[832,"impl-Debug-for-OnionAddrV3"],[833,"impl-Debug-for-OnionAddr"],[834,"impl-Display-for-OnionAddr"],[835,"impl-Display-for-DomainAddr"],[836,"impl-Debug-for-DomainAddr"],[837,"impl-Display-for-TargetAddr"],[838,"impl-Debug-for-TargetAddr"],[842,"impl-From%3CError%3E-for-Error"],[843,"impl-From%3CError%3E-for-Error"],[845,"impl-From%3CError%3E-for-Error"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAOcCOQAJAAMADwAUACYAAAApAAYAMQAQAFAAAQBUAAcAXQANAGwABQB2AAAAewALAIwABQCUABsAsQACALUALQDmAAAA6gAJAPUAEwAKAQsAGAEPACoBAAAtAQUANAETAEoBFQBiAQAAZQEGAG0BEACHASkAtQECAL4BDgDQAR8A/QEAAAsCFwAmAjwAawIAAH0CAQCHAhcAoAIBAKoCKgDXAgcA8gIEAPkCDwAKAyEALQMBADADGABLAwEATgMAAFIDAABVAwIAWQMCAGQDFgB+AwIAgwMAAIYDAACJAwgAkwMlALsDCQA="}]\
-]'));
+var searchIndex = new Map(JSON.parse('[["gosling",{"t":"CFGPPPPPPPPPPGIPPPPPPPPPPPPPPPPPPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO","n":["context","Context","ContextEvent","EndpointClientError","EndpointClientHandshakeCompleted","EndpointClientHandshakeFailed","EndpointServerChannelRequestReceived","EndpointServerError","EndpointServerHandshakeCompleted","EndpointServerHandshakeFailed","EndpointServerHandshakeRejected","EndpointServerHandshakeStarted","EndpointServerPublished","Error","HandshakeHandle","HandshakeHandleNotFound","HonkRpc","IdentityClientChallengeReceived","IdentityClientError","IdentityClientHandshakeCompleted","IdentityClientHandshakeFailed","IdentityServerChallengeResponseReceived","IdentityServerEndpointRequestReceived","IdentityServerError","IdentityServerHandshakeCompleted","IdentityServerHandshakeFailed","IdentityServerHandshakeRejected","IdentityServerHandshakeStarted","IdentityServerPublished","IncorrectUsage","InvalidArgument","Io","TorBootstrapCompleted","TorBootstrapStatusReceived","TorCrypto","TorLogReceived","TorNotConnected","TorProvider","as_any","","","as_any_mut","","","bootstrap","borrow","","","borrow_mut","","","connect","endpoint_client_abort_handshake","endpoint_client_begin_handshake","endpoint_server_handle_channel_request_received","endpoint_server_start","endpoint_server_stop","fmt","","","from","","","","","","","generate_circuit_token","identity_client_abort_handshake","identity_client_begin_handshake","identity_client_handle_challenge_received","identity_server_handle_challenge_response_received","identity_server_handle_endpoint_request_received","identity_server_start","identity_server_stop","into","","","into_any","","","into_any_arc","","into_any_rc","","","new","release_circuit_token","report","source","to_string","try_from","","","try_into","","","try_into_slug","try_octets_into","","","type_id","","","update","vzip","","","challenge_response","challenge_response_valid","channel_name","","client_allowed","","client_auth_private_key","client_auth_public_key","client_auth_signature_valid","client_proof_signature_valid","","client_requested_channel_valid","client_requested_endpoint_valid","client_service_id","","","","endpoint_challenge","endpoint_name","","","endpoint_private_key","endpoint_service_id","","","","handle","","","","","","","","","","","","","","","","identity_service_id","line","progress","reason","","","","requested_channel","requested_endpoint","stream","","summary","tag"],"q":[[0,"gosling"],[1,"gosling::context"],[108,"gosling::context::ContextEvent"],[163,"core::any"],[164,"core::result"],[165,"tor_interface::tor_provider"],[166,"core::option"],[167,"tor_interface::tor_crypto"],[168,"alloc::string"],[169,"core::fmt"],[170,"honk_rpc::honk_rpc"],[171,"std::io::error"],[172,"bson::document"],[173,"alloc::boxed"],[174,"alloc::sync"],[175,"alloc::rc"],[176,"core::time"],[177,"tor_error::report"],[178,"core::error"],[179,"tor_persist::slug"],[180,"alloc::collections::vec_deque"]],"i":"```lBj00100000``11010000100000111001011h210210021021000000221022222100000000021021210210022202102120210210021EbEdEfEh2EjElEn55225F`1Fb5Fd43Ff4580715FhFj5<6;Fl;FnG`7<;Gb;GdGf7542:;EfEh22","f":"``````````````````````````````````````{b{{b{d}}}}00{{{b{f}}}{{b{fd}}}}00{{{b{fh}}}{{n{jl}}}}{b{{b{c}}}{}}00{{{b{f}}}{{b{fc}}}{}}00{{{b{fh}}A`{Ad{Ab}}}{{n{Afl}}}}{{{b{fh}}Ah}{{n{jl}}}}{{{b{fh}}AjAlAn}{{n{Ahl}}}}{{{b{fh}}AhB`}{{n{jl}}}}{{{b{fh}}BbAnAjBd}{{n{jl}}}}{{{b{fh}}Aj}{{n{jl}}}}{{{b{l}}{b{fBf}}}Bh}0{{{b{Bj}}{b{fBf}}}Bh}{cc{}}{Bll}{Bnl}2{C`l}{Cbl}4{{{b{fh}}}Ab}<{{{b{fh}}AjAn}{{n{Ahl}}}}{{{b{fh}}AhCd}{{n{jl}}}}<{{{b{fh}}AhB`B`Cd}{{n{jl}}}}{{{b{fh}}}{{n{jl}}}}0{{}c{}}00{{{Cf{c}}}{{Cf{d}}}{}}00{{{Ch{c}}}{{Ch{d}}}{}}0{{{Cj{c}}}{{Cj{d}}}{}}00{{{Cf{Cl}}CnCnD`Db{Ad{D`}}Bb}{{n{hl}}}}{{{b{fh}}Ab}j}{b{{Df{Dd}}}}{{{b{l}}}{{Ad{{b{Dh}}}}}}{bAn}{c{{n{e}}}{}{}}00{{}{{n{c}}}{}}00{b{{n{DjDl}}}}111{bDn}00{{{b{fh}}}{{n{{E`{Bj}}l}}}}===```````````````````````````````````````````````````````","D":"Nl","p":[[1,"reference"],[10,"Any",163],[0,"mut"],[5,"Context",1],[1,"unit"],[6,"Error",1],[6,"Result",164],[6,"TargetAddr",165],[8,"CircuitToken",165],[6,"Option",166],[5,"OnionStream",165],[8,"HandshakeHandle",1],[5,"V3OnionServiceId",167],[5,"X25519PrivateKey",167],[5,"String",168],[1,"bool"],[5,"Ed25519PrivateKey",167],[5,"X25519PublicKey",167],[5,"Formatter",169],[8,"Result",169],[6,"ContextEvent",1],[6,"Error",165],[6,"Error",167],[6,"Error",170],[5,"Error",171],[5,"Document",172],[5,"Box",173],[5,"Arc",174],[5,"Rc",175],[10,"TorProvider",165],[1,"u16"],[5,"Duration",176],[1,"i32"],[5,"ReportHelper",177],[5,"Report",177],[10,"Error",178],[5,"Slug",179],[6,"BadSlug",179],[5,"TypeId",163],[5,"VecDeque",180],[15,"IdentityServerChallengeResponseReceived",108],[15,"IdentityServerHandshakeRejected",108],[15,"EndpointClientHandshakeCompleted",108],[15,"EndpointServerHandshakeCompleted",108],[15,"EndpointServerHandshakeRejected",108],[15,"IdentityClientHandshakeCompleted",108],[15,"IdentityServerHandshakeCompleted",108],[15,"IdentityServerEndpointRequestReceived",108],[15,"EndpointServerChannelRequestReceived",108],[15,"IdentityClientChallengeReceived",108],[15,"EndpointServerPublished",108],[15,"IdentityClientHandshakeFailed",108],[15,"IdentityServerHandshakeStarted",108],[15,"IdentityServerHandshakeFailed",108],[15,"EndpointClientHandshakeFailed",108],[15,"EndpointServerHandshakeStarted",108],[15,"EndpointServerHandshakeFailed",108],[15,"TorLogReceived",108],[15,"TorBootstrapStatusReceived",108]],"r":[],"b":[[57,"impl-Debug-for-Error"],[58,"impl-Display-for-Error"],[61,"impl-From%3CError%3E-for-Error"],[62,"impl-From%3CError%3E-for-Error"],[64,"impl-From%3CError%3E-for-Error"],[65,"impl-From%3CError%3E-for-Error"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAC0ACAAnAAUALgAFADoAAgA+AAEAQQABAE8ABwBZAA8AagACAA=="}],["honk_rpc",{"t":"CKPPPPPSSGPGPPPPPPPPIPPPPGPPPPPPFPPPPPNNNNNNNNNNNNNNNMNNNNNNNNNHNNHHHNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNOOOOO","n":["honk_rpc","ApiSet","BsonDocumentParseFailed","BsonDocumentSizeTooLarge","BsonDocumentSizeTooSmall","BsonParseFailed","BsonWriteFailed","DEFAULT_MAX_MESSAGE_SIZE","DEFAULT_MAX_WAIT_TIME","Error","","ErrorCode","InvalidMaxMesageSize","MessageConversionFailed","MessageParseFailed","MessageReadTimedOut","MessageTooBig","MessageVersionIncompatible","Pending","ReaderReadFailed","RequestCookie","RequestCookieInvalid","RequestFunctionInvalid","RequestNamespaceInvalid","RequestVersionInvalid","Response","ResponseCookieInvalid","ResponseStateInvalid","Runtime","SectionIdUnknown","SectionParseFailed","SectionTooLarge","Session","Success","Unknown","UnknownErrorSectionReceived","WriterFlushFailed","WriterWriteFailed","borrow","","","","borrow_mut","","","","client_call","client_drain_responses","client_next_response","eq","equivalent","","","exec_function","fmt","","","","from","","","","","get_error_section_size","get_max_message_size","get_max_wait_time","get_message_overhead","get_request_section_size","get_response_section_size","into","","","","into_stream","namespace","new","next_result","set_max_message_size","set_max_wait_time","source","to_string","","try_from","","","","try_into","","","","type_id","","","","update","","vzip","","","","cookie","","","error_code","result"],"q":[[0,"honk_rpc"],[1,"honk_rpc::honk_rpc"],[100,"honk_rpc::honk_rpc::Response"],[105,"bson::document"],[106,"core::result"],[107,"std::io"],[108,"core::marker"],[109,"alloc::collections::vec_deque::drain"],[110,"core::option"],[111,"bson::bson"],[112,"core::fmt"],[113,"alloc::string"],[114,"core::time"],[115,"core::error"],[116,"core::any"]],"i":"``A`00B`1```Aj`22121102`1111`111112`012220f2310230002222Bd334421334`11```2134101011434213421342134012134ClCnD`01","f":"``````````````````````````````````````{b{{b{c}}}{}}000{{{b{d}}}{{b{dc}}}{}}000{{{b{d{f{c}}}}{b{h}}{b{h}}jl}{{Ab{nA`}}}{AdAfAh}}{{{b{d{f{c}}}}}{{Al{Aj}}}{AdAfAh}}{{{b{d{f{c}}}}}{{An{Aj}}}{AdAfAh}}{{{b{B`}}{b{B`}}}Bb}{{b{b{c}}}Bb{}}00{{{b{dBd}}{b{h}}jl{An{n}}}{{An{{Ab{{An{Bf}}B`}}}}}}{{{b{B`}}{b{dBh}}}Bj}0{{{b{A`}}{b{dBh}}}Bj}0{cc{}}00{jB`}1{{{An{n}}{An{Bl}}{An{Bf}}}{{Ab{BnA`}}}}{{{b{{f{c}}}}}Bn{AdAfAh}}{{{b{{f{c}}}}}C`{AdAfAh}}{{}{{Ab{BnA`}}}}{{{An{n}}{An{Bl}}Bl{An{j}}{An{l}}}{{Ab{BnA`}}}}{{{An{Bf}}}{{Ab{BnA`}}}}{{}c{}}000{{{f{c}}}c{AdAfAh}}{{{b{Bd}}}{{b{h}}}}{c{{f{c}}}{AdAfAh}}{{{b{dBd}}}{{An{{Cb{n{Ab{{An{Bf}}B`}}}}}}}}{{{b{d{f{c}}}}j}{{Ab{CdA`}}}{AdAfAh}}{{{b{d{f{c}}}}C`}Cd{AdAfAh}}{{{b{A`}}}{{An{{b{Cf}}}}}}{bBl}0{c{{Ab{e}}}{}{}}000{{}{{Ab{c}}}{}}000{bCh}000{{{b{dBd}}}Cd}{{{b{d{f{c}}}}{An{{b{d{Cj{{b{dBd}}}}}}}}}{{Ab{CdA`}}}{AdAfAh}}====`````","D":"Hj","p":[[1,"reference"],[0,"mut"],[5,"Session",1],[1,"str"],[1,"i32"],[5,"Document",105],[8,"RequestCookie",1],[6,"Error",1],[6,"Result",106],[10,"Read",107],[10,"Write",107],[10,"Send",108],[6,"Response",1],[5,"Drain",109],[6,"Option",110],[6,"ErrorCode",1],[1,"bool"],[10,"ApiSet",1],[6,"Bson",111],[5,"Formatter",112],[8,"Result",112],[5,"String",113],[1,"usize"],[5,"Duration",114],[1,"tuple"],[1,"unit"],[10,"Error",115],[5,"TypeId",116],[1,"slice"],[15,"Pending",100],[15,"Success",100],[15,"Error",100]],"r":[],"b":[[54,"impl-Debug-for-ErrorCode"],[55,"impl-Display-for-ErrorCode"],[56,"impl-Display-for-Error"],[57,"impl-Debug-for-Error"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAACQABwABAAAAJwAHADIAAwA3AAMAPgAAAFAADgBhAAMA"}],["tor_interface",{"t":"CCCCCCCCPPPPFGPPPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPPPFGPPPFGPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPPPPPGPPPFGPPPPPPPPPPPPPPPPPPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOGFPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPPGFPPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPFGGPFPFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPSSSSSSSFFFGPPPGFSSFFSSSSSSPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPIPFGPPGFFPPFPPGGKPNNNNNMNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNOOOOO","n":["arti_client_tor_client","censorship_circumvention","legacy_tor_client","legacy_tor_version","mock_tor_client","proxy","tor_crypto","tor_provider","ArtiClientConfigBuilderError","ArtiClientError","ArtiClientOnionServiceLaunchError","ArtiClientTorAddrError","ArtiClientTorClient","Error","NotImplemented","OnionServiceConfigBuilderError","TcpListenerAcceptFailed","TcpListenerBindFailed","TcpListenerLocalAddrFailed","TcpStreamConnectFailed","TcpStreamIntoFailed","TorKeyMgrError","add_client_auth","as_any","","as_any_mut","","bootstrap","borrow","","borrow_mut","","connect","fmt","","from","","generate_token","into","","into_any","","into_any_arc","","into_any_rc","","listener","new","release_token","remove_client_auth","report","source","to_string","try_from","","try_into","","try_into_slug","try_octets_into","","type_id","","update","vzip","","AddressMissing","AddressParseFailed","AddressPortInvalid","BinaryPathInvalid","BridgeLine","BridgeLineError","FingerprintInvalid","FingerprintMissing","KeyValueInvalid","PluggableTransportConfig","PluggableTransportConfigError","TransportMissing","TransportNameInvalid","","__clone_box","","add_option","address","as_any","","","","as_any_mut","","","","as_legacy_tor_setconf_value","borrow","","","","borrow_mut","","","","clone","","clone_into","","clone_to_uninit","","fingerprint","fmt","","","","","","from","","","","from_str","into","","","","into_any","","","","into_any_arc","","","","into_any_rc","","","","keyvalues","new","","options","path_to_binary","report","","to_owned","","to_string","","transport","transports","try_from","","","","try_into","","","","try_into_slug","","try_octets_into","","","","type_id","","","","vzip","","","","AddOnionFailed","BridgeTransportNotSupported","BridgeTransportTypeMultiplyDefined","BundledTor","CircuitTokenInvalid","DelOnionFailed","Error","GetInfoNetListenersSocksFailed","GetInfoVersionFailed","LegacyControlStreamCreationFailed","LegacyTorClient","LegacyTorClientConfig","LegacyTorControllerCreationFailed","LegacyTorNotBootstrapped","LegacyTorProcessAuthenticationFailed","LegacyTorProcessCreationFailed","LegacyTorProcessTooOld","NoSocksListenersFound","NotImplemented","OnionClientAuthAddFailed","OnionClientAuthRemoveFailed","PluggableTransportBinaryNameNotUtf8Representnable","PluggableTransportConfigDirectoryCreationFailed","PluggableTransportConfigError","PluggableTransportDirectoryNameCollision","PluggableTransportSymlinkCreationFailed","PluggableTransportSymlinkRemovalFailed","SetConfDisableNetwork0Failed","SetConfFailed","SetEventsFailed","Socks5ConnectionFailed","SystemTor","TcpListenerBindFailed","TcpListenerLocalAddrFailed","WaitAsyncEventsFailed","__clone_box","add_client_auth","as_any","","","as_any_mut","","","bootstrap","borrow","","","borrow_mut","","","clone","clone_into","clone_to_uninit","connect","fmt","","","from","","","generate_token","into","","","into_any","","","into_any_arc","","","into_any_rc","","","listener","new","release_token","remove_client_auth","report","source","to_owned","to_string","try_from","","","try_into","","","try_into_slug","try_octets_into","","","type_id","","","update","version","vzip","","","allowed_ports","bridge_lines","data_directory","pluggable_transports","proxy_settings","tor_bin_path","tor_control_addr","tor_control_passwd","tor_socks_addr","Error","LegacyTorVersion","ParseError","__clone_box","as_any","","as_any_mut","","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","eq","fmt","","from","","from_str","into","","into_any","","into_any_arc","","into_any_rc","","new","partial_cmp","report","to_owned","to_string","","try_from","","try_into","","try_into_slug","","try_octets_into","","type_id","","vzip","","ClientAlreadyBootstrapped","ClientNotBootstrapped","ConnectFailed","Error","MockTorClient","NotImplemented","OnionServiceAuthInvalid","OnionServiceNotFound","OnionServiceNotPublished","OnionServiceRequiresOnionAuth","TcpListenerBindFailed","TcpListenerLocalAddrFailed","add_client_auth","as_any","","as_any_mut","","bootstrap","borrow","","borrow_mut","","connect","default","drop","fmt","","from","","generate_token","into","","into_any","","into_any_arc","","into_any_rc","","listener","new","release_token","remove_client_auth","report","source","to_string","try_from","","try_into","","try_into_slug","try_octets_into","","type_id","","update","vzip","","Generic","Https","HttpsProxyConfig","ProxyConfig","ProxyConfigError","Socks4","Socks4ProxyConfig","Socks5","Socks5ProxyConfig","__clone_box","","","","as_any","","","","","as_any_mut","","","","","borrow","","","","","borrow_mut","","","","","clone","","","","clone_into","","","","clone_to_uninit","","","","fmt","","","","","","from","","","","","","","","into","","","","","into_any","","","","","into_any_arc","","","","","into_any_rc","","","","","new","","","report","to_owned","","","","to_string","try_from","","","","","try_into","","","","","try_into_slug","try_octets_into","","","","","type_id","","","","","vzip","","","","","ConversionError","ED25519_PRIVATE_KEYBLOB_BASE64_LENGTH","ED25519_PRIVATE_KEY_KEYBLOB_HEADER_LENGTH","ED25519_PRIVATE_KEY_KEYBLOB_LENGTH","ED25519_PRIVATE_KEY_KEYBLOB_SIZE","ED25519_PRIVATE_KEY_SIZE","ED25519_PUBLIC_KEY_SIZE","ED25519_SIGNATURE_SIZE","Ed25519PrivateKey","Ed25519PublicKey","Ed25519Signature","Error","KeyInvalid","One","ParseError","SignBit","V3OnionServiceId","V3_ONION_SERVICE_ID_STRING_LENGTH","V3_ONION_SERVICE_ID_STRING_SIZE","X25519PrivateKey","X25519PublicKey","X25519_PRIVATE_KEY_BASE64_LENGTH","X25519_PRIVATE_KEY_BASE64_SIZE","X25519_PRIVATE_KEY_SIZE","X25519_PUBLIC_KEY_BASE32_LENGTH","X25519_PUBLIC_KEY_BASE32_SIZE","X25519_PUBLIC_KEY_SIZE","Zero","__clone_box","","","","","","","as_any","","","","","","","","as_any_mut","","","","","","","","as_bytes","","","borrow","","","","","","","","borrow_mut","","","","","","","","clone","","","","","","","clone_into","","","","","","","clone_to_uninit","","","","","","","cmp","compare","eq","","","","","","equivalent","","","","","","fmt","","","","","","","","","from","","","","","","","","","from_base32","from_base64","from_key_blob","from_private_key","","","from_private_x25519","from_public_key","from_raw","","","","","from_service_id","from_string","generate","","hash","","into","","","","","","","","into_any","","","","","","","","into_any_arc","","","","","","","","into_any_rc","","","","","","","","is_valid","partial_cmp","report","sign_message","","to_base32","to_base64","to_bytes","","","to_key_blob","to_owned","","","","","","","to_string","","try_from","","","","","","","","try_into","","","","","","","","try_into_slug","","try_octets_into","","","","","","","","type_id","","","","","","","","verify","verify_x25519","vzip","","","","","","","","BootstrapComplete","BootstrapStatus","CircuitToken","Domain","DomainAddr","Error","Generic","LogReceived","OnionAddr","OnionAddrV3","OnionListener","OnionService","OnionServicePublished","OnionStream","ParseFailure","Socket","TargetAddr","TorEvent","TorProvider","V3","__clone_box","","","","accept","add_client_auth","as_any","","","","","","","","as_any_mut","","","","","","","","bootstrap","borrow","","","","","","","","borrow_mut","","","","","","","","clone","","","","clone_into","","","","clone_to_uninit","","","","cmp","","","compare","","","connect","deref","deref_mut","domain","drop","eq","","","equivalent","","","","","","","","","flush","fmt","","","","","","","","","","","from","","","","","","","","","","","","from_str","","","generate_token","hash","","","into","","","","","","","","into_any","","","","","","","","into_any_arc","","","","","","","into_any_rc","","","","","","","","listener","local_addr","new","partial_cmp","","","peer_addr","port","read","release_token","remove_client_auth","report","service_id","set_nonblocking","to_owned","","","","to_string","","","","","try_clone","try_from","","","","","","","","","try_into","","","","","","","","try_into_slug","","","","","try_octets_into","","","","","","","","type_id","","","","","","","","update","virt_port","vzip","","","","","","","","write","","line","progress","service_id","summary","tag"],"q":[[0,"tor_interface"],[8,"tor_interface::arti_client_tor_client"],[65,"tor_interface::censorship_circumvention"],[169,"tor_interface::legacy_tor_client"],[268,"tor_interface::legacy_tor_client::LegacyTorClientConfig"],[277,"tor_interface::legacy_tor_version"],[324,"tor_interface::mock_tor_client"],[381,"tor_interface::proxy"],[495,"tor_interface::tor_crypto"],[733,"tor_interface::tor_provider"],[963,"tor_interface::tor_provider::TorEvent"],[968,"core::result"],[969,"core::any"],[970,"core::option"],[971,"core::fmt"],[972,"alloc::boxed"],[973,"alloc::sync"],[974,"alloc::rc"],[975,"tokio::runtime::runtime"],[976,"std::path"],[977,"tor_error::report"],[978,"core::error"],[979,"alloc::string"],[980,"tor_persist::slug"],[981,"alloc::vec"],[982,"dyn_clone::sealed"],[983,"core::net::socket_addr"],[984,"core::cmp"],[985,"core::hash"],[986,"std::io::error"],[987,"der::error"]],"i":"````````Al000``00000000d010100101011010010101010000111010110101001Eb00E```111``101DjDl1012031203012031203101010012203312030120312031203120301011231023011203120323120312031203En00El11`111``111111111111111111101110Ej02102100210211110221021002102102102100002212021021202102100021Id00000If00``FdF`1010101000001110010101010001010101010101010Fl00``0000000Fj01010010100011010010101010000111010110101001GfGd```0`0`FnG`Gb342103421034210342103210321032103442103421033334210342103421034210321042103442103421034421034210342103Hb```````````0H`1````````````0BhGhGnjBlh657432106574321064105743210657432106543210654321065432106005432101110005774321005743210661254105054321405210574321065743210657432106574321060075212532554321067057432106574321067057432106574321063357432106Dd0`Ad``n2```12`01```HlHj1Hn4C`HhAj26453780264537810264537802645378453745374537453453100324534445553330664455337780266664537785371453026453780264537806453780264537810445303011642453764537002645337802645378645370264537802645378140264537800IhIjIl11","f":"``````````````````````{{{f{bd}}{f{h}}{f{j}}}{{A`{ln}}}}{f{{f{Ab}}}}0{{{f{b}}}{{f{bAb}}}}0{{{f{bd}}}{{A`{ln}}}}{f{{f{c}}}{}}0{{{f{b}}}{{f{bc}}}{}}0{{{f{bd}}Ad{Ah{Af}}}{{A`{Ajn}}}}{{{f{Al}}{f{bAn}}}B`}0{cc{}}0{{{f{bd}}}Af}{{}c{}}0{{{Bb{c}}}{{Bb{Ab}}}{}}0{{{Bd{c}}}{{Bd{Ab}}}{}}0{{{Bf{c}}}{{Bf{Ab}}}{}}0{{{f{bd}}{f{Bh}}Bj{Ah{{f{{Bn{Bl}}}}}}}{{A`{C`n}}}}{{{Bd{Cb}}{f{Cd}}}{{A`{dAl}}}}{{{f{bd}}Af}l}{{{f{bd}}{f{h}}}{{A`{ln}}}}{f{{Ch{Cf}}}}{{{f{Al}}}{{Ah{{f{Cj}}}}}}{fCl}{c{{A`{e}}}{}{}}0{{}{{A`{c}}}{}}0{f{{A`{CnD`}}}}11{fDb}0{{{f{bd}}}{{A`{{Df{Dd}}n}}}}??``````````````{{fDh}l}0{{{f{bDj}}Cl}l}{{{f{Dl}}}{{f{Dn}}}}{f{{f{Ab}}}}000{{{f{b}}}{{f{bAb}}}}000{{{f{Dl}}}Cl}{f{{f{c}}}{}}000{{{f{b}}}{{f{bc}}}{}}000{{{f{Dj}}}Dj}{{{f{Dl}}}Dl}{{f{f{bc}}}l{}}0{fl}0{{{f{Dl}}}{{f{Cl}}}}{{{f{Dj}}{f{bAn}}}B`}{{{f{E`}}{f{bAn}}}B`}0{{{f{Dl}}{f{bAn}}}B`}{{{f{Eb}}{f{bAn}}}B`}0{cc{}}000{{{f{Ed}}}{{A`{Dlc}}}{}}{{}c{}}000{{{Bb{c}}}{{Bb{Ab}}}{}}000{{{Bd{c}}}{{Bd{Ab}}}{}}000{{{Bf{c}}}{{Bf{Ab}}}{}}000{{{f{Dl}}}{{f{{Df{{Ef{ClCl}}}}}}}}{{{Df{Cl}}Eh}{{A`{DjE`}}}}{{ClDnCl{Df{{Ef{ClCl}}}}}{{A`{DlEb}}}}{{{f{Dj}}}{{f{{Df{Cl}}}}}}{{{f{Dj}}}{{f{Eh}}}}{f{{Ch{Cf}}}}0{fc{}}0{fCl}0{{{f{Dl}}}{{f{Cl}}}}5{c{{A`{e}}}{}{}}000{{}{{A`{c}}}{}}000{f{{A`{CnD`}}}}01111{fDb}000{{}c{}}000```````````````````````````````````{{fDh}l}{{{f{bEj}}{f{h}}{f{j}}}{{A`{ln}}}}{f{{f{Ab}}}}00{{{f{b}}}{{f{bAb}}}}00{{{f{bEj}}}{{A`{ln}}}}{f{{f{c}}}{}}00{{{f{b}}}{{f{bc}}}{}}00{{{f{El}}}El}{{f{f{bc}}}l{}}{fl}{{{f{bEj}}Ad{Ah{Af}}}{{A`{Ajn}}}}{{{f{En}}{f{bAn}}}B`}0{{{f{El}}{f{bAn}}}B`}{cc{}}00{{{f{bEj}}}Af}???{{{Bb{c}}}{{Bb{Ab}}}{}}00{{{Bd{c}}}{{Bd{Ab}}}{}}00{{{Bf{c}}}{{Bf{Ab}}}{}}00{{{f{bEj}}{f{Bh}}Bj{Ah{{f{{Bn{Bl}}}}}}}{{A`{C`n}}}}{El{{A`{EjEn}}}}{{{f{bEj}}Af}l}{{{f{bEj}}{f{h}}}{{A`{ln}}}}{f{{Ch{Cf}}}}{{{f{En}}}{{Ah{{f{Cj}}}}}}{fc{}}{fCl}{c{{A`{e}}}{}{}}00{{}{{A`{c}}}{}}00{f{{A`{CnD`}}}}111{fDb}00{{{f{bEj}}}{{A`{{Df{Dd}}n}}}}{{{f{bEj}}}F`}{{}c{}}00````````````{{fDh}l}{f{{f{Ab}}}}0{{{f{b}}}{{f{bAb}}}}0{f{{f{c}}}{}}0{{{f{b}}}{{f{bc}}}{}}0{{{f{F`}}}F`}{{f{f{bc}}}l{}}{fl}{{{f{F`}}{f{F`}}}Fb}{{{f{Fd}}{f{bAn}}}B`}0{cc{}}0{{{f{Ed}}}{{A`{F`c}}}{}}<<{{{Bb{c}}}{{Bb{Ab}}}{}}0{{{Bd{c}}}{{Bd{Ab}}}{}}0{{{Bf{c}}}{{Bf{Ab}}}{}}0{{FfFfFf{Ah{Ff}}{Ah{{f{Ed}}}}}{{A`{F`Fd}}}}{{{f{F`}}{f{F`}}}{{Ah{Fh}}}}{f{{Ch{Cf}}}}{fc{}}{fCl}{{{f{F`}}}Cl}{c{{A`{e}}}{}{}}0{{}{{A`{c}}}{}}0{f{{A`{CnD`}}}}011{fDb}0{{}c{}}0````````````{{{f{bFj}}{f{h}}{f{j}}}{{A`{ln}}}}{f{{f{Ab}}}}0{{{f{b}}}{{f{bAb}}}}0{{{f{bFj}}}{{A`{ln}}}}{f{{f{c}}}{}}0{{{f{b}}}{{f{bc}}}{}}0{{{f{bFj}}Ad{Ah{Af}}}{{A`{Ajn}}}}{{}Fj}{{{f{bFj}}}l}{{{f{Fl}}{f{bAn}}}B`}0{cc{}}0{{{f{bFj}}}Af}<<{{{Bb{c}}}{{Bb{Ab}}}{}}0{{{Bd{c}}}{{Bd{Ab}}}{}}0{{{Bf{c}}}{{Bf{Ab}}}{}}0{{{f{bFj}}{f{Bh}}Bj{Ah{{f{{Bn{Bl}}}}}}}{{A`{C`n}}}}8{{{f{bFj}}Af}l}{{{f{bFj}}{f{h}}}{{A`{ln}}}}{f{{Ch{Cf}}}}{{{f{Fl}}}{{Ah{{f{Cj}}}}}}{fCl}{c{{A`{e}}}{}{}}0{{}{{A`{c}}}{}}0{f{{A`{CnD`}}}}11{fDb}0{{{f{bFj}}}{{A`{{Df{Dd}}n}}}}{{}c{}}0`````````{{fDh}l}000{f{{f{Ab}}}}0000{{{f{b}}}{{f{bAb}}}}0000{f{{f{c}}}{}}0000{{{f{b}}}{{f{bc}}}{}}0000{{{f{Fn}}}Fn}{{{f{G`}}}G`}{{{f{Gb}}}Gb}{{{f{Gd}}}Gd}{{f{f{bc}}}l{}}000{fl}000{{{f{Gf}}{f{bAn}}}B`}0{{{f{Fn}}{f{bAn}}}B`}{{{f{G`}}{f{bAn}}}B`}{{{f{Gb}}{f{bAn}}}B`}{{{f{Gd}}{f{bAn}}}B`}{cc{}}0000{G`Gd}{GbGd}{FnGd}{{}c{}}0000{{{Bb{c}}}{{Bb{Ab}}}{}}0000{{{Bd{c}}}{{Bd{Ab}}}{}}0000{{{Bf{c}}}{{Bf{Ab}}}{}}0000{Ad{{A`{FnGf}}}}{{Ad{Ah{Cl}}{Ah{Cl}}}{{A`{G`Gf}}}}{{Ad{Ah{Cl}}{Ah{Cl}}}{{A`{GbGf}}}}{f{{Ch{Cf}}}}{fc{}}000{fCl}{c{{A`{e}}}{}{}}0000{{}{{A`{c}}}{}}0000{f{{A`{CnD`}}}}11111{fDb}0000=====````````````````````````````{{fDh}l}000000{f{{f{Ab}}}}0000000{{{f{b}}}{{f{bAb}}}}0000000{{{f{Gh}}}{{f{{Gl{Gj}}}}}}{{{f{Bl}}}{{f{{Gl{Gj}}}}}}{{{f{h}}}{{f{{Gl{Gj}}}}}}{f{{f{c}}}{}}0000000{{{f{b}}}{{f{bc}}}{}}0000000{{{f{Bh}}}Bh}{{{f{Gh}}}Gh}{{{f{Gn}}}Gn}{{{f{j}}}j}{{{f{Bl}}}Bl}{{{f{h}}}h}{{{f{H`}}}H`}{{f{f{bc}}}l{}}000000{fl}000000{{{f{h}}{f{h}}}Fh}{{f{f{c}}}Fh{}}{{{f{Bh}}{f{Bh}}}Fb}{{{f{Gh}}{f{Gh}}}Fb}{{{f{Gn}}{f{Gn}}}Fb}{{{f{j}}{f{j}}}Fb}{{{f{Bl}}{f{Bl}}}Fb}{{{f{h}}{f{h}}}Fb}{{f{f{c}}}Fb{}}00000{{{f{Bh}}{f{bAn}}}B`}{{{f{Hb}}{f{bAn}}}B`}0{{{f{Gh}}{f{bAn}}}B`}{{{f{Gn}}{f{bAn}}}B`}{{{f{j}}{f{bAn}}}B`}{{{f{Bl}}{f{bAn}}}B`}{{{f{h}}{f{bAn}}}B`}0{cc{}}000000{FbH`}1{{{f{Ed}}}{{A`{BlHb}}}}{{{f{Ed}}}{{A`{jHb}}}}{{{f{Ed}}}{{A`{BhHb}}}}{{{f{Bh}}}Gh}{{{f{j}}}Bl}{{{f{Bh}}}h}{{{f{j}}}{{A`{{Ef{BhH`}}Hb}}}}{{{f{Gh}}}h}{{{f{{Gl{Gj}}}}}{{A`{BhHb}}}}{{{f{{Gl{Gj}}}}}{{A`{GhHb}}}}{{{f{{Gl{Gj}}}}}{{A`{GnHb}}}}{{{f{{Gl{Gj}}}}}{{A`{jHb}}}}{{{f{{Gl{Gj}}}}}Bl}{{{f{h}}}{{A`{GhHb}}}}{{{f{Ed}}}{{A`{hHb}}}}{{}Bh}{{}j}{{{f{Bl}}{f{bc}}}lHd}{{{f{h}}{f{bc}}}lHd}{{}c{}}0000000{{{Bb{c}}}{{Bb{Ab}}}{}}0000000{{{Bd{c}}}{{Bd{Ab}}}{}}0000000{{{Bf{c}}}{{Bf{Ab}}}{}}0000000{{{f{Ed}}}Fb}{{{f{h}}{f{h}}}{{Ah{Fh}}}}{f{{Ch{Cf}}}}{{{f{Bh}}{f{{Bn{Gj}}}}}Gn}{{{f{j}}{f{{Bn{Gj}}}}}{{A`{{Ef{GnH`}}Hb}}}}{{{f{Bl}}}Cl}{{{f{j}}}Cl}{{{f{Bh}}}{{Gl{Gj}}}}{{{f{Gn}}}{{Gl{Gj}}}}{{{f{j}}}{{Gl{Gj}}}}{{{f{Bh}}}Cl}{fc{}}000000{fCl}0{c{{A`{e}}}{}{}}0000000{{}{{A`{c}}}{}}0000000{f{{A`{CnD`}}}}011111111{fDb}0000000{{{f{Gn}}{f{{Bn{Gj}}}}{f{Gh}}}Fb}{{{f{Gn}}{f{{Bn{Gj}}}}{f{Bl}}H`}Fb}{{}c{}}0000000````````````````````{{fDh}l}000{{{f{C`}}}{{A`{{Ah{Aj}}Hf}}}}{{{f{bHh}}{f{h}}{f{j}}}{{A`{ln}}}}{f{{f{Ab}}}}0000000{{{f{b}}}{{f{bAb}}}}0000000{{{f{bHh}}}{{A`{ln}}}}{f{{f{c}}}{}}0000000{{{f{b}}}{{f{bc}}}{}}0000000{{{f{Hj}}}Hj}{{{f{Hl}}}Hl}{{{f{Hn}}}Hn}{{{f{Ad}}}Ad}{{f{f{bc}}}l{}}000{fl}000{{{f{Hj}}{f{Hj}}}Fh}{{{f{Hl}}{f{Hl}}}Fh}{{{f{Hn}}{f{Hn}}}Fh}{{f{f{c}}}Fh{}}00{{{f{bHh}}Ad{Ah{Af}}}{{A`{Ajn}}}}{{{f{Aj}}}{{f{c}}}{}}{{{f{bAj}}}{{f{bc}}}{}}{{{f{Hn}}}{{f{Ed}}}}{{{f{bC`}}}l}{{{f{Hj}}{f{Hj}}}Fb}{{{f{Hl}}{f{Hl}}}Fb}{{{f{Hn}}{f{Hn}}}Fb}{{f{f{c}}}Fb{}}00000000{{{f{bAj}}}{{A`{lHf}}}}{{{f{n}}{f{bAn}}}B`}0{{{f{Hj}}{f{bAn}}}B`}0{{{f{Hl}}{f{bAn}}}B`}0{{{f{Hn}}{f{bAn}}}B`}0{{{f{Ad}}{f{bAn}}}B`}0{{{f{Dd}}{f{bAn}}}B`}{cc{}}00{Aln}{Enn}{Fln}3333{{{Ef{hBj}}}Ad}4{{{f{Ed}}}{{A`{Hlc}}}{}}{{{f{Ed}}}{{A`{Hnc}}}{}}{{{f{Ed}}}{{A`{Adc}}}{}}{{{f{bHh}}}Af}{{{f{Hj}}{f{bc}}}lHd}{{{f{Hl}}{f{bc}}}lHd}{{{f{Hn}}{f{bc}}}lHd}{{}c{}}0000000{{{Bb{c}}}{{Bb{Ab}}}{}}0000000{{{Bd{c}}}{{Bd{Ab}}}{}}000000{{{Bf{c}}}{{Bf{Ab}}}{}}0000000{{{f{bHh}}{f{Bh}}Bj{Ah{{f{{Bn{Bl}}}}}}}{{A`{C`n}}}}{{{f{Aj}}}{{Ah{Hl}}}}{{hBj}Hj}{{{f{Hj}}{f{Hj}}}{{Ah{Fh}}}}{{{f{Hl}}{f{Hl}}}{{Ah{Fh}}}}{{{f{Hn}}{f{Hn}}}{{Ah{Fh}}}}{{{f{Aj}}}{{Ah{Ad}}}}{{{f{Hn}}}Bj}{{{f{bAj}}{f{b{Bn{Gj}}}}}{{A`{I`Hf}}}}{{{f{bHh}}Af}l}{{{f{bHh}}{f{h}}}{{A`{ln}}}}{f{{Ch{Cf}}}}{{{f{Hj}}}{{f{h}}}}{{{f{C`}}Fb}{{A`{lHf}}}}{fc{}}000{fCl}0000{{{f{Aj}}}{{A`{AjHf}}}}{c{{A`{e}}}{}{}}00000{{{Ef{ClBj}}}{{A`{Hnc}}}{}}11{{}{{A`{c}}}{}}0000000{f{{A`{CnD`}}}}000011111111{fDb}0000000{{{f{bHh}}}{{A`{{Df{Dd}}n}}}}{{{f{Hj}}}Bj}{{}c{}}0000000{{{f{bAj}}{f{{Bn{Gj}}}}}{{A`{I`Hf}}}}{{{f{b}}{f{{Bn{Gj}}}}}{{A`{lIb}}}}`````","D":"ALd","p":[[0,"mut"],[5,"ArtiClientTorClient",8],[1,"reference"],[5,"V3OnionServiceId",495],[5,"X25519PrivateKey",495],[1,"unit"],[6,"Error",733],[6,"Result",968],[10,"Any",969],[6,"TargetAddr",733],[8,"CircuitToken",733],[6,"Option",970],[5,"OnionStream",733],[6,"Error",8],[5,"Formatter",971],[8,"Result",971],[5,"Box",972],[5,"Arc",973],[5,"Rc",974],[5,"Ed25519PrivateKey",495],[1,"u16"],[5,"X25519PublicKey",495],[1,"slice"],[5,"OnionListener",733],[5,"Runtime",975],[5,"Path",976],[5,"ReportHelper",977],[5,"Report",977],[10,"Error",978],[5,"String",979],[5,"Slug",980],[6,"BadSlug",980],[5,"TypeId",969],[6,"TorEvent",733],[5,"Vec",981],[5,"Private",982],[5,"PluggableTransportConfig",65],[5,"BridgeLine",65],[6,"SocketAddr",983],[6,"PluggableTransportConfigError",65],[6,"BridgeLineError",65],[1,"str"],[1,"tuple"],[5,"PathBuf",976],[5,"LegacyTorClient",169],[6,"LegacyTorClientConfig",169],[6,"Error",169],[5,"LegacyTorVersion",277],[1,"bool"],[6,"Error",277],[1,"u32"],[6,"Ordering",984],[5,"MockTorClient",324],[6,"Error",324],[5,"Socks4ProxyConfig",381],[5,"Socks5ProxyConfig",381],[5,"HttpsProxyConfig",381],[6,"ProxyConfig",381],[6,"ProxyConfigError",381],[5,"Ed25519PublicKey",495],[1,"u8"],[1,"array"],[5,"Ed25519Signature",495],[6,"SignBit",495],[6,"Error",495],[10,"Hasher",985],[5,"Error",986],[10,"TorProvider",733],[5,"OnionAddrV3",733],[6,"OnionAddr",733],[5,"DomainAddr",733],[1,"usize"],[5,"Error",987],[15,"BundledTor",268],[15,"SystemTor",268],[15,"LogReceived",963],[15,"BootstrapStatus",963],[15,"OnionServicePublished",963]],"r":[],"b":[[33,"impl-Display-for-Error"],[34,"impl-Debug-for-Error"],[108,"impl-Display-for-PluggableTransportConfigError"],[109,"impl-Debug-for-PluggableTransportConfigError"],[111,"impl-Display-for-BridgeLineError"],[112,"impl-Debug-for-BridgeLineError"],[223,"impl-Display-for-Error"],[224,"impl-Debug-for-Error"],[293,"impl-Debug-for-Error"],[294,"impl-Display-for-Error"],[349,"impl-Debug-for-Error"],[350,"impl-Display-for-Error"],[426,"impl-Display-for-ProxyConfigError"],[427,"impl-Debug-for-ProxyConfigError"],[437,"impl-From%3CSocks5ProxyConfig%3E-for-ProxyConfig"],[438,"impl-From%3CHttpsProxyConfig%3E-for-ProxyConfig"],[439,"impl-From%3CSocks4ProxyConfig%3E-for-ProxyConfig"],[601,"impl-Display-for-Error"],[602,"impl-Debug-for-Error"],[607,"impl-Display-for-V3OnionServiceId"],[608,"impl-Debug-for-V3OnionServiceId"],[828,"impl-Display-for-Error"],[829,"impl-Debug-for-Error"],[830,"impl-Debug-for-OnionAddrV3"],[831,"impl-Display-for-OnionAddrV3"],[832,"impl-Display-for-OnionAddr"],[833,"impl-Debug-for-OnionAddr"],[834,"impl-Display-for-DomainAddr"],[835,"impl-Debug-for-DomainAddr"],[836,"impl-Display-for-TargetAddr"],[837,"impl-Debug-for-TargetAddr"],[842,"impl-From%3CError%3E-for-Error"],[843,"impl-From%3CError%3E-for-Error"],[844,"impl-From%3CError%3E-for-Error"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAOYCOAAJAAMADwAUACYAAAApAAYAMQAQAFAAAQBUAAcAXQANAGwABQB2AAAAewALAIwABQCUABsAsQACALUALQDmAAAA6gAJAPUAEwAKAQsAGAEPACoBAAAtAQUANAETAEoBFQBiAQAAZQEGAG0BEACHASkAtgECAL4BDgDQAR8A/QEAAAsCFwAmAjsAaQIAAHwCAQCGAhcAnwIBAKkCKgDWAgcA8QIEAPgCDwAJAyEALAMBAC8DGABLAwIAUgMAAFQDAgBYAwIAYwMWAH0DAgCCAwAAhQMAAIgDCACSAyUAugMJAA=="}]]'));
if (typeof exports !== 'undefined') exports.searchIndex = searchIndex;
else if (window.initSearch) window.initSearch(searchIndex);
+//{"start":39,"fragment_lengths":[5865,3482,20883]}
\ No newline at end of file
diff --git a/crates/settings.html b/crates/settings.html
index 392c5a30..54285e21 100644
--- a/crates/settings.html
+++ b/crates/settings.html
@@ -1 +1 @@
-Settings Rustdoc settings
Back
\ No newline at end of file
+Settings Rustdoc settings
Back
\ No newline at end of file
diff --git a/crates/src-files.js b/crates/src-files.js
index 77ab7efa..dfafde16 100644
--- a/crates/src-files.js
+++ b/crates/src-files.js
@@ -1,6 +1,3 @@
-var srcIndex = new Map(JSON.parse('[\
-["gosling",["",[],["ascii_string.rs","context.rs","endpoint_client.rs","endpoint_server.rs","gosling.rs","identity_client.rs","identity_server.rs","lib.rs"]]],\
-["honk_rpc",["",[],["byte_counter.rs","honk_rpc.rs","lib.rs"]]],\
-["tor_interface",["",[],["arti_client_tor_client.rs","censorship_circumvention.rs","legacy_tor_client.rs","legacy_tor_control_stream.rs","legacy_tor_controller.rs","legacy_tor_process.rs","legacy_tor_version.rs","lib.rs","mock_tor_client.rs","proxy.rs","tor_crypto.rs","tor_provider.rs"]]]\
-]'));
+var srcIndex = new Map(JSON.parse('[["gosling",["",[],["ascii_string.rs","context.rs","endpoint_client.rs","endpoint_server.rs","gosling.rs","identity_client.rs","identity_server.rs","lib.rs"]]],["honk_rpc",["",[],["byte_counter.rs","honk_rpc.rs","lib.rs"]]],["tor_interface",["",[],["arti_client_tor_client.rs","censorship_circumvention.rs","legacy_tor_client.rs","legacy_tor_control_stream.rs","legacy_tor_controller.rs","legacy_tor_process.rs","legacy_tor_version.rs","lib.rs","mock_tor_client.rs","proxy.rs","tor_crypto.rs","tor_provider.rs"]]]]'));
createSrcSidebar();
+//{"start":36,"fragment_lengths":[158,64,290]}
\ No newline at end of file
diff --git a/crates/src/gosling/ascii_string.rs.html b/crates/src/gosling/ascii_string.rs.html
index 36a130fa..cd0d6d76 100644
--- a/crates/src/gosling/ascii_string.rs.html
+++ b/crates/src/gosling/ascii_string.rs.html
@@ -1,4 +1,4 @@
-ascii_string.rs - source 1
+ascii_string.rs - source 1
2
3
4
diff --git a/crates/src/gosling/context.rs.html b/crates/src/gosling/context.rs.html
index 093ac1e7..dcdfa707 100644
--- a/crates/src/gosling/context.rs.html
+++ b/crates/src/gosling/context.rs.html
@@ -1,4 +1,4 @@
-context.rs - source 1
+context.rs - source 1
2
3
4
diff --git a/crates/src/gosling/endpoint_client.rs.html b/crates/src/gosling/endpoint_client.rs.html
index 6f2ee788..7b3a4bf0 100644
--- a/crates/src/gosling/endpoint_client.rs.html
+++ b/crates/src/gosling/endpoint_client.rs.html
@@ -1,4 +1,4 @@
-endpoint_client.rs - source 1
+endpoint_client.rs - source 1
2
3
4
diff --git a/crates/src/gosling/endpoint_server.rs.html b/crates/src/gosling/endpoint_server.rs.html
index dbb8fa87..73451a3d 100644
--- a/crates/src/gosling/endpoint_server.rs.html
+++ b/crates/src/gosling/endpoint_server.rs.html
@@ -1,4 +1,4 @@
-endpoint_server.rs - source 1
+endpoint_server.rs - source 1
2
3
4
diff --git a/crates/src/gosling/gosling.rs.html b/crates/src/gosling/gosling.rs.html
index 1d5fe17e..70eaac4c 100644
--- a/crates/src/gosling/gosling.rs.html
+++ b/crates/src/gosling/gosling.rs.html
@@ -1,4 +1,4 @@
-gosling.rs - source 1
+gosling.rs - source 1
2
3
4
diff --git a/crates/src/gosling/identity_client.rs.html b/crates/src/gosling/identity_client.rs.html
index 4e0c500e..b70ce0a1 100644
--- a/crates/src/gosling/identity_client.rs.html
+++ b/crates/src/gosling/identity_client.rs.html
@@ -1,4 +1,4 @@
-identity_client.rs - source 1
+identity_client.rs - source