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 @@   typedef size_t gosling_circuit_token_t   -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_completed_callback_t) (gosling_context *context) -  -typedef void(* gosling_tor_log_received_callback_t) (gosling_context *context, const char *line, size_t line_length) -  -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 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_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_failed_callback_t) (gosling_context *context, gosling_handshake_handle_t handshake_handle, const gosling_error *error) -  -typedef void(* gosling_identity_server_published_callback_t) (gosling_context *context) -  -typedef void(* gosling_identity_server_handshake_started_callback_t) (gosling_context *context, gosling_handshake_handle_t handshake_handle) -  -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_endpoint_supported_callback_t) (gosling_context *context, gosling_handshake_handle_t handshake_handle, const char *endpoint_name, size_t endpoint_name_length) -  -typedef size_t(* gosling_identity_server_handshake_challenge_size_callback_t) (gosling_context *context, gosling_handshake_handle_t handshake_handle) -  -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 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 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_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_failed_callback_t) (gosling_context *context, gosling_handshake_handle_t handshake_handle, const 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_failed_callback_t) (gosling_context *context, gosling_handshake_handle_t handshake_handle, const gosling_error *error) -  -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_handshake_started_callback_t) (gosling_context *context, gosling_handshake_handle_t handshake_handle) -  -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 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_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_failed_callback_t) (gosling_context *context, gosling_handshake_handle_t handshake_handle, const gosling_error *error) -  +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) +  +typedef void(* gosling_tor_bootstrap_completed_callback_t) (void *callback_data, gosling_context *context) +  +typedef void(* gosling_tor_log_received_callback_t) (void *callback_data, gosling_context *context, const char *line, size_t line_length) +  +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) +  +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) +  +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) +  +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) +  +typedef void(* gosling_identity_server_published_callback_t) (void *callback_data, gosling_context *context) +  +typedef void(* gosling_identity_server_handshake_started_callback_t) (void *callback_data, gosling_context *context, gosling_handshake_handle_t handshake_handle) +  +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) +  +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) +  +typedef size_t(* gosling_identity_server_handshake_challenge_size_callback_t) (void *callback_data, gosling_context *context, gosling_handshake_handle_t handshake_handle) +  +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) +  +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) +  +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) +  +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) +  +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) +  +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) +  +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) +  +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) +  +typedef void(* gosling_endpoint_server_handshake_started_callback_t) (void *callback_data, gosling_context *context, gosling_handshake_handle_t handshake_handle) +  +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) +  +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) +  +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) +  +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) +  @@ -231,56 +231,56 @@

Enumerations

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -694,20 +694,21 @@

-

◆ gosling_endpoint_client_handshake_completed_callback_t

+ +

◆ gosling_endpoint_client_handshake_completed_callback_t

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.

Parameters
+ @@ -720,20 +721,21 @@

-

◆ gosling_endpoint_client_handshake_failed_callback_t

+ +

◆ gosling_endpoint_client_handshake_failed_callback_t

callback_dataarbitrary pointer to developer-defined memory provided when setting this callback
contextthe context associated with this event
handshake_handlethe handshake handle this callback is associated with
endpoint_service_idthe 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.

Parameters
+ @@ -743,20 +745,21 @@

-

◆ gosling_endpoint_server_channel_supported_callback_t

+ +

◆ gosling_endpoint_server_channel_supported_callback_t

callback_dataarbitrary pointer to developer-defined memory provided when setting this callback
contextthe context associated with this event
handshake_handlethe handshake handle this callback is associated with
errorerror 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.

Parameters
+ @@ -769,20 +772,21 @@

-

◆ gosling_endpoint_server_handshake_completed_callback_t

+ +

◆ gosling_endpoint_server_handshake_completed_callback_t

callback_dataarbitrary pointer to developer-defined memory provided when setting this callback
contextthe context associated with this event
handshake_handlethe handshake handle this callback is associated with
client_service_idthe 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.

Parameters
+ @@ -796,20 +800,21 @@

-

◆ gosling_endpoint_server_handshake_failed_callback_t

+ +

◆ gosling_endpoint_server_handshake_failed_callback_t

callback_dataarbitrary pointer to developer-defined memory provided when setting this callback
contextthe context associated with this event
handshake_handlethe handshake handle this callback is associated with
endpoint_service_idthe 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.

Parameters
+ @@ -819,20 +824,21 @@

-

◆ gosling_endpoint_server_handshake_rejected_callback_t

+ +

◆ gosling_endpoint_server_handshake_rejected_callback_t

callback_dataarbitrary pointer to developer-defined memory provided when setting this callback
contextthe context associated with this event
handshake_handlethe handshake handle this callback is associated with
errorerror 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.

Parameters
+ @@ -844,20 +850,21 @@

-

◆ gosling_endpoint_server_handshake_started_callback_t

+ +

◆ gosling_endpoint_server_handshake_started_callback_t

callback_dataarbitrary pointer to developer-defined memory provided when setting this callback
contextthe context associated with this event
handshake_handlethe handshake handle this callback is associated with
client_allowedtrue 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.

Parameters
+
callback_dataarbitrary pointer to developer-defined memory provided when setting this callback
contextthe context associated with this event
handshake_handlethe handshake handle this callback is associated with
@@ -866,20 +873,21 @@

-

◆ gosling_endpoint_server_published_callback_t

+ +

◆ gosling_endpoint_server_published_callback_t

- +
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.

Parameters
+ @@ -920,20 +928,21 @@

-

◆ gosling_identity_client_handshake_build_challenge_response_callback_t

+ +

◆ gosling_identity_client_handshake_build_challenge_response_callback_t

callback_dataarbitrary pointer to developer-defined memory provided when setting this callback
contextthe context associated with this event
endpoint_service_idthe onion service id of the published endpoint server
endpoint_namethe 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.

Parameters
+ @@ -946,20 +955,21 @@

-

◆ gosling_identity_client_handshake_challenge_response_size_callback_t

+ +

◆ gosling_identity_client_handshake_challenge_response_size_callback_t

callback_dataarbitrary pointer to developer-defined memory provided when setting this callback
contextthe context associated with this event
handshake_handlethe handshake handle this callback is associated with
challenge_bufferthe 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.

Parameters
+ @@ -971,20 +981,21 @@

-

◆ gosling_identity_client_handshake_completed_callback_t

+ +

◆ gosling_identity_client_handshake_completed_callback_t

callback_dataarbitrary pointer to developer-defined memory provided when setting this callback
contextthe context associated with this event
handshake_handlepointer to the client handshake handle this callback invocation is associated with; null if no client handshake init callback was provided
challenge_bufferthe 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.

Parameters
+ @@ -998,20 +1009,21 @@

-

◆ gosling_identity_client_handshake_failed_callback_t

+ +

◆ gosling_identity_client_handshake_failed_callback_t

callback_dataarbitrary pointer to developer-defined memory provided when setting this callback
contextthe context associated with this event
handshake_handlethe handshake handle this callback is associated with
identity_service_idthe 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.

Parameters
+ @@ -1021,20 +1033,21 @@

-

◆ gosling_identity_server_endpoint_supported_callback_t

+ +

◆ gosling_identity_server_endpoint_supported_callback_t

callback_dataarbitrary pointer to developer-defined memory provided when setting this callback
contextthe context associated with this event
handshake_handlethe handshake handle this callback is associated with
errorerror 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.

Parameters
+ @@ -1046,20 +1059,21 @@

-

◆ gosling_identity_server_handshake_build_challenge_callback_t

+ +

◆ gosling_identity_server_handshake_build_challenge_callback_t

callback_dataarbitrary pointer to developer-defined memory provided when setting this callback
contextthe context associated with this event
handshake_handlethe handshake handle this callback is associated with
endpoint_namea 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.

Parameters
+ @@ -1070,20 +1084,21 @@

-

◆ gosling_identity_server_handshake_challenge_size_callback_t

+ +

◆ gosling_identity_server_handshake_challenge_size_callback_t

callback_dataarbitrary pointer to developer-defined memory provided when setting this callback
contextthe context associated with this event
handshake_handlethe handshake handle this callback is associated with
out_challenge_bufferthe 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.

Parameters
+
callback_dataarbitrary pointer to developer-defined memory provided when setting this callback
contextthe context associated with this event
handshake_handlethe handshake handle this callback is associated with
@@ -1093,20 +1108,21 @@

-

◆ gosling_identity_server_handshake_client_allowed_callback_t

+ +

◆ gosling_identity_server_handshake_client_allowed_callback_t

- +
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.

Parameters
+ @@ -1117,20 +1133,21 @@

-

◆ gosling_identity_server_handshake_completed_callback_t

+ +

◆ gosling_identity_server_handshake_completed_callback_t

callback_dataarbitrary pointer to developer-defined memory provided when setting this callback
contextthe context associated with this event
handshake_handlethe handshake handle this callback is associated with
client_service_idthe 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.

Parameters
+ @@ -1144,20 +1161,21 @@

-

◆ gosling_identity_server_handshake_failed_callback_t

+ +

◆ gosling_identity_server_handshake_failed_callback_t

callback_dataarbitrary pointer to developer-defined memory provided when setting this callback
contextthe context associated with this event
handshake_handlethe handshake handle this callback is associated with
endpoint_private_keythe 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.

Parameters
+ @@ -1167,20 +1185,21 @@

-

◆ gosling_identity_server_handshake_rejected_callback_t

+ +

◆ gosling_identity_server_handshake_rejected_callback_t

callback_dataarbitrary pointer to developer-defined memory provided when setting this callback
contextthe context associated with this event
handshake_handlethe handshake handle this callback is associated with
errorerror 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.

Parameters
+ @@ -1194,20 +1213,21 @@

-

◆ gosling_identity_server_handshake_started_callback_t

+ +

◆ gosling_identity_server_handshake_started_callback_t

callback_dataarbitrary pointer to developer-defined memory provided when setting this callback
contextthe context associated with this event
handshake_handlethe handshake handle this callback is associated with
client_allowedtrue 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.

Parameters
+
callback_dataarbitrary pointer to developer-defined memory provided when setting this callback
contextthe context associated with this event
handshake_handlethe handshake handle this callback is associated with
@@ -1216,20 +1236,21 @@

-

◆ gosling_identity_server_handshake_verify_challenge_response_callback_t

+ +

◆ gosling_identity_server_handshake_verify_challenge_response_callback_t

- +
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.

Parameters
+ @@ -1241,20 +1262,21 @@

-

◆ gosling_identity_server_published_callback_t

+ +

◆ gosling_identity_server_published_callback_t

callback_dataarbitrary pointer to developer-defined memory provided when setting this callback
contextthe context associated with this event
handshake_handlethe handshake handle this callback is associated with
challenge_response_buffera 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.

Parameters
+
callback_dataarbitrary pointer to developer-defined memory provided when setting this callback
contextthe context associated with this event
@@ -1352,20 +1374,21 @@

-

◆ gosling_tor_bootstrap_completed_callback_t

+ +

◆ gosling_tor_bootstrap_completed_callback_t

- +
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.

Parameters
+
callback_dataarbitrary pointer to developer-defined memory provided when setting this callback
contextthe context associated with this event
@@ -1373,20 +1396,21 @@

-

◆ gosling_tor_bootstrap_status_received_callback_t

+ +

◆ gosling_tor_bootstrap_status_received_callback_t

- +
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.

Parameters
+ @@ -1399,20 +1423,21 @@

-

◆ gosling_tor_log_received_callback_t

+ +

◆ gosling_tor_log_received_callback_t

callback_dataarbitrary pointer to developer-defined memory provided when setting this callback
contextthe context associated with this event
progressan unsigned integer from 0 to 100 indicating the current completion perentage of the context's bootstrap process
tagthe 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.

Parameters
+ @@ -2117,8 +2142,8 @@

-

◆ gosling_context_set_endpoint_client_handshake_completed_callback()

+ +

◆ gosling_context_set_endpoint_client_handshake_completed_callback()

@@ -2132,9 +2157,15 @@

- + + + + + + + @@ -2153,6 +2184,7 @@

+
callback_dataarbitrary pointer to developer-defined memory provided when setting this callback
contextthe context associated with this event
linethe null-terminated received log line
line_lengththe 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,
contextthe context to register the callback to
callbackthe callback to register
callback_datathe custom data to pass to this callback
errorfilled on error
@@ -2160,8 +2192,8 @@

-

◆ gosling_context_set_endpoint_client_handshake_failed_callback()

+ +

◆ gosling_context_set_endpoint_client_handshake_failed_callback()

@@ -2203,8 +2242,8 @@

-

◆ gosling_context_set_endpoint_server_channel_supported_callback()

+ +

◆ gosling_context_set_endpoint_server_channel_supported_callback()

@@ -2246,8 +2292,8 @@

-

◆ gosling_context_set_endpoint_server_handshake_completed_callback()

+ +

◆ gosling_context_set_endpoint_server_handshake_completed_callback()

@@ -2289,8 +2342,8 @@

-

◆ gosling_context_set_endpoint_server_handshake_failed_callback()

+ +

◆ gosling_context_set_endpoint_server_handshake_failed_callback()

@@ -2304,9 +2357,15 @@

- gosling_endpoint_server_handshake_failed_callback_t  + gosling_endpoint_server_handshake_failed_callback_t  callback, + + + + void *  + callback_data, + @@ -2325,6 +2384,7 @@

contextthe context to register the callback to callbackthe callback to register + callback_datathe custom data to pass to this callback errorfilled on error @@ -2332,8 +2392,8 @@

-

◆ gosling_context_set_endpoint_server_handshake_rejected_callback()

+ +

◆ gosling_context_set_endpoint_server_handshake_rejected_callback()

@@ -2347,9 +2407,15 @@

- gosling_endpoint_server_handshake_rejected_callback_t  + gosling_endpoint_server_handshake_rejected_callback_t  callback, + + + + void *  + callback_data, + @@ -2368,6 +2434,7 @@

contextthe context to register the callback to callbackthe callback to register + callback_datathe custom data to pass to this callback errorfilled on error @@ -2375,8 +2442,8 @@

-

◆ gosling_context_set_endpoint_server_handshake_started_callback()

+ +

◆ gosling_context_set_endpoint_server_handshake_started_callback()

@@ -2390,9 +2457,15 @@

- gosling_endpoint_server_handshake_started_callback_t  + gosling_endpoint_server_handshake_started_callback_t  callback, + + + + void *  + callback_data, + @@ -2411,6 +2484,7 @@

contextthe context to register the callback to callbackthe callback to register + callback_datathe custom data to pass to this callback errorfilled on error @@ -2418,8 +2492,8 @@

-

◆ gosling_context_set_endpoint_server_published_callback()

+ +

◆ gosling_context_set_endpoint_server_published_callback()

@@ -2433,9 +2507,15 @@

- gosling_endpoint_server_published_callback_t  + gosling_endpoint_server_published_callback_t  callback, + + + + void *  + callback_data, + @@ -2454,6 +2534,7 @@

contextthe context to register the callback to callbackthe callback to register + callback_datathe custom data to pass to this callback errorfilled on error @@ -2461,8 +2542,8 @@

-

◆ gosling_context_set_identity_client_build_challenge_response_callback()

+ +

◆ gosling_context_set_identity_client_build_challenge_response_callback()

@@ -2476,9 +2557,15 @@

- gosling_identity_client_handshake_build_challenge_response_callback_t  + gosling_identity_client_handshake_build_challenge_response_callback_t  callback, + + + + void *  + callback_data, + @@ -2497,6 +2584,7 @@

contextthe context to register the callback to callbackthe callback to register + callback_datathe custom data to pass to this callback errorfilled on error @@ -2504,8 +2592,8 @@

-

◆ gosling_context_set_identity_client_challenge_response_size_callback()

+ +

◆ gosling_context_set_identity_client_challenge_response_size_callback()

@@ -2519,9 +2607,15 @@

- gosling_identity_client_handshake_challenge_response_size_callback_t  + gosling_identity_client_handshake_challenge_response_size_callback_t  callback, + + + + void *  + callback_data, + @@ -2540,6 +2634,7 @@

contextthe context to register the callback to callbackthe callback to register + callback_datathe custom data to pass to this callback errorfilled on error @@ -2547,8 +2642,8 @@

-

◆ gosling_context_set_identity_client_handshake_completed_callback()

+ +

◆ gosling_context_set_identity_client_handshake_completed_callback()

@@ -2562,9 +2657,15 @@

- gosling_identity_client_handshake_completed_callback_t  + gosling_identity_client_handshake_completed_callback_t  callback, + + + + void *  + callback_data, + @@ -2583,6 +2684,7 @@

contextthe context to register the callback to callbackthe callback to register + callback_datathe custom data to pass to this callback errorfilled on error @@ -2590,8 +2692,8 @@

-

◆ gosling_context_set_identity_client_handshake_failed_callback()

+ +

◆ gosling_context_set_identity_client_handshake_failed_callback()

@@ -2605,9 +2707,15 @@

- gosling_identity_client_handshake_failed_callback_t  + gosling_identity_client_handshake_failed_callback_t  callback, + + + + void *  + callback_data, + @@ -2626,6 +2734,7 @@

contextthe context to register the callback to callbackthe callback to register + callback_datathe custom data to pass to this callback errorfilled on error @@ -2633,8 +2742,8 @@

-

◆ gosling_context_set_identity_server_build_challenge_callback()

+ +

◆ gosling_context_set_identity_server_build_challenge_callback()

@@ -2648,9 +2757,15 @@

- gosling_identity_server_handshake_build_challenge_callback_t  + gosling_identity_server_handshake_build_challenge_callback_t  callback, + + + + void *  + callback_data, + @@ -2669,6 +2784,7 @@

contextthe context to register the callback to callbackthe callback to register + callback_datathe custom data to pass to this callback errorfilled on erro @@ -2676,8 +2792,8 @@

-

◆ gosling_context_set_identity_server_challenge_size_callback()

+ +

◆ gosling_context_set_identity_server_challenge_size_callback()

@@ -2691,9 +2807,15 @@

- gosling_identity_server_handshake_challenge_size_callback_t  + gosling_identity_server_handshake_challenge_size_callback_t  callback, + + + + void *  + callback_data, + @@ -2712,6 +2834,7 @@

contextthe context to register the callback to callbackthe callback to register + callback_datathe custom data to pass to this callback errorfilled on erro @@ -2719,8 +2842,8 @@

-

◆ gosling_context_set_identity_server_client_allowed_callback()

+ +

◆ gosling_context_set_identity_server_client_allowed_callback()

@@ -2734,9 +2857,15 @@

- gosling_identity_server_handshake_client_allowed_callback_t  + gosling_identity_server_handshake_client_allowed_callback_t  callback, + + + + void *  + callback_data, + @@ -2755,6 +2884,7 @@

contextthe context to register the callback to callbackthe callback to register + callback_datathe custom data to pass to this callback errorfilled on error @@ -2762,8 +2892,8 @@

-

◆ gosling_context_set_identity_server_endpoint_supported_callback()

+ +

◆ gosling_context_set_identity_server_endpoint_supported_callback()

@@ -2777,9 +2907,15 @@

- gosling_identity_server_endpoint_supported_callback_t  + gosling_identity_server_endpoint_supported_callback_t  callback, + + + + void *  + callback_data, + @@ -2798,6 +2934,7 @@

contextthe context to register the callback to callbackthe callback to register + callback_datathe custom data to pass to this callback errorfilled on error @@ -2805,8 +2942,8 @@

-

◆ gosling_context_set_identity_server_handshake_completed_callback()

+ +

◆ gosling_context_set_identity_server_handshake_completed_callback()

@@ -2820,9 +2957,15 @@

- gosling_identity_server_handshake_completed_callback_t  + gosling_identity_server_handshake_completed_callback_t  callback, + + + + void *  + callback_data, + @@ -2841,6 +2984,7 @@

contextthe context to register the callback to callbackthe callback to register + callback_datathe custom data to pass to this callback errorfilled on error @@ -2848,8 +2992,8 @@

-

◆ gosling_context_set_identity_server_handshake_failed_callback()

+ +

◆ gosling_context_set_identity_server_handshake_failed_callback()

@@ -2863,9 +3007,15 @@

- gosling_identity_server_handshake_failed_callback_t  + gosling_identity_server_handshake_failed_callback_t  callback, + + + + void *  + callback_data, + @@ -2884,6 +3034,7 @@

contextthe context to register the callback to callbackthe callback to register + callback_datathe custom data to pass to this callback errorfilled on error @@ -2891,8 +3042,8 @@

-

◆ gosling_context_set_identity_server_handshake_rejected_callback()

+ +

◆ gosling_context_set_identity_server_handshake_rejected_callback()

@@ -2906,9 +3057,15 @@

- gosling_identity_server_handshake_rejected_callback_t  + gosling_identity_server_handshake_rejected_callback_t  callback, + + + + void *  + callback_data, + @@ -2927,6 +3084,7 @@

contextthe context to register the callback to callbackthe callback to register + callback_datathe custom data to pass to this callback errorfilled on error @@ -2934,8 +3092,8 @@

-

◆ gosling_context_set_identity_server_handshake_started_callback()

+ +

◆ gosling_context_set_identity_server_handshake_started_callback()

- -

◆ gosling_context_set_tor_bootstrap_completed_callback()

+ +

◆ gosling_context_set_tor_bootstrap_completed_callback()

@@ -3078,9 +3257,15 @@

- gosling_tor_bootstrap_completed_callback_t  + gosling_tor_bootstrap_completed_callback_t  callback, + + + + void *  + callback_data, + @@ -3099,6 +3284,7 @@

contextthe context to register the callback to callbackthe callback to register + callback_datathe custom data to pass to this callback errorfilled on error @@ -3106,8 +3292,8 @@

-

◆ gosling_context_set_tor_bootstrap_status_received_callback()

+ +

◆ gosling_context_set_tor_bootstrap_status_received_callback()

@@ -3121,9 +3307,15 @@

- gosling_tor_bootstrap_status_received_callback_t  + gosling_tor_bootstrap_status_received_callback_t  callback, + + + + void *  + callback_data, + @@ -3142,6 +3334,7 @@

contextthe context to register the callback to callbackthe callback to register + callback_datathe custom data to pass to this callback errorfilled on error @@ -3149,8 +3342,8 @@

-

◆ gosling_context_set_tor_log_received_callback()

+ +

◆ gosling_context_set_tor_log_received_callback()

@@ -3164,9 +3357,15 @@

- gosling_tor_log_received_callback_t  + gosling_tor_log_received_callback_t  callback, + + + + void *  + callback_data, + @@ -3185,6 +3384,7 @@

contextthe context to register the callback to callbackthe callback to register + callback_datathe custom data to pass to this callback errorfilled on error diff --git a/bindings/cgosling/cgosling_8h_source.html b/bindings/cgosling/cgosling_8h_source.html index 76d2f524..b609dad6 100644 --- a/bindings/cgosling/cgosling_8h_source.html +++ b/bindings/cgosling/cgosling_8h_source.html @@ -140,139 +140,140 @@
213 typedef size_t gosling_circuit_token_t;
214 
-
227 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);
- -
243 typedef void(*gosling_tor_log_received_callback_t)(gosling_context* context, const char* line, size_t line_length);
-
258 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);
-
275 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);
-
293 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);
- - - - -
346 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);
- -
368 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);
-
382 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);
-
400 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);
-
418 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);
- -
443 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);
- -
464 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);
- -
489 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);
-
506 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);
-
520 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);
- -
530 
-
531 #ifdef __cplusplus
-
532 extern "C" {
-
533 #endif // __cplusplus
-
534 
- - - - - - - - - - - - - - - - - - - - - - - - - - -
753 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);
- - - -
787 void gosling_context_start_endpoint_server(gosling_context* context, const gosling_ed25519_private_key* endpoint_private_key, const char* endpoint_name, size_t endpoint_name_length, const gosling_v3_onion_service_id* client_identity, const gosling_x25519_public_key* client_auth_public_key, gosling_error** error);
- -
806 gosling_handshake_handle_t gosling_context_begin_identity_handshake(gosling_context* context, const gosling_v3_onion_service_id* identity_service_id, const char* endpoint_name, size_t endpoint_name_length, gosling_error** error);
- -
826 gosling_handshake_handle_t gosling_context_begin_endpoint_handshake(gosling_context* context, const gosling_v3_onion_service_id* endpoint_service_id, const gosling_x25519_private_key* client_auth_private_key, const char* channel_name, size_t channel_name_length, gosling_error** error);
- - - - - - - - - - - -
915 void gosling_ed25519_private_key_from_keyblob(gosling_ed25519_private_key** out_private_key, const char* key_blob, size_t key_blob_length, gosling_error** error);
-
927 void gosling_ed25519_private_key_to_keyblob(const gosling_ed25519_private_key* private_key, char* out_key_blob, size_t key_blob_size, gosling_error** error);
-
937 void gosling_x25519_private_key_from_base64(gosling_x25519_private_key** out_private_key, const char* base64, size_t base64_length, gosling_error** error);
-
948 void gosling_x25519_private_key_to_base64(const gosling_x25519_private_key* private_key, char* out_base64, size_t base64_size, gosling_error** error);
-
958 void gosling_x25519_public_key_from_base32(gosling_x25519_public_key** out_public_key, const char* base32, size_t base32_length, gosling_error** error);
-
969 void gosling_x25519_public_key_to_base32(const gosling_x25519_public_key* public_key, char* out_base32, size_t base32_size, gosling_error** error);
-
980 void gosling_v3_onion_service_id_from_string(gosling_v3_onion_service_id** out_service_id, const char* service_id_string, size_t service_id_string_length, gosling_error** error);
- -
1000 void gosling_v3_onion_service_id_to_string(const gosling_v3_onion_service_id* service_id, char* out_service_id_string, size_t service_id_string_size, gosling_error** error);
-
1010 bool gosling_string_is_valid_v3_onion_service_id(const char* service_id_string, size_t service_id_string_length, gosling_error** error);
-
1018 const char* gosling_error_get_message(const gosling_error* error);
-
1026 void gosling_error_clone(gosling_error** out_error, const gosling_error* orig_error, gosling_error** error);
- - - - - - - - -
1086 void gosling_proxy_config_new_socks4(gosling_proxy_config** out_proxy_config, const gosling_target_address* proxy_address, gosling_error** error);
-
1100 void gosling_proxy_config_new_socks5(gosling_proxy_config** out_proxy_config, const gosling_target_address* proxy_address, const char* username, size_t username_length, const char* password, size_t password_length, gosling_error** error);
-
1114 void gosling_proxy_config_new_https(gosling_proxy_config** out_proxy_config, const gosling_target_address* proxy_address, const char* username, size_t username_length, const char* password, size_t password_length, gosling_error** error);
-
1128 void gosling_pluggable_transport_config_new(gosling_pluggable_transport_config** out_pluggable_transport_config, const char* transports, size_t transports_length, const char* path_to_binary, size_t path_to_binary_length, gosling_error** error);
-
1138 void gosling_pluggable_transport_config_add_cmdline_option(gosling_pluggable_transport_config* pluggable_transport_config, const char* option, size_t option_length, gosling_error** error);
-
1149 void gosling_bridge_line_from_string(gosling_bridge_line** out_bridge_line, const char* bridge_line, size_t bridge_line_length, gosling_error** error);
-
1159 void gosling_tor_provider_config_new_arti_client_tor_client_config(gosling_tor_provider_config** out_tor_provider_config, const char* arti_client_data_directory, size_t arti_client_data_directory_length, gosling_error** error);
- -
1179 void gosling_tor_provider_config_new_bundled_legacy_client_config(gosling_tor_provider_config** out_tor_provider_config, const char* tor_bin_path, size_t tor_bin_path_length, const char* tor_working_directory, size_t tor_working_directory_length, gosling_error** error);
-
1193 void gosling_tor_provider_config_new_system_legacy_client_config(gosling_tor_provider_config** out_tor_provider_config, const gosling_ip_address* tor_socks_host, uint16_t tor_socks_port, const gosling_ip_address* tor_control_host, uint16_t tor_control_port, const char* tor_control_passwd, size_t tor_control_passwd_length, gosling_error** error);
- -
1218 void gosling_tor_provider_config_set_allowed_ports(gosling_tor_provider_config* tor_provider_config, const uint16_t* allowed_ports, size_t allowed_ports_count, gosling_error** error);
- - - - - -
1275 void gosling_ip_address_clone(gosling_ip_address** out_ip_address, const gosling_ip_address* ip_address, gosling_error** error);
-
1283 void gosling_target_address_clone(gosling_target_address** out_target_address, const gosling_target_address* target_address, gosling_error** error);
-
1293 void gosling_context_connect(gosling_context* context, gosling_tcp_socket_t* out_tcp_socket, const gosling_target_address* target_address, gosling_circuit_token_t circuit_token, gosling_error** error);
-
1304 void gosling_ip_address_from_ipv4(gosling_ip_address** out_ip_address, uint8_t a, uint8_t b, uint8_t c, uint8_t d, gosling_error** error);
-
1319 void gosling_ip_address_from_ipv6(gosling_ip_address** out_ip_address, uint16_t a, uint16_t b, uint16_t c, uint16_t d, uint16_t e, uint16_t f, uint16_t g, uint16_t h, gosling_error** error);
-
1328 void gosling_target_address_from_ip_address(gosling_target_address** out_target_address, const gosling_ip_address* ip_address, uint16_t port, gosling_error** error);
-
1339 void gosling_target_address_from_domain(gosling_target_address** out_target_address, const char* domain, size_t domain_length, uint16_t port, gosling_error** error);
-
1348 void gosling_target_address_from_v3_onion_service_id(gosling_target_address** out_target_address, const gosling_v3_onion_service_id* service_id, uint16_t port, gosling_error** error);
-
1357 void gosling_target_address_from_string(gosling_target_address** out_target_address, const char* target_address, size_t target_address_length, gosling_error** error);
-
1367 void gosling_target_address_to_string(const gosling_target_address* target_address, char* out_target_address_string, size_t target_address_string_size, gosling_error** error);
- - -
1383 
-
1384 #ifdef __cplusplus
-
1385 }
-
1386 #endif // __cplusplus
-
1387 
-
1388 #endif // LIBCGOSLING_H
-
void(* gosling_identity_client_handshake_failed_callback_t)(gosling_context *context, gosling_handshake_handle_t handshake_handle, const gosling_error *error)
Definition: cgosling.h:302
+
229 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);
+
238 typedef void(*gosling_tor_bootstrap_completed_callback_t)(void* callback_data, gosling_context* context);
+
249 typedef void(*gosling_tor_log_received_callback_t)(void* callback_data, gosling_context* context, const char* line, size_t line_length);
+
266 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);
+
285 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);
+
305 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);
+
316 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);
+
326 typedef void(*gosling_identity_server_published_callback_t)(void* callback_data, gosling_context* context);
+
336 typedef void(*gosling_identity_server_handshake_started_callback_t)(void* callback_data, gosling_context* context, gosling_handshake_handle_t handshake_handle);
+
350 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);
+
368 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);
+
380 typedef size_t(*gosling_identity_server_handshake_challenge_size_callback_t)(void* callback_data, gosling_context* context, gosling_handshake_handle_t handshake_handle);
+
394 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);
+
410 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);
+
430 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);
+
450 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);
+
461 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);
+
479 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);
+
490 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);
+
504 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);
+
514 typedef void(*gosling_endpoint_server_handshake_started_callback_t)(void* callback_data, gosling_context* context, gosling_handshake_handle_t handshake_handle);
+
533 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);
+
552 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);
+
568 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);
+
579 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);
+
580 
+
581 #ifdef __cplusplus
+
582 extern "C" {
+
583 #endif // __cplusplus
+
584 
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
828 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);
+ + + +
862 void gosling_context_start_endpoint_server(gosling_context* context, const gosling_ed25519_private_key* endpoint_private_key, const char* endpoint_name, size_t endpoint_name_length, const gosling_v3_onion_service_id* client_identity, const gosling_x25519_public_key* client_auth_public_key, gosling_error** error);
+ +
881 gosling_handshake_handle_t gosling_context_begin_identity_handshake(gosling_context* context, const gosling_v3_onion_service_id* identity_service_id, const char* endpoint_name, size_t endpoint_name_length, gosling_error** error);
+ +
901 gosling_handshake_handle_t gosling_context_begin_endpoint_handshake(gosling_context* context, const gosling_v3_onion_service_id* endpoint_service_id, const gosling_x25519_private_key* client_auth_private_key, const char* channel_name, size_t channel_name_length, gosling_error** error);
+ + + + + + + + + + + +
990 void gosling_ed25519_private_key_from_keyblob(gosling_ed25519_private_key** out_private_key, const char* key_blob, size_t key_blob_length, gosling_error** error);
+
1002 void gosling_ed25519_private_key_to_keyblob(const gosling_ed25519_private_key* private_key, char* out_key_blob, size_t key_blob_size, gosling_error** error);
+
1012 void gosling_x25519_private_key_from_base64(gosling_x25519_private_key** out_private_key, const char* base64, size_t base64_length, gosling_error** error);
+
1023 void gosling_x25519_private_key_to_base64(const gosling_x25519_private_key* private_key, char* out_base64, size_t base64_size, gosling_error** error);
+
1033 void gosling_x25519_public_key_from_base32(gosling_x25519_public_key** out_public_key, const char* base32, size_t base32_length, gosling_error** error);
+
1044 void gosling_x25519_public_key_to_base32(const gosling_x25519_public_key* public_key, char* out_base32, size_t base32_size, gosling_error** error);
+
1055 void gosling_v3_onion_service_id_from_string(gosling_v3_onion_service_id** out_service_id, const char* service_id_string, size_t service_id_string_length, gosling_error** error);
+ +
1075 void gosling_v3_onion_service_id_to_string(const gosling_v3_onion_service_id* service_id, char* out_service_id_string, size_t service_id_string_size, gosling_error** error);
+
1085 bool gosling_string_is_valid_v3_onion_service_id(const char* service_id_string, size_t service_id_string_length, gosling_error** error);
+
1093 const char* gosling_error_get_message(const gosling_error* error);
+
1101 void gosling_error_clone(gosling_error** out_error, const gosling_error* orig_error, gosling_error** error);
+ + + + + + + + +
1161 void gosling_proxy_config_new_socks4(gosling_proxy_config** out_proxy_config, const gosling_target_address* proxy_address, gosling_error** error);
+
1175 void gosling_proxy_config_new_socks5(gosling_proxy_config** out_proxy_config, const gosling_target_address* proxy_address, const char* username, size_t username_length, const char* password, size_t password_length, gosling_error** error);
+
1189 void gosling_proxy_config_new_https(gosling_proxy_config** out_proxy_config, const gosling_target_address* proxy_address, const char* username, size_t username_length, const char* password, size_t password_length, gosling_error** error);
+
1203 void gosling_pluggable_transport_config_new(gosling_pluggable_transport_config** out_pluggable_transport_config, const char* transports, size_t transports_length, const char* path_to_binary, size_t path_to_binary_length, gosling_error** error);
+
1213 void gosling_pluggable_transport_config_add_cmdline_option(gosling_pluggable_transport_config* pluggable_transport_config, const char* option, size_t option_length, gosling_error** error);
+
1224 void gosling_bridge_line_from_string(gosling_bridge_line** out_bridge_line, const char* bridge_line, size_t bridge_line_length, gosling_error** error);
+
1234 void gosling_tor_provider_config_new_arti_client_tor_client_config(gosling_tor_provider_config** out_tor_provider_config, const char* arti_client_data_directory, size_t arti_client_data_directory_length, gosling_error** error);
+ +
1254 void gosling_tor_provider_config_new_bundled_legacy_client_config(gosling_tor_provider_config** out_tor_provider_config, const char* tor_bin_path, size_t tor_bin_path_length, const char* tor_working_directory, size_t tor_working_directory_length, gosling_error** error);
+
1268 void gosling_tor_provider_config_new_system_legacy_client_config(gosling_tor_provider_config** out_tor_provider_config, const gosling_ip_address* tor_socks_host, uint16_t tor_socks_port, const gosling_ip_address* tor_control_host, uint16_t tor_control_port, const char* tor_control_passwd, size_t tor_control_passwd_length, gosling_error** error);
+ +
1293 void gosling_tor_provider_config_set_allowed_ports(gosling_tor_provider_config* tor_provider_config, const uint16_t* allowed_ports, size_t allowed_ports_count, gosling_error** error);
+ + + + + +
1350 void gosling_ip_address_clone(gosling_ip_address** out_ip_address, const gosling_ip_address* ip_address, gosling_error** error);
+
1358 void gosling_target_address_clone(gosling_target_address** out_target_address, const gosling_target_address* target_address, gosling_error** error);
+
1368 void gosling_context_connect(gosling_context* context, gosling_tcp_socket_t* out_tcp_socket, const gosling_target_address* target_address, gosling_circuit_token_t circuit_token, gosling_error** error);
+
1379 void gosling_ip_address_from_ipv4(gosling_ip_address** out_ip_address, uint8_t a, uint8_t b, uint8_t c, uint8_t d, gosling_error** error);
+
1394 void gosling_ip_address_from_ipv6(gosling_ip_address** out_ip_address, uint16_t a, uint16_t b, uint16_t c, uint16_t d, uint16_t e, uint16_t f, uint16_t g, uint16_t h, gosling_error** error);
+
1403 void gosling_target_address_from_ip_address(gosling_target_address** out_target_address, const gosling_ip_address* ip_address, uint16_t port, gosling_error** error);
+
1414 void gosling_target_address_from_domain(gosling_target_address** out_target_address, const char* domain, size_t domain_length, uint16_t port, gosling_error** error);
+
1423 void gosling_target_address_from_v3_onion_service_id(gosling_target_address** out_target_address, const gosling_v3_onion_service_id* service_id, uint16_t port, gosling_error** error);
+
1432 void gosling_target_address_from_string(gosling_target_address** out_target_address, const char* target_address, size_t target_address_length, gosling_error** error);
+
1442 void gosling_target_address_to_string(const gosling_target_address* target_address, char* out_target_address_string, size_t target_address_string_size, gosling_error** error);
+ + +
1458 
+
1459 #ifdef __cplusplus
+
1460 }
+
1461 #endif // __cplusplus
+
1462 
+
1463 #endif // LIBCGOSLING_H
void gosling_target_address_from_string(gosling_target_address **out_target_address, const char *target_address, size_t target_address_length, 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_identity_client_handshake_failed_callback_t)(void *callback_data, gosling_context *context, gosling_handshake_handle_t handshake_handle, const gosling_error *error)
Definition: cgosling.h:316
@ ed25519_private_key_keyblob_header_length
Definition: cgosling.h:119
@ ed25519_private_key_keyblob_length
Definition: cgosling.h:123
@ v3_onion_service_id_string_length
Definition: cgosling.h:107
@@ -286,13 +287,18 @@
@ ed25519_private_key_keyblob_size
Definition: cgosling.h:127
struct gosling_x25519_public_key gosling_x25519_public_key
Definition: cgosling.h:201
gosling_circuit_token_t gosling_context_generate_circuit_token(gosling_context *context, 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_endpoint_server_handshake_failed_callback_t)(gosling_context *context, gosling_handshake_handle_t handshake_handle, const gosling_error *error)
Definition: cgosling.h:529
+
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)
Definition: cgosling.h:266
+
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_connect(gosling_context *context, gosling_tcp_socket_t *out_tcp_socket, const gosling_target_address *target_address, gosling_circuit_token_t circuit_token, gosling_error **error)
+
void(* gosling_identity_server_handshake_failed_callback_t)(void *callback_data, gosling_context *context, gosling_handshake_handle_t handshake_handle, const gosling_error *error)
Definition: cgosling.h:461
+
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)
Definition: cgosling.h:504
int gosling_tcp_socket_t
Definition: cgosling.h:209
+
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)
size_t gosling_circuit_token_t
Definition: cgosling.h:213
void gosling_x25519_public_key_from_base32(gosling_x25519_public_key **out_public_key, const char *base32, size_t base32_length, gosling_error **error)
-
void(* gosling_identity_server_handshake_started_callback_t)(gosling_context *context, gosling_handshake_handle_t handshake_handle)
Definition: cgosling.h:318
+
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_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)
Definition: cgosling.h:229
+
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)
Definition: cgosling.h:479
void gosling_tor_provider_config_set_proxy_config(gosling_tor_provider_config *tor_provider_config, const gosling_proxy_config *proxy_config, gosling_error **error)
const char * gosling_error_get_message(const gosling_error *error)
void gosling_error_clone(gosling_error **out_error, const gosling_error *orig_error, gosling_error **error)
@@ -301,124 +307,118 @@
void gosling_v3_onion_service_id_from_ed25519_private_key(gosling_v3_onion_service_id **out_service_id, const gosling_ed25519_private_key *ed25519_private_key, gosling_error **error)
void gosling_proxy_config_new_https(gosling_proxy_config **out_proxy_config, const gosling_target_address *proxy_address, const char *username, size_t username_length, const char *password, size_t password_length, gosling_error **error)
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)
-
void gosling_context_set_tor_log_received_callback(gosling_context *context, gosling_tor_log_received_callback_t callback, gosling_error **error)
void gosling_error_free(gosling_error *error)
void gosling_context_start_identity_server(gosling_context *context, gosling_error **error)
void gosling_target_address_free(gosling_target_address *in_target_address)
void gosling_library_init(gosling_library **out_library, gosling_error **error)
+
void(* gosling_identity_server_published_callback_t)(void *callback_data, gosling_context *context)
Definition: cgosling.h:326
+
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)
Definition: cgosling.h:350
void gosling_v3_onion_service_id_to_string(const gosling_v3_onion_service_id *service_id, char *out_service_id_string, size_t service_id_string_size, gosling_error **error)
-
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)
Definition: cgosling.h:489
void gosling_v3_onion_service_id_from_string(gosling_v3_onion_service_id **out_service_id, const char *service_id_string, size_t service_id_string_length, gosling_error **error)
void gosling_v3_onion_service_id_free(gosling_v3_onion_service_id *in_service_id)
struct gosling_proxy_config gosling_proxy_config
Definition: cgosling.h:177
void gosling_x25519_private_key_clone(gosling_x25519_private_key **out_private_key, const gosling_x25519_private_key *private_key, 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_identity_server_handshake_failed_callback_t)(gosling_context *context, gosling_handshake_handle_t handshake_handle, const gosling_error *error)
Definition: cgosling.h:427
void gosling_tor_provider_config_new_arti_client_tor_client_config(gosling_tor_provider_config **out_tor_provider_config, const char *arti_client_data_directory, size_t arti_client_data_directory_length, gosling_error **error)
struct gosling_ip_address gosling_ip_address
Definition: cgosling.h:165
struct gosling_context gosling_context
Definition: cgosling.h:153
-
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)
Definition: cgosling.h:275
-
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_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_endpoint_server_handshake_failed_callback_t)(void *callback_data, gosling_context *context, gosling_handshake_handle_t handshake_handle, const gosling_error *error)
Definition: cgosling.h:579
void gosling_tor_provider_config_new_bundled_legacy_client_config(gosling_tor_provider_config **out_tor_provider_config, const char *tor_bin_path, size_t tor_bin_path_length, const char *tor_working_directory, size_t tor_working_directory_length, 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_library_free(gosling_library *in_library)
-
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)
Definition: cgosling.h:443
+
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_proxy_config_free(gosling_proxy_config *in_proxy_config)
-
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)
Definition: cgosling.h:346
+
void(* gosling_tor_log_received_callback_t)(void *callback_data, gosling_context *context, const char *line, size_t line_length)
Definition: cgosling.h:249
void gosling_ip_address_clone(gosling_ip_address **out_ip_address, const gosling_ip_address *ip_address, gosling_error **error)
-
void(* gosling_endpoint_client_handshake_failed_callback_t)(gosling_context *context, gosling_handshake_handle_t handshake_handle, const gosling_error *error)
Definition: cgosling.h:452
+
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)
Definition: cgosling.h:568
+
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)
Definition: cgosling.h:430
void gosling_context_stop_identity_server(gosling_context *context, gosling_error **error)
+
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)
Definition: cgosling.h:450
+
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)
+
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)
Definition: cgosling.h:533
+
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_endpoint_server_handshake_started_callback_t)(void *callback_data, gosling_context *context, gosling_handshake_handle_t handshake_handle)
Definition: cgosling.h:514
void gosling_tor_provider_free(gosling_tor_provider *in_tor_provider)
-
void gosling_context_set_tor_bootstrap_completed_callback(gosling_context *context, gosling_tor_bootstrap_completed_callback_t callback, gosling_error **error)
+
void(* gosling_tor_bootstrap_completed_callback_t)(void *callback_data, gosling_context *context)
Definition: cgosling.h:238
void gosling_tor_provider_config_add_pluggable_transport_config(gosling_tor_provider_config *tor_provider_config, const gosling_pluggable_transport_config *pluggable_transport_config, gosling_error **error)
-
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)
Definition: cgosling.h:506
-
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_tor_bootstrap_completed_callback(gosling_context *context, gosling_tor_bootstrap_completed_callback_t callback, void *callback_data, gosling_error **error)
size_t gosling_handshake_handle_t
Definition: cgosling.h:205
struct gosling_bridge_line gosling_bridge_line
Definition: cgosling.h:149
-
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_server_handshake_rejected_callback(gosling_context *context, gosling_identity_server_handshake_rejected_callback_t callback, gosling_error **error)
-
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)
Definition: cgosling.h:418
+
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_pluggable_transport_config_free(gosling_pluggable_transport_config *in_pluggable_transport_config)
+
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_x25519_public_key_free(gosling_x25519_public_key *in_public_key)
void gosling_bridge_line_free(gosling_bridge_line *in_bridge_line)
void gosling_context_abort_endpoint_client_handshake(gosling_context *context, gosling_handshake_handle_t handshake_handle, gosling_error **error)
void gosling_x25519_private_key_to_base64(const gosling_x25519_private_key *private_key, char *out_base64, size_t base64_size, 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_ed25519_private_key_free(gosling_ed25519_private_key *in_private_key)
struct gosling_target_address gosling_target_address
Definition: cgosling.h:181
void gosling_pluggable_transport_config_new(gosling_pluggable_transport_config **out_pluggable_transport_config, const char *transports, size_t transports_length, const char *path_to_binary, size_t path_to_binary_length, gosling_error **error)
void gosling_ed25519_private_key_generate(gosling_ed25519_private_key **out_private_key, 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_endpoint_client_handshake_failed_callback(gosling_context *context, gosling_endpoint_client_handshake_failed_callback_t callback, void *callback_data, gosling_error **error)
void gosling_tor_provider_config_new_mock_client_config(gosling_tor_provider_config **out_tor_provider_config, gosling_error **error)
gosling_handshake_handle_t gosling_context_begin_identity_handshake(gosling_context *context, const gosling_v3_onion_service_id *identity_service_id, const char *endpoint_name, size_t endpoint_name_length, gosling_error **error)
void gosling_tor_provider_config_set_allowed_ports(gosling_tor_provider_config *tor_provider_config, const uint16_t *allowed_ports, size_t allowed_ports_count, 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_abort_identity_client_handshake(gosling_context *context, gosling_handshake_handle_t handshake_handle, gosling_error **error)
void gosling_target_address_from_domain(gosling_target_address **out_target_address, const char *domain, size_t domain_length, uint16_t port, 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_target_address_to_string(const gosling_target_address *target_address, char *out_target_address_string, size_t target_address_string_size, 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_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_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_target_address_from_v3_onion_service_id(gosling_target_address **out_target_address, const gosling_v3_onion_service_id *service_id, uint16_t port, gosling_error **error)
void gosling_ed25519_private_key_from_keyblob(gosling_ed25519_private_key **out_private_key, const char *key_blob, size_t key_blob_length, gosling_error **error)
-
void(* gosling_identity_server_published_callback_t)(gosling_context *context)
Definition: cgosling.h:310
-
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_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)
Definition: cgosling.h:552
struct gosling_pluggable_transport_config gosling_pluggable_transport_config
Definition: cgosling.h:173
-
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)
Definition: cgosling.h:330
void gosling_x25519_private_key_free(gosling_x25519_private_key *in_private_key)
-
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)
Definition: cgosling.h:293
-
void gosling_context_set_tor_bootstrap_status_received_callback(gosling_context *context, gosling_tor_bootstrap_status_received_callback_t callback, gosling_error **error)
+
size_t(* gosling_identity_server_handshake_challenge_size_callback_t)(void *callback_data, gosling_context *context, gosling_handshake_handle_t handshake_handle)
Definition: cgosling.h:380
+
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_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_ip_address_free(gosling_ip_address *in_ip_address)
void gosling_x25519_private_key_from_base64(gosling_x25519_private_key **out_private_key, const char *base64, size_t base64_length, 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_tor_bootstrap_completed_callback_t)(gosling_context *context)
Definition: cgosling.h:234
+
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)
Definition: cgosling.h:394
void gosling_ed25519_private_key_to_keyblob(const gosling_ed25519_private_key *private_key, char *out_key_blob, size_t key_blob_size, 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_endpoint_server_handshake_started_callback(gosling_context *context, gosling_endpoint_server_handshake_started_callback_t callback, void *callback_data, gosling_error **error)
void gosling_target_address_clone(gosling_target_address **out_target_address, const gosling_target_address *target_address, gosling_error **error)
void gosling_x25519_public_key_clone(gosling_x25519_public_key **out_public_key, const gosling_x25519_public_key *public_key, gosling_error **error)
struct gosling_tor_provider gosling_tor_provider
Definition: cgosling.h:185
void gosling_tor_provider_config_add_bridge_line(gosling_tor_provider_config *tor_provider_config, const gosling_bridge_line *bridge_line, gosling_error **error)
void gosling_context_poll_events(gosling_context *context, 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_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)
Definition: cgosling.h:285
+
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_ip_address_from_ipv6(gosling_ip_address **out_ip_address, uint16_t a, uint16_t b, uint16_t c, uint16_t d, uint16_t e, uint16_t f, uint16_t g, uint16_t h, 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_tor_provider_config_free(gosling_tor_provider_config *in_tor_provider_config)
-
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_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)
Definition: cgosling.h:464
void gosling_context_free(gosling_context *in_context)
+
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)
Definition: cgosling.h:410
bool gosling_string_is_valid_v3_onion_service_id(const char *service_id_string, size_t service_id_string_length, gosling_error **error)
void gosling_tor_provider_config_new_system_legacy_client_config(gosling_tor_provider_config **out_tor_provider_config, const gosling_ip_address *tor_socks_host, uint16_t tor_socks_port, const gosling_ip_address *tor_control_host, uint16_t tor_control_port, const char *tor_control_passwd, size_t tor_control_passwd_length, 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_release_circuit_token(gosling_context *context, gosling_circuit_token_t circuit_token, gosling_error **error)
void gosling_context_stop_endpoint_server(gosling_context *context, const gosling_ed25519_private_key *endpoint_private_key, gosling_error **error)
-
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)
Definition: cgosling.h:382
struct gosling_tor_provider_config gosling_tor_provider_config
Definition: cgosling.h:189
-
void(* gosling_endpoint_server_handshake_started_callback_t)(gosling_context *context, gosling_handshake_handle_t handshake_handle)
Definition: cgosling.h:472
+
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_proxy_config_new_socks5(gosling_proxy_config **out_proxy_config, const gosling_target_address *proxy_address, const char *username, size_t username_length, const char *password, size_t password_length, gosling_error **error)
void gosling_ip_address_from_ipv4(gosling_ip_address **out_ip_address, uint8_t a, uint8_t b, uint8_t c, uint8_t d, gosling_error **error)
-
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)
Definition: cgosling.h:400
void gosling_pluggable_transport_config_add_cmdline_option(gosling_pluggable_transport_config *pluggable_transport_config, const char *option, size_t option_length, 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_endpoint_client_handshake_completed_callback(gosling_context *context, gosling_endpoint_client_handshake_completed_callback_t callback, void *callback_data, gosling_error **error)
void gosling_bridge_line_from_string(gosling_bridge_line **out_bridge_line, const char *bridge_line, size_t bridge_line_length, gosling_error **error)
void gosling_x25519_public_key_to_base32(const gosling_x25519_public_key *public_key, char *out_base32, size_t base32_size, gosling_error **error)
-
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)
Definition: cgosling.h:368
-
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)
Definition: cgosling.h:258
+
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_ed25519_private_key_clone(gosling_ed25519_private_key **out_private_key, const gosling_ed25519_private_key *private_key, gosling_error **error)
-
size_t(* gosling_identity_server_handshake_challenge_size_callback_t)(gosling_context *context, gosling_handshake_handle_t handshake_handle)
Definition: cgosling.h:356
-
void(* gosling_tor_log_received_callback_t)(gosling_context *context, const char *line, size_t line_length)
Definition: cgosling.h:243
struct gosling_library gosling_library
Definition: cgosling.h:169
+
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_start_endpoint_server(gosling_context *context, const gosling_ed25519_private_key *endpoint_private_key, const char *endpoint_name, size_t endpoint_name_length, const gosling_v3_onion_service_id *client_identity, const gosling_x25519_public_key *client_auth_public_key, gosling_error **error)
+
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)
Definition: cgosling.h:305
void gosling_v3_onion_service_id_clone(gosling_v3_onion_service_id **out_service_id, const gosling_v3_onion_service_id *service_id, 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_identity_server_handshake_started_callback_t)(void *callback_data, gosling_context *context, gosling_handshake_handle_t handshake_handle)
Definition: cgosling.h:336
void gosling_context_bootstrap_tor(gosling_context *context, gosling_error **error)
struct gosling_x25519_private_key gosling_x25519_private_key
Definition: cgosling.h:197
void gosling_tor_provider_from_tor_provider_config(gosling_tor_provider **out_tor_provider, const gosling_tor_provider_config *tor_provider_config, gosling_error **error)
-
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)
Definition: cgosling.h:227
-
void gosling_context_set_identity_server_client_allowed_callback(gosling_context *context, gosling_identity_server_handshake_client_allowed_callback_t callback, gosling_error **error)
+
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)
Definition: cgosling.h:368
void gosling_target_address_from_ip_address(gosling_target_address **out_target_address, const gosling_ip_address *ip_address, uint16_t port, gosling_error **error)
struct gosling_v3_onion_service_id gosling_v3_onion_service_id
Definition: cgosling.h:193
+
void(* gosling_endpoint_client_handshake_failed_callback_t)(void *callback_data, gosling_context *context, gosling_handshake_handle_t handshake_handle, const gosling_error *error)
Definition: cgosling.h:490
struct gosling_error gosling_error
Definition: cgosling.h:161
-
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)
Definition: cgosling.h:520
gosling_handshake_handle_t gosling_context_begin_endpoint_handshake(gosling_context *context, const gosling_v3_onion_service_id *endpoint_service_id, const gosling_x25519_private_key *client_auth_private_key, const char *channel_name, size_t channel_name_length, 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_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_rejected_callback(gosling_context *context, gosling_identity_server_handshake_rejected_callback_t callback, void *callback_data, gosling_error **error)

source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where + 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
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
§

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 + 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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +function.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where 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

Enum gosling::context::Error

source ·
pub enum Error {
-    InvalidArgument(String),
+Error in gosling::context - Rust

Enum gosling::context::Error

source ·
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 Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Error

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for Error

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Error> for Error

source§

fn from(source: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(source: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(source: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(source: Error) -> Self

Converts to this type from the input type.

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> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where - T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where +

Trait Implementations§

source§

impl Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Error

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for Error

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
source§

impl From<Error> for Error

source§

fn from(source: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(source: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(source: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(source: Error) -> Self

Converts to this type from the input type.

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> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, - constructed: bool, - tag: u32, -) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where - 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 + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where + 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
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
§

impl<E> ErrorReport for E
where - E: Error + 'static,

§

fn report(&self) -> Report<ReportHelper<'_>>

Return an object that displays the error and its causes
§

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 + E: Error + 'static,
§

fn report(&self) -> Report<ReportHelper<'_>>

Return an object that displays the error and its causes
§

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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
source§

impl<T> ToString for T
where - T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> TryIntoSlug for T
where - T: ToString + ?Sized,

§

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 T
where +function.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
source§

impl<T> ToString for T
where + T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> TryIntoSlug for T
where + T: ToString + ?Sized,

§

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 T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where 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

Module gosling::context

source ·
Expand description

Implementation of the Gosling protocol

-

Structs§

  • The gosling protocol implementation.

Enums§

Type Aliases§

\ No newline at end of file +gosling::context - Rust

Module gosling::context

source ·
Expand description

Implementation of the Gosling protocol

+

Structs§

  • The gosling protocol implementation.

Enums§

Type Aliases§

\ 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

Struct gosling::context::Context

source ·
pub struct Context { /* private fields */ }
Expand description

The gosling protocol implementation.

+Context in gosling::context - Rust

Struct gosling::context::Context

source ·
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

source

pub 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.

    -
source

pub fn bootstrap(&mut self) -> Result<(), Error>

Initiate bootstrap of the Context’s owned TorProvider. Bootstrap status is communicated through ContextEvents returned from the Context::update() method.

+
source

pub fn bootstrap(&mut self) -> Result<(), Error>

Initiate bootstrap of the Context’s owned TorProvider. Bootstrap status is communicated through ContextEvents returned from the Context::update() method.

source

pub 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 ContextEvents returned from the Context::update() method.

+ endpoint: String, +) -> Result<HandshakeHandle, Error>

Initiate an identity handshake with an identity server. Handshake progression is communicated through ContextEvents 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
source

pub 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.
    -
source

pub fn identity_server_start(&mut self) -> Result<(), Error>

Start this Context’s identity server. Publish status is communicated through ContextEvents returned from the Context::update() method.

-
source

pub fn identity_server_stop(&mut self) -> Result<(), Error>

Stops this Context’s identity server and ends any in-progress incoming identity handshakes.

+
source

pub fn identity_server_start(&mut self) -> Result<(), Error>

Start this Context’s identity server. Publish status is communicated through ContextEvents returned from the Context::update() method.

+
source

pub fn identity_server_stop(&mut self) -> Result<(), Error>

Stops this Context’s identity server and ends any in-progress incoming identity handshakes.

source

pub 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
source

pub 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 ContextEvents 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 ContextEvents 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
source

pub 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
source

pub 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 ContextEvents returned from the Context::update() method.

+) -> Result<(), Error>

Start one of this Context’s endpoint servers. Publish status is communicated through ContextEvents 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
source

pub 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
source

pub 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
source

pub 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.

source

pub fn generate_circuit_token(&mut self) -> CircuitToken

A direct pass-through to the underlying TorProvider’s TorProvider::generate_token() method.

source

pub fn release_circuit_token(&mut self, circuit_token: CircuitToken)

A direct pass-through to the underlying TorProvider’s TorProvider::release_token() method.

-
source

pub 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 ContextEvents.

-

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where - T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where +

source

pub 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 ContextEvents.

+

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, - constructed: bool, - tag: u32, -) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where - 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 + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where + 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 Display implementation when + 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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +function.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where 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

Crate gosling

source ·
Expand description

§Gosling

+gosling - Rust

Crate gosling

source ·
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:

§

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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - 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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

+From<T> for U chooses to do.

§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
source§

impl<T> ToString for T
where - T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +function.

§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
source§

impl<T> ToString for T
where + T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ 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

Enum honk_rpc::honk_rpc::ErrorCode

source ·
pub enum ErrorCode {
+ErrorCode in honk_rpc::honk_rpc - Rust

Enum honk_rpc::honk_rpc::ErrorCode

source ·
pub enum ErrorCode {
 
Show 14 variants BsonParseFailed, MessageTooBig, MessageParseFailed, @@ -11,8 +11,8 @@ RequestVersionInvalid, ResponseCookieInvalid, ResponseStateInvalid, - Runtime(i32), - Unknown(i32), + Runtime(i32), + Unknown(i32),
}
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 Debug for ErrorCode

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for ErrorCode

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
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 more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<ErrorCode> for i32

source§

fn from(err: ErrorCode) -> Self

Converts to this type from the input type.
source§

impl From<i32> for ErrorCode

source§

fn from(value: i32) -> ErrorCode

Converts to this type from the input type.
source§

impl PartialEq for ErrorCode

source§

fn eq(&self, other: &ErrorCode) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Eq for ErrorCode

source§

impl StructuralPartialEq for ErrorCode

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

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
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

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 +
§

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 Debug for ErrorCode

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for ErrorCode

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
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 more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
source§

impl From<ErrorCode> for i32

source§

fn from(err: ErrorCode) -> Self

Converts to this type from the input type.
source§

impl From<i32> for ErrorCode

source§

fn from(value: i32) -> ErrorCode

Converts to this type from the input type.
source§

impl PartialEq for ErrorCode

source§

fn eq(&self, other: &ErrorCode) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
source§

impl Eq for ErrorCode

source§

impl StructuralPartialEq for ErrorCode

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

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
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - 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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

+From<T> for U chooses to do.

§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
source§

impl<T> ToString for T
where - T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +function.

§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
source§

impl<T> ToString for T
where + T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ 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

Enum honk_rpc::honk_rpc::Response

source ·
pub enum Response {
+Response in honk_rpc::honk_rpc - Rust

Enum honk_rpc::honk_rpc::Response

source ·
pub enum Response {
     Pending {
         cookie: RequestCookie,
     },
     Success {
         cookie: RequestCookie,
-        result: Option<Bson>,
+        result: Option<Bson>,
     },
     Error {
         cookie: RequestCookie,
@@ -15,98 +15,98 @@
 

Fields

§cookie: RequestCookie

The cookie associated with the request.

§

Success

A successful response, containing the result of the request.

Fields

§cookie: RequestCookie

The cookie associated with the request.

-
§result: Option<Bson>

The result of the request.

+
§result: Option<Bson>

The result of the request.

§

Error

An error response, containing the error code.

Fields

§cookie: RequestCookie

The cookie associated with the request.

§error_code: ErrorCode

The error code indicating the type of error that occurred.

-

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

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§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - 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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

+From<T> for U chooses to do.

§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +function.

§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ 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

Module honk_rpc::honk_rpc

source ·

Structs§

  • The object that handles the communication between two endpoints using the +honk_rpc::honk_rpc - Rust

    Module honk_rpc::honk_rpc

    source ·

    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§

    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§

    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

Struct honk_rpc::honk_rpc::Session

source ·
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

Struct honk_rpc::honk_rpc::Session

source ·
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>
where - RW: Read + Write + Send,

source

pub 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.

-
source

pub 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.

-
source

pub 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.

-
source

pub 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.

+
source

pub 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.

+
source

pub 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.

+
source

pub 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.

source

pub fn new(stream: RW) -> Self

Creates a new Session using the given stream.

source

pub fn into_stream(self) -> RW

Consumes the Session and returns the underlying stream.

source

pub 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.

source

pub 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.

-
source

pub fn client_drain_responses(&mut self) -> Drain<'_, Response>

Drains all Response objects resulting from prevoius invocations of Session::client_call()

-
source

pub 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> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

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.

+
source

pub fn client_drain_responses(&mut self) -> Drain<'_, Response>

Drains all Response objects resulting from prevoius invocations of Session::client_call()

+
source

pub 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> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - 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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

+From<T> for U chooses to do.

§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +function.

§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ 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

Trait honk_rpc::honk_rpc::ApiSet

source ·
pub trait ApiSet {
+ApiSet in honk_rpc::honk_rpc - Rust

Trait honk_rpc::honk_rpc::ApiSet

source ·
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>)> { ... }
 }
Expand description

The ApiSet trait represents a set of APIs that can be remotely invoked by a connecting Honk-RPC client.

§Example

This exampe ApiSet implements two methods, example::println() and example::async_println(). The @@ -101,14 +101,14 @@

§Example

} } }
-

Required Methods§

source

fn namespace(&self) -> &str

Returns the namespace of this ApiSet.

+

Required Methods§

source

fn namespace(&self) -> &str

Returns the namespace of this ApiSet.

source

fn 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.

source

fn 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

    Crate honk_rpc

    source ·
    Expand description

    §Honk-RPC

    +honk_rpc - Rust

    Crate honk_rpc

    source ·
    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
    1
     2
     3
     4
    diff --git a/crates/src/gosling/identity_server.rs.html b/crates/src/gosling/identity_server.rs.html
    index a2760e9c..2fb64d4f 100644
    --- a/crates/src/gosling/identity_server.rs.html
    +++ b/crates/src/gosling/identity_server.rs.html
    @@ -1,4 +1,4 @@
    -identity_server.rs - source
    1
    +identity_server.rs - source
    1
     2
     3
     4
    diff --git a/crates/src/gosling/lib.rs.html b/crates/src/gosling/lib.rs.html
    index d6e4398a..b8ba5375 100644
    --- a/crates/src/gosling/lib.rs.html
    +++ b/crates/src/gosling/lib.rs.html
    @@ -1,4 +1,4 @@
    -lib.rs - source
    1
    +lib.rs - source
    1
     2
     3
     4
    diff --git a/crates/src/honk_rpc/byte_counter.rs.html b/crates/src/honk_rpc/byte_counter.rs.html
    index 4705158f..8e61bd06 100644
    --- a/crates/src/honk_rpc/byte_counter.rs.html
    +++ b/crates/src/honk_rpc/byte_counter.rs.html
    @@ -1,4 +1,4 @@
    -byte_counter.rs - source
    1
    +byte_counter.rs - source
    1
     2
     3
     4
    diff --git a/crates/src/honk_rpc/honk_rpc.rs.html b/crates/src/honk_rpc/honk_rpc.rs.html
    index 4d8702fc..8b2ebde9 100644
    --- a/crates/src/honk_rpc/honk_rpc.rs.html
    +++ b/crates/src/honk_rpc/honk_rpc.rs.html
    @@ -1,4 +1,4 @@
    -honk_rpc.rs - source
    1
    +honk_rpc.rs - source
    1
     2
     3
     4
    diff --git a/crates/src/honk_rpc/lib.rs.html b/crates/src/honk_rpc/lib.rs.html
    index a93b405a..50cbb807 100644
    --- a/crates/src/honk_rpc/lib.rs.html
    +++ b/crates/src/honk_rpc/lib.rs.html
    @@ -1,4 +1,4 @@
    -lib.rs - source
    1
    +lib.rs - source
    1
     2
     3
     4
    diff --git a/crates/src/tor_interface/arti_client_tor_client.rs.html b/crates/src/tor_interface/arti_client_tor_client.rs.html
    index ca66df54..dbc35af1 100644
    --- a/crates/src/tor_interface/arti_client_tor_client.rs.html
    +++ b/crates/src/tor_interface/arti_client_tor_client.rs.html
    @@ -1,4 +1,4 @@
    -arti_client_tor_client.rs - source
    1
    +arti_client_tor_client.rs - source
    1
     2
     3
     4
    diff --git a/crates/src/tor_interface/censorship_circumvention.rs.html b/crates/src/tor_interface/censorship_circumvention.rs.html
    index 37338d15..fc4c9bda 100644
    --- a/crates/src/tor_interface/censorship_circumvention.rs.html
    +++ b/crates/src/tor_interface/censorship_circumvention.rs.html
    @@ -1,4 +1,4 @@
    -censorship_circumvention.rs - source
    1
    +censorship_circumvention.rs - source
    1
     2
     3
     4
    diff --git a/crates/src/tor_interface/legacy_tor_client.rs.html b/crates/src/tor_interface/legacy_tor_client.rs.html
    index aca41776..1d0b2d18 100644
    --- a/crates/src/tor_interface/legacy_tor_client.rs.html
    +++ b/crates/src/tor_interface/legacy_tor_client.rs.html
    @@ -1,4 +1,4 @@
    -legacy_tor_client.rs - source
    1
    +legacy_tor_client.rs - source
    1
     2
     3
     4
    diff --git a/crates/src/tor_interface/legacy_tor_control_stream.rs.html b/crates/src/tor_interface/legacy_tor_control_stream.rs.html
    index 42423dea..bbd92f5d 100644
    --- a/crates/src/tor_interface/legacy_tor_control_stream.rs.html
    +++ b/crates/src/tor_interface/legacy_tor_control_stream.rs.html
    @@ -1,4 +1,4 @@
    -legacy_tor_control_stream.rs - source
    1
    +legacy_tor_control_stream.rs - source
    1
     2
     3
     4
    diff --git a/crates/src/tor_interface/legacy_tor_controller.rs.html b/crates/src/tor_interface/legacy_tor_controller.rs.html
    index 8e23097f..56be8532 100644
    --- a/crates/src/tor_interface/legacy_tor_controller.rs.html
    +++ b/crates/src/tor_interface/legacy_tor_controller.rs.html
    @@ -1,4 +1,4 @@
    -legacy_tor_controller.rs - source
    1
    +legacy_tor_controller.rs - source
    1
     2
     3
     4
    diff --git a/crates/src/tor_interface/legacy_tor_process.rs.html b/crates/src/tor_interface/legacy_tor_process.rs.html
    index 8c65bc15..7aeb9544 100644
    --- a/crates/src/tor_interface/legacy_tor_process.rs.html
    +++ b/crates/src/tor_interface/legacy_tor_process.rs.html
    @@ -1,4 +1,4 @@
    -legacy_tor_process.rs - source
    1
    +legacy_tor_process.rs - source
    1
     2
     3
     4
    diff --git a/crates/src/tor_interface/legacy_tor_version.rs.html b/crates/src/tor_interface/legacy_tor_version.rs.html
    index 2c8629ac..5bab5be5 100644
    --- a/crates/src/tor_interface/legacy_tor_version.rs.html
    +++ b/crates/src/tor_interface/legacy_tor_version.rs.html
    @@ -1,4 +1,4 @@
    -legacy_tor_version.rs - source
    1
    +legacy_tor_version.rs - source
    1
     2
     3
     4
    diff --git a/crates/src/tor_interface/lib.rs.html b/crates/src/tor_interface/lib.rs.html
    index 42dde62a..b5a330f0 100644
    --- a/crates/src/tor_interface/lib.rs.html
    +++ b/crates/src/tor_interface/lib.rs.html
    @@ -1,4 +1,4 @@
    -lib.rs - source
    1
    +lib.rs - source
    1
     2
     3
     4
    diff --git a/crates/src/tor_interface/mock_tor_client.rs.html b/crates/src/tor_interface/mock_tor_client.rs.html
    index 5e9cef7f..9c93bccf 100644
    --- a/crates/src/tor_interface/mock_tor_client.rs.html
    +++ b/crates/src/tor_interface/mock_tor_client.rs.html
    @@ -1,4 +1,4 @@
    -mock_tor_client.rs - source
    1
    +mock_tor_client.rs - source
    1
     2
     3
     4
    diff --git a/crates/src/tor_interface/proxy.rs.html b/crates/src/tor_interface/proxy.rs.html
    index 87664d4b..4b05c7ef 100644
    --- a/crates/src/tor_interface/proxy.rs.html
    +++ b/crates/src/tor_interface/proxy.rs.html
    @@ -1,4 +1,4 @@
    -proxy.rs - source
    1
    +proxy.rs - source
    1
     2
     3
     4
    diff --git a/crates/src/tor_interface/tor_crypto.rs.html b/crates/src/tor_interface/tor_crypto.rs.html
    index 2e2d8d20..04d85901 100644
    --- a/crates/src/tor_interface/tor_crypto.rs.html
    +++ b/crates/src/tor_interface/tor_crypto.rs.html
    @@ -1,4 +1,4 @@
    -tor_crypto.rs - source
    1
    +tor_crypto.rs - source
    1
     2
     3
     4
    diff --git a/crates/src/tor_interface/tor_provider.rs.html b/crates/src/tor_interface/tor_provider.rs.html
    index 498c51d9..7809b145 100644
    --- a/crates/src/tor_interface/tor_provider.rs.html
    +++ b/crates/src/tor_interface/tor_provider.rs.html
    @@ -1,4 +1,4 @@
    -tor_provider.rs - source
    1
    +tor_provider.rs - source
    1
     2
     3
     4
    diff --git a/crates/static.files/main-921df33f47b8780c.js b/crates/static.files/main-921df33f47b8780c.js
    new file mode 100644
    index 00000000..c3155548
    --- /dev/null
    +++ b/crates/static.files/main-921df33f47b8780c.js
    @@ -0,0 +1,11 @@
    +"use strict";window.RUSTDOC_TOOLTIP_HOVER_MS=300;window.RUSTDOC_TOOLTIP_HOVER_EXIT_MS=450;function resourcePath(basename,extension){return getVar("root-path")+basename+getVar("resource-suffix")+extension}function hideMain(){addClass(document.getElementById(MAIN_ID),"hidden")}function showMain(){removeClass(document.getElementById(MAIN_ID),"hidden")}function blurHandler(event,parentElem,hideCallback){if(!parentElem.contains(document.activeElement)&&!parentElem.contains(event.relatedTarget)){hideCallback()}}window.rootPath=getVar("root-path");window.currentCrate=getVar("current-crate");function setMobileTopbar(){const mobileTopbar=document.querySelector(".mobile-topbar");const locationTitle=document.querySelector(".sidebar h2.location");if(mobileTopbar){const mobileTitle=document.createElement("h2");mobileTitle.className="location";if(hasClass(document.querySelector(".rustdoc"),"crate")){mobileTitle.innerHTML=`Crate ${window.currentCrate}`}else if(locationTitle){mobileTitle.innerHTML=locationTitle.innerHTML}mobileTopbar.appendChild(mobileTitle)}}function getVirtualKey(ev){if("key"in ev&&typeof ev.key!=="undefined"){return ev.key}const c=ev.charCode||ev.keyCode;if(c===27){return"Escape"}return String.fromCharCode(c)}const MAIN_ID="main-content";const SETTINGS_BUTTON_ID="settings-menu";const ALTERNATIVE_DISPLAY_ID="alternative-display";const NOT_DISPLAYED_ID="not-displayed";const HELP_BUTTON_ID="help-button";function getSettingsButton(){return document.getElementById(SETTINGS_BUTTON_ID)}function getHelpButton(){return document.getElementById(HELP_BUTTON_ID)}function getNakedUrl(){return window.location.href.split("?")[0].split("#")[0]}function insertAfter(newNode,referenceNode){referenceNode.parentNode.insertBefore(newNode,referenceNode.nextSibling)}function getOrCreateSection(id,classes){let el=document.getElementById(id);if(!el){el=document.createElement("section");el.id=id;el.className=classes;insertAfter(el,document.getElementById(MAIN_ID))}return el}function getAlternativeDisplayElem(){return getOrCreateSection(ALTERNATIVE_DISPLAY_ID,"content hidden")}function getNotDisplayedElem(){return getOrCreateSection(NOT_DISPLAYED_ID,"hidden")}function switchDisplayedElement(elemToDisplay){const el=getAlternativeDisplayElem();if(el.children.length>0){getNotDisplayedElem().appendChild(el.firstElementChild)}if(elemToDisplay===null){addClass(el,"hidden");showMain();return}el.appendChild(elemToDisplay);hideMain();removeClass(el,"hidden")}function browserSupportsHistoryApi(){return window.history&&typeof window.history.pushState==="function"}function preLoadCss(cssUrl){const link=document.createElement("link");link.href=cssUrl;link.rel="preload";link.as="style";document.getElementsByTagName("head")[0].appendChild(link)}(function(){const isHelpPage=window.location.pathname.endsWith("/help.html");function loadScript(url,errorCallback){const script=document.createElement("script");script.src=url;if(errorCallback!==undefined){script.onerror=errorCallback}document.head.append(script)}getSettingsButton().onclick=event=>{if(event.ctrlKey||event.altKey||event.metaKey){return}window.hideAllModals(false);addClass(getSettingsButton(),"rotate");event.preventDefault();loadScript(getVar("static-root-path")+getVar("settings-js"));setTimeout(()=>{const themes=getVar("themes").split(",");for(const theme of themes){if(theme!==""){preLoadCss(getVar("root-path")+theme+".css")}}},0)};window.searchState={loadingText:"Loading search results...",input:document.getElementsByClassName("search-input")[0],outputElement:()=>{let el=document.getElementById("search");if(!el){el=document.createElement("section");el.id="search";getNotDisplayedElem().appendChild(el)}return el},title:document.title,titleBeforeSearch:document.title,timeout:null,currentTab:0,focusedByTab:[null,null,null],clearInputTimeout:()=>{if(searchState.timeout!==null){clearTimeout(searchState.timeout);searchState.timeout=null}},isDisplayed:()=>searchState.outputElement().parentElement.id===ALTERNATIVE_DISPLAY_ID,focus:()=>{searchState.input.focus()},defocus:()=>{searchState.input.blur()},showResults:search=>{if(search===null||typeof search==="undefined"){search=searchState.outputElement()}switchDisplayedElement(search);searchState.mouseMovedAfterSearch=false;document.title=searchState.title},removeQueryParameters:()=>{document.title=searchState.titleBeforeSearch;if(browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.hash)}},hideResults:()=>{switchDisplayedElement(null);searchState.removeQueryParameters()},getQueryStringParams:()=>{const params={};window.location.search.substring(1).split("&").map(s=>{const pair=s.split("=").map(x=>x.replace(/\+/g," "));params[decodeURIComponent(pair[0])]=typeof pair[1]==="undefined"?null:decodeURIComponent(pair[1])});return params},setup:()=>{const search_input=searchState.input;if(!searchState.input){return}let searchLoaded=false;function sendSearchForm(){document.getElementsByClassName("search-form")[0].submit()}function loadSearch(){if(!searchLoaded){searchLoaded=true;loadScript(getVar("static-root-path")+getVar("search-js"),sendSearchForm);loadScript(resourcePath("search-index",".js"),sendSearchForm)}}search_input.addEventListener("focus",()=>{search_input.origPlaceholder=search_input.placeholder;search_input.placeholder="Type your search here.";loadSearch()});if(search_input.value!==""){loadSearch()}const params=searchState.getQueryStringParams();if(params.search!==undefined){searchState.setLoadingSearch();loadSearch()}},setLoadingSearch:()=>{const search=searchState.outputElement();search.innerHTML="

    "+searchState.loadingText+"

    ";searchState.showResults(search)},descShards:new Map(),loadDesc:async function({descShard,descIndex}){if(descShard.promise===null){descShard.promise=new Promise((resolve,reject)=>{descShard.resolve=resolve;const ds=descShard;const fname=`${ds.crate}-desc-${ds.shard}-`;const url=resourcePath(`search.desc/${descShard.crate}/${fname}`,".js",);loadScript(url,reject)})}const list=await descShard.promise;return list[descIndex]},loadedDescShard:function(crate,shard,data){this.descShards.get(crate)[shard].resolve(data.split("\n"))},};const toggleAllDocsId="toggle-all-docs";let savedHash="";function handleHashes(ev){if(ev!==null&&searchState.isDisplayed()&&ev.newURL){switchDisplayedElement(null);const hash=ev.newURL.slice(ev.newURL.indexOf("#")+1);if(browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.search+"#"+hash)}const elem=document.getElementById(hash);if(elem){elem.scrollIntoView()}}const pageId=window.location.hash.replace(/^#/,"");if(savedHash!==pageId){savedHash=pageId;if(pageId!==""){expandSection(pageId)}}if(savedHash.startsWith("impl-")){const splitAt=savedHash.indexOf("/");if(splitAt!==-1){const implId=savedHash.slice(0,splitAt);const assocId=savedHash.slice(splitAt+1);const implElems=document.querySelectorAll(`details > summary > section[id^="${implId}"]`,);onEachLazy(implElems,implElem=>{const numbered=/^(.+?)-([0-9]+)$/.exec(implElem.id);if(implElem.id!==implId&&(!numbered||numbered[1]!==implId)){return false}return onEachLazy(implElem.parentElement.parentElement.querySelectorAll(`[id^="${assocId}"]`),item=>{const numbered=/^(.+?)-([0-9]+)$/.exec(item.id);if(item.id===assocId||(numbered&&numbered[1]===assocId)){openParentDetails(item);item.scrollIntoView();setTimeout(()=>{window.location.replace("#"+item.id)},0);return true}},)})}}}function onHashChange(ev){hideSidebar();handleHashes(ev)}function openParentDetails(elem){while(elem){if(elem.tagName==="DETAILS"){elem.open=true}elem=elem.parentNode}}function expandSection(id){openParentDetails(document.getElementById(id))}function handleEscape(ev){searchState.clearInputTimeout();searchState.hideResults();ev.preventDefault();searchState.defocus();window.hideAllModals(true)}function handleShortcut(ev){const disableShortcuts=getSettingValue("disable-shortcuts")==="true";if(ev.ctrlKey||ev.altKey||ev.metaKey||disableShortcuts){return}if(document.activeElement.tagName==="INPUT"&&document.activeElement.type!=="checkbox"&&document.activeElement.type!=="radio"){switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break}}else{switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break;case"s":case"S":case"/":ev.preventDefault();searchState.focus();break;case"+":ev.preventDefault();expandAllDocs();break;case"-":ev.preventDefault();collapseAllDocs();break;case"?":showHelp();break;default:break}}}document.addEventListener("keypress",handleShortcut);document.addEventListener("keydown",handleShortcut);function addSidebarItems(){if(!window.SIDEBAR_ITEMS){return}const sidebar=document.getElementsByClassName("sidebar-elems")[0];function block(shortty,id,longty){const filtered=window.SIDEBAR_ITEMS[shortty];if(!filtered){return}const modpath=hasClass(document.querySelector(".rustdoc"),"mod")?"../":"";const h3=document.createElement("h3");h3.innerHTML=`${longty}`;const ul=document.createElement("ul");ul.className="block "+shortty;for(const name of filtered){let path;if(shortty==="mod"){path=`${modpath}${name}/index.html`}else{path=`${modpath}${shortty}.${name}.html`}let current_page=document.location.href.toString();if(current_page.endsWith("/")){current_page+="index.html"}const link=document.createElement("a");link.href=path;link.textContent=name;const li=document.createElement("li");if(link.href===current_page){li.classList.add("current")}li.appendChild(link);ul.appendChild(li)}sidebar.appendChild(h3);sidebar.appendChild(ul)}if(sidebar){block("primitive","primitives","Primitive Types");block("mod","modules","Modules");block("macro","macros","Macros");block("struct","structs","Structs");block("enum","enums","Enums");block("constant","constants","Constants");block("static","static","Statics");block("trait","traits","Traits");block("fn","functions","Functions");block("type","types","Type Aliases");block("union","unions","Unions");block("foreigntype","foreign-types","Foreign Types");block("keyword","keywords","Keywords");block("attr","attributes","Attribute Macros");block("derive","derives","Derive Macros");block("traitalias","trait-aliases","Trait Aliases")}}window.register_implementors=imp=>{const implementors=document.getElementById("implementors-list");const synthetic_implementors=document.getElementById("synthetic-implementors-list");const inlined_types=new Set();const TEXT_IDX=0;const SYNTHETIC_IDX=1;const TYPES_IDX=2;if(synthetic_implementors){onEachLazy(synthetic_implementors.getElementsByClassName("impl"),el=>{const aliases=el.getAttribute("data-aliases");if(!aliases){return}aliases.split(",").forEach(alias=>{inlined_types.add(alias)})})}let currentNbImpls=implementors.getElementsByClassName("impl").length;const traitName=document.querySelector(".main-heading h1 > .trait").textContent;const baseIdName="impl-"+traitName+"-";const libs=Object.getOwnPropertyNames(imp);const script=document.querySelector("script[data-ignore-extern-crates]");const ignoreExternCrates=new Set((script?script.getAttribute("data-ignore-extern-crates"):"").split(","),);for(const lib of libs){if(lib===window.currentCrate||ignoreExternCrates.has(lib)){continue}const structs=imp[lib];struct_loop:for(const struct of structs){const list=struct[SYNTHETIC_IDX]?synthetic_implementors:implementors;if(struct[SYNTHETIC_IDX]){for(const struct_type of struct[TYPES_IDX]){if(inlined_types.has(struct_type)){continue struct_loop}inlined_types.add(struct_type)}}const code=document.createElement("h3");code.innerHTML=struct[TEXT_IDX];addClass(code,"code-header");onEachLazy(code.getElementsByTagName("a"),elem=>{const href=elem.getAttribute("href");if(href&&!href.startsWith("#")&&!/^(?:[a-z+]+:)?\/\//.test(href)){elem.setAttribute("href",window.rootPath+href)}});const currentId=baseIdName+currentNbImpls;const anchor=document.createElement("a");anchor.href="#"+currentId;addClass(anchor,"anchor");const display=document.createElement("div");display.id=currentId;addClass(display,"impl");display.appendChild(anchor);display.appendChild(code);list.appendChild(display);currentNbImpls+=1}}};if(window.pending_implementors){window.register_implementors(window.pending_implementors)}window.register_type_impls=imp=>{if(!imp||!imp[window.currentCrate]){return}window.pending_type_impls=null;const idMap=new Map();let implementations=document.getElementById("implementations-list");let trait_implementations=document.getElementById("trait-implementations-list");let trait_implementations_header=document.getElementById("trait-implementations");const script=document.querySelector("script[data-self-path]");const selfPath=script?script.getAttribute("data-self-path"):null;const mainContent=document.querySelector("#main-content");const sidebarSection=document.querySelector(".sidebar section");let methods=document.querySelector(".sidebar .block.method");let associatedTypes=document.querySelector(".sidebar .block.associatedtype");let associatedConstants=document.querySelector(".sidebar .block.associatedconstant");let sidebarTraitList=document.querySelector(".sidebar .block.trait-implementation");for(const impList of imp[window.currentCrate]){const types=impList.slice(2);const text=impList[0];const isTrait=impList[1]!==0;const traitName=impList[1];if(types.indexOf(selfPath)===-1){continue}let outputList=isTrait?trait_implementations:implementations;if(outputList===null){const outputListName=isTrait?"Trait Implementations":"Implementations";const outputListId=isTrait?"trait-implementations-list":"implementations-list";const outputListHeaderId=isTrait?"trait-implementations":"implementations";const outputListHeader=document.createElement("h2");outputListHeader.id=outputListHeaderId;outputListHeader.innerText=outputListName;outputList=document.createElement("div");outputList.id=outputListId;if(isTrait){const link=document.createElement("a");link.href=`#${outputListHeaderId}`;link.innerText="Trait Implementations";const h=document.createElement("h3");h.appendChild(link);trait_implementations=outputList;trait_implementations_header=outputListHeader;sidebarSection.appendChild(h);sidebarTraitList=document.createElement("ul");sidebarTraitList.className="block trait-implementation";sidebarSection.appendChild(sidebarTraitList);mainContent.appendChild(outputListHeader);mainContent.appendChild(outputList)}else{implementations=outputList;if(trait_implementations){mainContent.insertBefore(outputListHeader,trait_implementations_header);mainContent.insertBefore(outputList,trait_implementations_header)}else{const mainContent=document.querySelector("#main-content");mainContent.appendChild(outputListHeader);mainContent.appendChild(outputList)}}}const template=document.createElement("template");template.innerHTML=text;onEachLazy(template.content.querySelectorAll("a"),elem=>{const href=elem.getAttribute("href");if(href&&!href.startsWith("#")&&!/^(?:[a-z+]+:)?\/\//.test(href)){elem.setAttribute("href",window.rootPath+href)}});onEachLazy(template.content.querySelectorAll("[id]"),el=>{let i=0;if(idMap.has(el.id)){i=idMap.get(el.id)}else if(document.getElementById(el.id)){i=1;while(document.getElementById(`${el.id}-${2 * i}`)){i=2*i}while(document.getElementById(`${el.id}-${i}`)){i+=1}}if(i!==0){const oldHref=`#${el.id}`;const newHref=`#${el.id}-${i}`;el.id=`${el.id}-${i}`;onEachLazy(template.content.querySelectorAll("a[href]"),link=>{if(link.getAttribute("href")===oldHref){link.href=newHref}})}idMap.set(el.id,i+1)});const templateAssocItems=template.content.querySelectorAll("section.tymethod, "+"section.method, section.associatedtype, section.associatedconstant");if(isTrait){const li=document.createElement("li");const a=document.createElement("a");a.href=`#${template.content.querySelector(".impl").id}`;a.textContent=traitName;li.appendChild(a);sidebarTraitList.append(li)}else{onEachLazy(templateAssocItems,item=>{let block=hasClass(item,"associatedtype")?associatedTypes:(hasClass(item,"associatedconstant")?associatedConstants:(methods));if(!block){const blockTitle=hasClass(item,"associatedtype")?"Associated Types":(hasClass(item,"associatedconstant")?"Associated Constants":("Methods"));const blockClass=hasClass(item,"associatedtype")?"associatedtype":(hasClass(item,"associatedconstant")?"associatedconstant":("method"));const blockHeader=document.createElement("h3");const blockLink=document.createElement("a");blockLink.href="#implementations";blockLink.innerText=blockTitle;blockHeader.appendChild(blockLink);block=document.createElement("ul");block.className=`block ${blockClass}`;const insertionReference=methods||sidebarTraitList;if(insertionReference){const insertionReferenceH=insertionReference.previousElementSibling;sidebarSection.insertBefore(blockHeader,insertionReferenceH);sidebarSection.insertBefore(block,insertionReferenceH)}else{sidebarSection.appendChild(blockHeader);sidebarSection.appendChild(block)}if(hasClass(item,"associatedtype")){associatedTypes=block}else if(hasClass(item,"associatedconstant")){associatedConstants=block}else{methods=block}}const li=document.createElement("li");const a=document.createElement("a");a.innerText=item.id.split("-")[0].split(".")[1];a.href=`#${item.id}`;li.appendChild(a);block.appendChild(li)})}outputList.appendChild(template.content)}for(const list of[methods,associatedTypes,associatedConstants,sidebarTraitList]){if(!list){continue}const newChildren=Array.prototype.slice.call(list.children);newChildren.sort((a,b)=>{const aI=a.innerText;const bI=b.innerText;return aIbI?1:0});list.replaceChildren(...newChildren)}};if(window.pending_type_impls){window.register_type_impls(window.pending_type_impls)}function addSidebarCrates(){if(!window.ALL_CRATES){return}const sidebarElems=document.getElementsByClassName("sidebar-elems")[0];if(!sidebarElems){return}const h3=document.createElement("h3");h3.innerHTML="Crates";const ul=document.createElement("ul");ul.className="block crate";for(const crate of window.ALL_CRATES){const link=document.createElement("a");link.href=window.rootPath+crate+"/index.html";link.textContent=crate;const li=document.createElement("li");if(window.rootPath!=="./"&&crate===window.currentCrate){li.className="current"}li.appendChild(link);ul.appendChild(li)}sidebarElems.appendChild(h3);sidebarElems.appendChild(ul)}function expandAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);removeClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("toggle"),e=>{if(!hasClass(e,"type-contents-toggle")&&!hasClass(e,"more-examples-toggle")){e.open=true}});innerToggle.title="collapse all docs";innerToggle.children[0].innerText="\u2212"}function collapseAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);addClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("toggle"),e=>{if(e.parentNode.id!=="implementations-list"||(!hasClass(e,"implementors-toggle")&&!hasClass(e,"type-contents-toggle"))){e.open=false}});innerToggle.title="expand all docs";innerToggle.children[0].innerText="+"}function toggleAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);if(!innerToggle){return}if(hasClass(innerToggle,"will-expand")){expandAllDocs()}else{collapseAllDocs()}}(function(){const toggles=document.getElementById(toggleAllDocsId);if(toggles){toggles.onclick=toggleAllDocs}const hideMethodDocs=getSettingValue("auto-hide-method-docs")==="true";const hideImplementations=getSettingValue("auto-hide-trait-implementations")==="true";const hideLargeItemContents=getSettingValue("auto-hide-large-items")!=="false";function setImplementorsTogglesOpen(id,open){const list=document.getElementById(id);if(list!==null){onEachLazy(list.getElementsByClassName("implementors-toggle"),e=>{e.open=open})}}if(hideImplementations){setImplementorsTogglesOpen("trait-implementations-list",false);setImplementorsTogglesOpen("blanket-implementations-list",false)}onEachLazy(document.getElementsByClassName("toggle"),e=>{if(!hideLargeItemContents&&hasClass(e,"type-contents-toggle")){e.open=true}if(hideMethodDocs&&hasClass(e,"method-toggle")){e.open=false}})}());window.rustdoc_add_line_numbers_to_examples=()=>{onEachLazy(document.getElementsByClassName("rust-example-rendered"),x=>{const parent=x.parentNode;const line_numbers=parent.querySelectorAll(".example-line-numbers");if(line_numbers.length>0){return}const count=x.textContent.split("\n").length;const elems=[];for(let i=0;i{onEachLazy(document.getElementsByClassName("rust-example-rendered"),x=>{const parent=x.parentNode;const line_numbers=parent.querySelectorAll(".example-line-numbers");for(const node of line_numbers){parent.removeChild(node)}})};if(getSettingValue("line-numbers")==="true"){window.rustdoc_add_line_numbers_to_examples()}function showSidebar(){window.hideAllModals(false);const sidebar=document.getElementsByClassName("sidebar")[0];addClass(sidebar,"shown")}function hideSidebar(){const sidebar=document.getElementsByClassName("sidebar")[0];removeClass(sidebar,"shown")}window.addEventListener("resize",()=>{if(window.CURRENT_TOOLTIP_ELEMENT){const base=window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE;const force_visible=base.TOOLTIP_FORCE_VISIBLE;hideTooltip(false);if(force_visible){showTooltip(base);base.TOOLTIP_FORCE_VISIBLE=true}}});const mainElem=document.getElementById(MAIN_ID);if(mainElem){mainElem.addEventListener("click",hideSidebar)}onEachLazy(document.querySelectorAll("a[href^='#']"),el=>{el.addEventListener("click",()=>{expandSection(el.hash.slice(1));hideSidebar()})});onEachLazy(document.querySelectorAll(".toggle > summary:not(.hideme)"),el=>{el.addEventListener("click",e=>{if(e.target.tagName!=="SUMMARY"&&e.target.tagName!=="A"){e.preventDefault()}})});function showTooltip(e){const notable_ty=e.getAttribute("data-notable-ty");if(!window.NOTABLE_TRAITS&¬able_ty){const data=document.getElementById("notable-traits-data");if(data){window.NOTABLE_TRAITS=JSON.parse(data.innerText)}else{throw new Error("showTooltip() called with notable without any notable traits!")}}if(window.CURRENT_TOOLTIP_ELEMENT&&window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE===e){clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);return}window.hideAllModals(false);const wrapper=document.createElement("div");if(notable_ty){wrapper.innerHTML="
    "+window.NOTABLE_TRAITS[notable_ty]+"
    "}else{if(e.getAttribute("title")!==null){e.setAttribute("data-title",e.getAttribute("title"));e.removeAttribute("title")}if(e.getAttribute("data-title")!==null){const titleContent=document.createElement("div");titleContent.className="content";titleContent.appendChild(document.createTextNode(e.getAttribute("data-title")));wrapper.appendChild(titleContent)}}wrapper.className="tooltip popover";const focusCatcher=document.createElement("div");focusCatcher.setAttribute("tabindex","0");focusCatcher.onfocus=hideTooltip;wrapper.appendChild(focusCatcher);const pos=e.getBoundingClientRect();wrapper.style.top=(pos.top+window.scrollY+pos.height)+"px";wrapper.style.left=0;wrapper.style.right="auto";wrapper.style.visibility="hidden";document.body.appendChild(wrapper);const wrapperPos=wrapper.getBoundingClientRect();const finalPos=pos.left+window.scrollX-wrapperPos.width+24;if(finalPos>0){wrapper.style.left=finalPos+"px"}else{wrapper.style.setProperty("--popover-arrow-offset",(wrapperPos.right-pos.right+4)+"px",)}wrapper.style.visibility="";window.CURRENT_TOOLTIP_ELEMENT=wrapper;window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE=e;clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);wrapper.onpointerenter=ev=>{if(ev.pointerType!=="mouse"){return}clearTooltipHoverTimeout(e)};wrapper.onpointerleave=ev=>{if(ev.pointerType!=="mouse"){return}if(!e.TOOLTIP_FORCE_VISIBLE&&!e.contains(ev.relatedTarget)){setTooltipHoverTimeout(e,false);addClass(wrapper,"fade-out")}}}function setTooltipHoverTimeout(element,show){clearTooltipHoverTimeout(element);if(!show&&!window.CURRENT_TOOLTIP_ELEMENT){return}if(show&&window.CURRENT_TOOLTIP_ELEMENT){return}if(window.CURRENT_TOOLTIP_ELEMENT&&window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE!==element){return}element.TOOLTIP_HOVER_TIMEOUT=setTimeout(()=>{if(show){showTooltip(element)}else if(!element.TOOLTIP_FORCE_VISIBLE){hideTooltip(false)}},show?window.RUSTDOC_TOOLTIP_HOVER_MS:window.RUSTDOC_TOOLTIP_HOVER_EXIT_MS)}function clearTooltipHoverTimeout(element){if(element.TOOLTIP_HOVER_TIMEOUT!==undefined){removeClass(window.CURRENT_TOOLTIP_ELEMENT,"fade-out");clearTimeout(element.TOOLTIP_HOVER_TIMEOUT);delete element.TOOLTIP_HOVER_TIMEOUT}}function tooltipBlurHandler(event){if(window.CURRENT_TOOLTIP_ELEMENT&&!window.CURRENT_TOOLTIP_ELEMENT.contains(document.activeElement)&&!window.CURRENT_TOOLTIP_ELEMENT.contains(event.relatedTarget)&&!window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.contains(document.activeElement)&&!window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.contains(event.relatedTarget)){setTimeout(()=>hideTooltip(false),0)}}function hideTooltip(focus){if(window.CURRENT_TOOLTIP_ELEMENT){if(window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.TOOLTIP_FORCE_VISIBLE){if(focus){window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.focus()}window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.TOOLTIP_FORCE_VISIBLE=false}document.body.removeChild(window.CURRENT_TOOLTIP_ELEMENT);clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);window.CURRENT_TOOLTIP_ELEMENT=null}}onEachLazy(document.getElementsByClassName("tooltip"),e=>{e.onclick=()=>{e.TOOLTIP_FORCE_VISIBLE=e.TOOLTIP_FORCE_VISIBLE?false:true;if(window.CURRENT_TOOLTIP_ELEMENT&&!e.TOOLTIP_FORCE_VISIBLE){hideTooltip(true)}else{showTooltip(e);window.CURRENT_TOOLTIP_ELEMENT.setAttribute("tabindex","0");window.CURRENT_TOOLTIP_ELEMENT.focus();window.CURRENT_TOOLTIP_ELEMENT.onblur=tooltipBlurHandler}return false};e.onpointerenter=ev=>{if(ev.pointerType!=="mouse"){return}setTooltipHoverTimeout(e,true)};e.onpointermove=ev=>{if(ev.pointerType!=="mouse"){return}setTooltipHoverTimeout(e,true)};e.onpointerleave=ev=>{if(ev.pointerType!=="mouse"){return}if(!e.TOOLTIP_FORCE_VISIBLE&&window.CURRENT_TOOLTIP_ELEMENT&&!window.CURRENT_TOOLTIP_ELEMENT.contains(ev.relatedTarget)){setTooltipHoverTimeout(e,false);addClass(window.CURRENT_TOOLTIP_ELEMENT,"fade-out")}}});const sidebar_menu_toggle=document.getElementsByClassName("sidebar-menu-toggle")[0];if(sidebar_menu_toggle){sidebar_menu_toggle.addEventListener("click",()=>{const sidebar=document.getElementsByClassName("sidebar")[0];if(!hasClass(sidebar,"shown")){showSidebar()}else{hideSidebar()}})}function helpBlurHandler(event){blurHandler(event,getHelpButton(),window.hidePopoverMenus)}function buildHelpMenu(){const book_info=document.createElement("span");const channel=getVar("channel");book_info.className="top";book_info.innerHTML=`You can find more information in \ +the rustdoc book.`;const shortcuts=[["?","Show this help dialog"],["S / /","Focus the search field"],["↑","Move up in search results"],["↓","Move down in search results"],["← / →","Switch result tab (when results focused)"],["⏎","Go to active search result"],["+","Expand all sections"],["-","Collapse all sections"],].map(x=>"
    "+x[0].split(" ").map((y,index)=>((index&1)===0?""+y+"":" "+y+" ")).join("")+"
    "+x[1]+"
    ").join("");const div_shortcuts=document.createElement("div");addClass(div_shortcuts,"shortcuts");div_shortcuts.innerHTML="

    Keyboard Shortcuts

    "+shortcuts+"
    ";const infos=[`For a full list of all search features, take a look here.`,"Prefix searches with a type followed by a colon (e.g., fn:) to \ + restrict the search to a given item kind.","Accepted kinds are: fn, mod, struct, \ + enum, trait, type, macro, \ + and const.","Search functions by type signature (e.g., vec -> usize or \ + -> vec or String, enum:Cow -> bool)","You can look for items with an exact name by putting double quotes around \ + your request: \"string\"","Look for functions that accept or return \ + slices and \ + arrays by writing \ + square brackets (e.g., -> [u8] or [] -> Option)","Look for items inside another one by searching for a path: vec::Vec",].map(x=>"

    "+x+"

    ").join("");const div_infos=document.createElement("div");addClass(div_infos,"infos");div_infos.innerHTML="

    Search Tricks

    "+infos;const rustdoc_version=document.createElement("span");rustdoc_version.className="bottom";const rustdoc_version_code=document.createElement("code");rustdoc_version_code.innerText="rustdoc "+getVar("rustdoc-version");rustdoc_version.appendChild(rustdoc_version_code);const container=document.createElement("div");if(!isHelpPage){container.className="popover"}container.id="help";container.style.display="none";const side_by_side=document.createElement("div");side_by_side.className="side-by-side";side_by_side.appendChild(div_shortcuts);side_by_side.appendChild(div_infos);container.appendChild(book_info);container.appendChild(side_by_side);container.appendChild(rustdoc_version);if(isHelpPage){const help_section=document.createElement("section");help_section.appendChild(container);document.getElementById("main-content").appendChild(help_section);container.style.display="block"}else{const help_button=getHelpButton();help_button.appendChild(container);container.onblur=helpBlurHandler;help_button.onblur=helpBlurHandler;help_button.children[0].onblur=helpBlurHandler}return container}window.hideAllModals=switchFocus=>{hideSidebar();window.hidePopoverMenus();hideTooltip(switchFocus)};window.hidePopoverMenus=()=>{onEachLazy(document.querySelectorAll(".search-form .popover"),elem=>{elem.style.display="none"})};function getHelpMenu(buildNeeded){let menu=getHelpButton().querySelector(".popover");if(!menu&&buildNeeded){menu=buildHelpMenu()}return menu}function showHelp(){getHelpButton().querySelector("a").focus();const menu=getHelpMenu(true);if(menu.style.display==="none"){window.hideAllModals();menu.style.display=""}}if(isHelpPage){showHelp();document.querySelector(`#${HELP_BUTTON_ID} > a`).addEventListener("click",event=>{const target=event.target;if(target.tagName!=="A"||target.parentElement.id!==HELP_BUTTON_ID||event.ctrlKey||event.altKey||event.metaKey){return}event.preventDefault()})}else{document.querySelector(`#${HELP_BUTTON_ID} > a`).addEventListener("click",event=>{const target=event.target;if(target.tagName!=="A"||target.parentElement.id!==HELP_BUTTON_ID||event.ctrlKey||event.altKey||event.metaKey){return}event.preventDefault();const menu=getHelpMenu(true);const shouldShowHelp=menu.style.display==="none";if(shouldShowHelp){showHelp()}else{window.hidePopoverMenus()}})}setMobileTopbar();addSidebarItems();addSidebarCrates();onHashChange(null);window.addEventListener("hashchange",onHashChange);searchState.setup()}());(function(){const SIDEBAR_MIN=100;const SIDEBAR_MAX=500;const RUSTDOC_MOBILE_BREAKPOINT=700;const BODY_MIN=400;const SIDEBAR_VANISH_THRESHOLD=SIDEBAR_MIN/2;const sidebarButton=document.getElementById("sidebar-button");if(sidebarButton){sidebarButton.addEventListener("click",e=>{removeClass(document.documentElement,"hide-sidebar");updateLocalStorage("hide-sidebar","false");if(document.querySelector(".rustdoc.src")){window.rustdocToggleSrcSidebar()}e.preventDefault()})}let currentPointerId=null;let desiredSidebarSize=null;let pendingSidebarResizingFrame=false;const resizer=document.querySelector(".sidebar-resizer");const sidebar=document.querySelector(".sidebar");if(!resizer||!sidebar){return}const isSrcPage=hasClass(document.body,"src");function hideSidebar(){if(isSrcPage){window.rustdocCloseSourceSidebar();updateLocalStorage("src-sidebar-width",null);document.documentElement.style.removeProperty("--src-sidebar-width");sidebar.style.removeProperty("--src-sidebar-width");resizer.style.removeProperty("--src-sidebar-width")}else{addClass(document.documentElement,"hide-sidebar");updateLocalStorage("hide-sidebar","true");updateLocalStorage("desktop-sidebar-width",null);document.documentElement.style.removeProperty("--desktop-sidebar-width");sidebar.style.removeProperty("--desktop-sidebar-width");resizer.style.removeProperty("--desktop-sidebar-width")}}function showSidebar(){if(isSrcPage){window.rustdocShowSourceSidebar()}else{removeClass(document.documentElement,"hide-sidebar");updateLocalStorage("hide-sidebar","false")}}function changeSidebarSize(size){if(isSrcPage){updateLocalStorage("src-sidebar-width",size);sidebar.style.setProperty("--src-sidebar-width",size+"px");resizer.style.setProperty("--src-sidebar-width",size+"px")}else{updateLocalStorage("desktop-sidebar-width",size);sidebar.style.setProperty("--desktop-sidebar-width",size+"px");resizer.style.setProperty("--desktop-sidebar-width",size+"px")}}function isSidebarHidden(){return isSrcPage?!hasClass(document.documentElement,"src-sidebar-expanded"):hasClass(document.documentElement,"hide-sidebar")}function resize(e){if(currentPointerId===null||currentPointerId!==e.pointerId){return}e.preventDefault();const pos=e.clientX-3;if(pos=SIDEBAR_MIN){if(isSidebarHidden()){showSidebar()}const constrainedPos=Math.min(pos,window.innerWidth-BODY_MIN,SIDEBAR_MAX);changeSidebarSize(constrainedPos);desiredSidebarSize=constrainedPos;if(pendingSidebarResizingFrame!==false){clearTimeout(pendingSidebarResizingFrame)}pendingSidebarResizingFrame=setTimeout(()=>{if(currentPointerId===null||pendingSidebarResizingFrame===false){return}pendingSidebarResizingFrame=false;document.documentElement.style.setProperty("--resizing-sidebar-width",desiredSidebarSize+"px",)},100)}}window.addEventListener("resize",()=>{if(window.innerWidth=(window.innerWidth-BODY_MIN)){changeSidebarSize(window.innerWidth-BODY_MIN)}else if(desiredSidebarSize!==null&&desiredSidebarSize>SIDEBAR_MIN){changeSidebarSize(desiredSidebarSize)}});function stopResize(e){if(currentPointerId===null){return}if(e){e.preventDefault()}desiredSidebarSize=sidebar.getBoundingClientRect().width;removeClass(resizer,"active");window.removeEventListener("pointermove",resize,false);window.removeEventListener("pointerup",stopResize,false);removeClass(document.documentElement,"sidebar-resizing");document.documentElement.style.removeProperty("--resizing-sidebar-width");if(resizer.releasePointerCapture){resizer.releasePointerCapture(currentPointerId);currentPointerId=null}}function initResize(e){if(currentPointerId!==null||e.altKey||e.ctrlKey||e.metaKey||e.button!==0){return}if(resizer.setPointerCapture){resizer.setPointerCapture(e.pointerId);if(!resizer.hasPointerCapture(e.pointerId)){resizer.releasePointerCapture(e.pointerId);return}currentPointerId=e.pointerId}window.hideAllModals(false);e.preventDefault();window.addEventListener("pointermove",resize,false);window.addEventListener("pointercancel",stopResize,false);window.addEventListener("pointerup",stopResize,false);addClass(resizer,"active");addClass(document.documentElement,"sidebar-resizing");const pos=e.clientX-sidebar.offsetLeft-3;document.documentElement.style.setProperty("--resizing-sidebar-width",pos+"px");desiredSidebarSize=null}resizer.addEventListener("pointerdown",initResize,false)}());(function(){function copyContentToClipboard(content){const el=document.createElement("textarea");el.value=content;el.setAttribute("readonly","");el.style.position="absolute";el.style.left="-9999px";document.body.appendChild(el);el.select();document.execCommand("copy");document.body.removeChild(el)}function copyButtonAnimation(button){button.classList.add("clicked");if(button.reset_button_timeout!==undefined){window.clearTimeout(button.reset_button_timeout)}button.reset_button_timeout=window.setTimeout(()=>{button.reset_button_timeout=undefined;button.classList.remove("clicked")},1000)}const but=document.getElementById("copy-path");if(!but){return}but.onclick=()=>{const parent=but.parentElement;const path=[];onEach(parent.childNodes,child=>{if(child.tagName==="A"){path.push(child.textContent)}});copyContentToClipboard(path.join("::"));copyButtonAnimation(but)};function copyCode(codeElem){if(!codeElem){return}copyContentToClipboard(codeElem.textContent)}function getExampleWrap(event){let elem=event.target;while(!hasClass(elem,"example-wrap")){if(elem===document.body||elem.tagName==="A"||elem.tagName==="BUTTON"||hasClass(elem,"docblock")){return null}elem=elem.parentElement}return elem}function addCopyButton(event){const elem=getExampleWrap(event);if(elem===null){return}elem.removeEventListener("mouseover",addCopyButton);const parent=document.createElement("div");parent.className="button-holder";const runButton=elem.querySelector(".test-arrow");if(runButton!==null){parent.appendChild(runButton)}elem.appendChild(parent);const copyButton=document.createElement("button");copyButton.className="copy-button";copyButton.title="Copy code to clipboard";copyButton.addEventListener("click",()=>{copyCode(elem.querySelector("pre > code"));copyButtonAnimation(copyButton)});parent.appendChild(copyButton)}function showHideCodeExampleButtons(event){const elem=getExampleWrap(event);if(elem===null){return}let buttons=elem.querySelector(".button-holder");if(buttons===null){addCopyButton(event);buttons=elem.querySelector(".button-holder");if(buttons===null){return}}buttons.classList.toggle("keep-visible")}onEachLazy(document.querySelectorAll(".docblock .example-wrap"),elem=>{elem.addEventListener("mouseover",addCopyButton);elem.addEventListener("click",showHideCodeExampleButtons)})}()) \ No newline at end of file diff --git a/crates/static.files/main-d2fab2bf619172d3.js b/crates/static.files/main-d2fab2bf619172d3.js deleted file mode 100644 index 8fc48ede..00000000 --- a/crates/static.files/main-d2fab2bf619172d3.js +++ /dev/null @@ -1,11 +0,0 @@ -"use strict";window.RUSTDOC_TOOLTIP_HOVER_MS=300;window.RUSTDOC_TOOLTIP_HOVER_EXIT_MS=450;function resourcePath(basename,extension){return getVar("root-path")+basename+getVar("resource-suffix")+extension}function hideMain(){addClass(document.getElementById(MAIN_ID),"hidden")}function showMain(){removeClass(document.getElementById(MAIN_ID),"hidden")}function blurHandler(event,parentElem,hideCallback){if(!parentElem.contains(document.activeElement)&&!parentElem.contains(event.relatedTarget)){hideCallback()}}window.rootPath=getVar("root-path");window.currentCrate=getVar("current-crate");function setMobileTopbar(){const mobileTopbar=document.querySelector(".mobile-topbar");const locationTitle=document.querySelector(".sidebar h2.location");if(mobileTopbar){const mobileTitle=document.createElement("h2");mobileTitle.className="location";if(hasClass(document.querySelector(".rustdoc"),"crate")){mobileTitle.innerHTML=`Crate ${window.currentCrate}`}else if(locationTitle){mobileTitle.innerHTML=locationTitle.innerHTML}mobileTopbar.appendChild(mobileTitle)}}function getVirtualKey(ev){if("key"in ev&&typeof ev.key!=="undefined"){return ev.key}const c=ev.charCode||ev.keyCode;if(c===27){return"Escape"}return String.fromCharCode(c)}const MAIN_ID="main-content";const SETTINGS_BUTTON_ID="settings-menu";const ALTERNATIVE_DISPLAY_ID="alternative-display";const NOT_DISPLAYED_ID="not-displayed";const HELP_BUTTON_ID="help-button";function getSettingsButton(){return document.getElementById(SETTINGS_BUTTON_ID)}function getHelpButton(){return document.getElementById(HELP_BUTTON_ID)}function getNakedUrl(){return window.location.href.split("?")[0].split("#")[0]}function insertAfter(newNode,referenceNode){referenceNode.parentNode.insertBefore(newNode,referenceNode.nextSibling)}function getOrCreateSection(id,classes){let el=document.getElementById(id);if(!el){el=document.createElement("section");el.id=id;el.className=classes;insertAfter(el,document.getElementById(MAIN_ID))}return el}function getAlternativeDisplayElem(){return getOrCreateSection(ALTERNATIVE_DISPLAY_ID,"content hidden")}function getNotDisplayedElem(){return getOrCreateSection(NOT_DISPLAYED_ID,"hidden")}function switchDisplayedElement(elemToDisplay){const el=getAlternativeDisplayElem();if(el.children.length>0){getNotDisplayedElem().appendChild(el.firstElementChild)}if(elemToDisplay===null){addClass(el,"hidden");showMain();return}el.appendChild(elemToDisplay);hideMain();removeClass(el,"hidden")}function browserSupportsHistoryApi(){return window.history&&typeof window.history.pushState==="function"}function preLoadCss(cssUrl){const link=document.createElement("link");link.href=cssUrl;link.rel="preload";link.as="style";document.getElementsByTagName("head")[0].appendChild(link)}(function(){const isHelpPage=window.location.pathname.endsWith("/help.html");function loadScript(url,errorCallback){const script=document.createElement("script");script.src=url;if(errorCallback!==undefined){script.onerror=errorCallback}document.head.append(script)}getSettingsButton().onclick=event=>{if(event.ctrlKey||event.altKey||event.metaKey){return}window.hideAllModals(false);addClass(getSettingsButton(),"rotate");event.preventDefault();loadScript(getVar("static-root-path")+getVar("settings-js"));setTimeout(()=>{const themes=getVar("themes").split(",");for(const theme of themes){if(theme!==""){preLoadCss(getVar("root-path")+theme+".css")}}},0)};window.searchState={loadingText:"Loading search results...",input:document.getElementsByClassName("search-input")[0],outputElement:()=>{let el=document.getElementById("search");if(!el){el=document.createElement("section");el.id="search";getNotDisplayedElem().appendChild(el)}return el},title:document.title,titleBeforeSearch:document.title,timeout:null,currentTab:0,focusedByTab:[null,null,null],clearInputTimeout:()=>{if(searchState.timeout!==null){clearTimeout(searchState.timeout);searchState.timeout=null}},isDisplayed:()=>searchState.outputElement().parentElement.id===ALTERNATIVE_DISPLAY_ID,focus:()=>{searchState.input.focus()},defocus:()=>{searchState.input.blur()},showResults:search=>{if(search===null||typeof search==="undefined"){search=searchState.outputElement()}switchDisplayedElement(search);searchState.mouseMovedAfterSearch=false;document.title=searchState.title},removeQueryParameters:()=>{document.title=searchState.titleBeforeSearch;if(browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.hash)}},hideResults:()=>{switchDisplayedElement(null);searchState.removeQueryParameters()},getQueryStringParams:()=>{const params={};window.location.search.substring(1).split("&").map(s=>{const pair=s.split("=").map(x=>x.replace(/\+/g," "));params[decodeURIComponent(pair[0])]=typeof pair[1]==="undefined"?null:decodeURIComponent(pair[1])});return params},setup:()=>{const search_input=searchState.input;if(!searchState.input){return}let searchLoaded=false;function sendSearchForm(){document.getElementsByClassName("search-form")[0].submit()}function loadSearch(){if(!searchLoaded){searchLoaded=true;loadScript(getVar("static-root-path")+getVar("search-js"),sendSearchForm);loadScript(resourcePath("search-index",".js"),sendSearchForm)}}search_input.addEventListener("focus",()=>{search_input.origPlaceholder=search_input.placeholder;search_input.placeholder="Type your search here.";loadSearch()});if(search_input.value!==""){loadSearch()}const params=searchState.getQueryStringParams();if(params.search!==undefined){searchState.setLoadingSearch();loadSearch()}},setLoadingSearch:()=>{const search=searchState.outputElement();search.innerHTML="

    "+searchState.loadingText+"

    ";searchState.showResults(search)},descShards:new Map(),loadDesc:async function({descShard,descIndex}){if(descShard.promise===null){descShard.promise=new Promise((resolve,reject)=>{descShard.resolve=resolve;const ds=descShard;const fname=`${ds.crate}-desc-${ds.shard}-`;const url=resourcePath(`search.desc/${descShard.crate}/${fname}`,".js",);loadScript(url,reject)})}const list=await descShard.promise;return list[descIndex]},loadedDescShard:function(crate,shard,data){this.descShards.get(crate)[shard].resolve(data.split("\n"))},};const toggleAllDocsId="toggle-all-docs";let savedHash="";function handleHashes(ev){if(ev!==null&&searchState.isDisplayed()&&ev.newURL){switchDisplayedElement(null);const hash=ev.newURL.slice(ev.newURL.indexOf("#")+1);if(browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.search+"#"+hash)}const elem=document.getElementById(hash);if(elem){elem.scrollIntoView()}}const pageId=window.location.hash.replace(/^#/,"");if(savedHash!==pageId){savedHash=pageId;if(pageId!==""){expandSection(pageId)}}if(savedHash.startsWith("impl-")){const splitAt=savedHash.indexOf("/");if(splitAt!==-1){const implId=savedHash.slice(0,splitAt);const assocId=savedHash.slice(splitAt+1);const implElem=document.getElementById(implId);if(implElem&&implElem.parentElement.tagName==="SUMMARY"&&implElem.parentElement.parentElement.tagName==="DETAILS"){onEachLazy(implElem.parentElement.parentElement.querySelectorAll(`[id^="${assocId}"]`),item=>{const numbered=/([^-]+)-([0-9]+)/.exec(item.id);if(item.id===assocId||(numbered&&numbered[1]===assocId)){openParentDetails(item);item.scrollIntoView();setTimeout(()=>{window.location.replace("#"+item.id)},0)}},)}}}}function onHashChange(ev){hideSidebar();handleHashes(ev)}function openParentDetails(elem){while(elem){if(elem.tagName==="DETAILS"){elem.open=true}elem=elem.parentNode}}function expandSection(id){openParentDetails(document.getElementById(id))}function handleEscape(ev){searchState.clearInputTimeout();searchState.hideResults();ev.preventDefault();searchState.defocus();window.hideAllModals(true)}function handleShortcut(ev){const disableShortcuts=getSettingValue("disable-shortcuts")==="true";if(ev.ctrlKey||ev.altKey||ev.metaKey||disableShortcuts){return}if(document.activeElement.tagName==="INPUT"&&document.activeElement.type!=="checkbox"&&document.activeElement.type!=="radio"){switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break}}else{switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break;case"s":case"S":case"/":ev.preventDefault();searchState.focus();break;case"+":ev.preventDefault();expandAllDocs();break;case"-":ev.preventDefault();collapseAllDocs();break;case"?":showHelp();break;default:break}}}document.addEventListener("keypress",handleShortcut);document.addEventListener("keydown",handleShortcut);function addSidebarItems(){if(!window.SIDEBAR_ITEMS){return}const sidebar=document.getElementsByClassName("sidebar-elems")[0];function block(shortty,id,longty){const filtered=window.SIDEBAR_ITEMS[shortty];if(!filtered){return}const modpath=hasClass(document.querySelector(".rustdoc"),"mod")?"../":"";const h3=document.createElement("h3");h3.innerHTML=`${longty}`;const ul=document.createElement("ul");ul.className="block "+shortty;for(const name of filtered){let path;if(shortty==="mod"){path=`${modpath}${name}/index.html`}else{path=`${modpath}${shortty}.${name}.html`}let current_page=document.location.href.toString();if(current_page.endsWith("/")){current_page+="index.html"}const link=document.createElement("a");link.href=path;link.textContent=name;const li=document.createElement("li");if(link.href===current_page){li.classList.add("current")}li.appendChild(link);ul.appendChild(li)}sidebar.appendChild(h3);sidebar.appendChild(ul)}if(sidebar){block("primitive","primitives","Primitive Types");block("mod","modules","Modules");block("macro","macros","Macros");block("struct","structs","Structs");block("enum","enums","Enums");block("constant","constants","Constants");block("static","static","Statics");block("trait","traits","Traits");block("fn","functions","Functions");block("type","types","Type Aliases");block("union","unions","Unions");block("foreigntype","foreign-types","Foreign Types");block("keyword","keywords","Keywords");block("opaque","opaque-types","Opaque Types");block("attr","attributes","Attribute Macros");block("derive","derives","Derive Macros");block("traitalias","trait-aliases","Trait Aliases")}}window.register_implementors=imp=>{const implementors=document.getElementById("implementors-list");const synthetic_implementors=document.getElementById("synthetic-implementors-list");const inlined_types=new Set();const TEXT_IDX=0;const SYNTHETIC_IDX=1;const TYPES_IDX=2;if(synthetic_implementors){onEachLazy(synthetic_implementors.getElementsByClassName("impl"),el=>{const aliases=el.getAttribute("data-aliases");if(!aliases){return}aliases.split(",").forEach(alias=>{inlined_types.add(alias)})})}let currentNbImpls=implementors.getElementsByClassName("impl").length;const traitName=document.querySelector(".main-heading h1 > .trait").textContent;const baseIdName="impl-"+traitName+"-";const libs=Object.getOwnPropertyNames(imp);const script=document.querySelector("script[data-ignore-extern-crates]");const ignoreExternCrates=new Set((script?script.getAttribute("data-ignore-extern-crates"):"").split(","),);for(const lib of libs){if(lib===window.currentCrate||ignoreExternCrates.has(lib)){continue}const structs=imp[lib];struct_loop:for(const struct of structs){const list=struct[SYNTHETIC_IDX]?synthetic_implementors:implementors;if(struct[SYNTHETIC_IDX]){for(const struct_type of struct[TYPES_IDX]){if(inlined_types.has(struct_type)){continue struct_loop}inlined_types.add(struct_type)}}const code=document.createElement("h3");code.innerHTML=struct[TEXT_IDX];addClass(code,"code-header");onEachLazy(code.getElementsByTagName("a"),elem=>{const href=elem.getAttribute("href");if(href&&!href.startsWith("#")&&!/^(?:[a-z+]+:)?\/\//.test(href)){elem.setAttribute("href",window.rootPath+href)}});const currentId=baseIdName+currentNbImpls;const anchor=document.createElement("a");anchor.href="#"+currentId;addClass(anchor,"anchor");const display=document.createElement("div");display.id=currentId;addClass(display,"impl");display.appendChild(anchor);display.appendChild(code);list.appendChild(display);currentNbImpls+=1}}};if(window.pending_implementors){window.register_implementors(window.pending_implementors)}window.register_type_impls=imp=>{if(!imp||!imp[window.currentCrate]){return}window.pending_type_impls=null;const idMap=new Map();let implementations=document.getElementById("implementations-list");let trait_implementations=document.getElementById("trait-implementations-list");let trait_implementations_header=document.getElementById("trait-implementations");const script=document.querySelector("script[data-self-path]");const selfPath=script?script.getAttribute("data-self-path"):null;const mainContent=document.querySelector("#main-content");const sidebarSection=document.querySelector(".sidebar section");let methods=document.querySelector(".sidebar .block.method");let associatedTypes=document.querySelector(".sidebar .block.associatedtype");let associatedConstants=document.querySelector(".sidebar .block.associatedconstant");let sidebarTraitList=document.querySelector(".sidebar .block.trait-implementation");for(const impList of imp[window.currentCrate]){const types=impList.slice(2);const text=impList[0];const isTrait=impList[1]!==0;const traitName=impList[1];if(types.indexOf(selfPath)===-1){continue}let outputList=isTrait?trait_implementations:implementations;if(outputList===null){const outputListName=isTrait?"Trait Implementations":"Implementations";const outputListId=isTrait?"trait-implementations-list":"implementations-list";const outputListHeaderId=isTrait?"trait-implementations":"implementations";const outputListHeader=document.createElement("h2");outputListHeader.id=outputListHeaderId;outputListHeader.innerText=outputListName;outputList=document.createElement("div");outputList.id=outputListId;if(isTrait){const link=document.createElement("a");link.href=`#${outputListHeaderId}`;link.innerText="Trait Implementations";const h=document.createElement("h3");h.appendChild(link);trait_implementations=outputList;trait_implementations_header=outputListHeader;sidebarSection.appendChild(h);sidebarTraitList=document.createElement("ul");sidebarTraitList.className="block trait-implementation";sidebarSection.appendChild(sidebarTraitList);mainContent.appendChild(outputListHeader);mainContent.appendChild(outputList)}else{implementations=outputList;if(trait_implementations){mainContent.insertBefore(outputListHeader,trait_implementations_header);mainContent.insertBefore(outputList,trait_implementations_header)}else{const mainContent=document.querySelector("#main-content");mainContent.appendChild(outputListHeader);mainContent.appendChild(outputList)}}}const template=document.createElement("template");template.innerHTML=text;onEachLazy(template.content.querySelectorAll("a"),elem=>{const href=elem.getAttribute("href");if(href&&!href.startsWith("#")&&!/^(?:[a-z+]+:)?\/\//.test(href)){elem.setAttribute("href",window.rootPath+href)}});onEachLazy(template.content.querySelectorAll("[id]"),el=>{let i=0;if(idMap.has(el.id)){i=idMap.get(el.id)}else if(document.getElementById(el.id)){i=1;while(document.getElementById(`${el.id}-${2 * i}`)){i=2*i}while(document.getElementById(`${el.id}-${i}`)){i+=1}}if(i!==0){const oldHref=`#${el.id}`;const newHref=`#${el.id}-${i}`;el.id=`${el.id}-${i}`;onEachLazy(template.content.querySelectorAll("a[href]"),link=>{if(link.getAttribute("href")===oldHref){link.href=newHref}})}idMap.set(el.id,i+1)});const templateAssocItems=template.content.querySelectorAll("section.tymethod, "+"section.method, section.associatedtype, section.associatedconstant");if(isTrait){const li=document.createElement("li");const a=document.createElement("a");a.href=`#${template.content.querySelector(".impl").id}`;a.textContent=traitName;li.appendChild(a);sidebarTraitList.append(li)}else{onEachLazy(templateAssocItems,item=>{let block=hasClass(item,"associatedtype")?associatedTypes:(hasClass(item,"associatedconstant")?associatedConstants:(methods));if(!block){const blockTitle=hasClass(item,"associatedtype")?"Associated Types":(hasClass(item,"associatedconstant")?"Associated Constants":("Methods"));const blockClass=hasClass(item,"associatedtype")?"associatedtype":(hasClass(item,"associatedconstant")?"associatedconstant":("method"));const blockHeader=document.createElement("h3");const blockLink=document.createElement("a");blockLink.href="#implementations";blockLink.innerText=blockTitle;blockHeader.appendChild(blockLink);block=document.createElement("ul");block.className=`block ${blockClass}`;const insertionReference=methods||sidebarTraitList;if(insertionReference){const insertionReferenceH=insertionReference.previousElementSibling;sidebarSection.insertBefore(blockHeader,insertionReferenceH);sidebarSection.insertBefore(block,insertionReferenceH)}else{sidebarSection.appendChild(blockHeader);sidebarSection.appendChild(block)}if(hasClass(item,"associatedtype")){associatedTypes=block}else if(hasClass(item,"associatedconstant")){associatedConstants=block}else{methods=block}}const li=document.createElement("li");const a=document.createElement("a");a.innerText=item.id.split("-")[0].split(".")[1];a.href=`#${item.id}`;li.appendChild(a);block.appendChild(li)})}outputList.appendChild(template.content)}for(const list of[methods,associatedTypes,associatedConstants,sidebarTraitList]){if(!list){continue}const newChildren=Array.prototype.slice.call(list.children);newChildren.sort((a,b)=>{const aI=a.innerText;const bI=b.innerText;return aIbI?1:0});list.replaceChildren(...newChildren)}};if(window.pending_type_impls){window.register_type_impls(window.pending_type_impls)}function addSidebarCrates(){if(!window.ALL_CRATES){return}const sidebarElems=document.getElementsByClassName("sidebar-elems")[0];if(!sidebarElems){return}const h3=document.createElement("h3");h3.innerHTML="Crates";const ul=document.createElement("ul");ul.className="block crate";for(const crate of window.ALL_CRATES){const link=document.createElement("a");link.href=window.rootPath+crate+"/index.html";link.textContent=crate;const li=document.createElement("li");if(window.rootPath!=="./"&&crate===window.currentCrate){li.className="current"}li.appendChild(link);ul.appendChild(li)}sidebarElems.appendChild(h3);sidebarElems.appendChild(ul)}function expandAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);removeClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("toggle"),e=>{if(!hasClass(e,"type-contents-toggle")&&!hasClass(e,"more-examples-toggle")){e.open=true}});innerToggle.title="collapse all docs";innerToggle.children[0].innerText="\u2212"}function collapseAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);addClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("toggle"),e=>{if(e.parentNode.id!=="implementations-list"||(!hasClass(e,"implementors-toggle")&&!hasClass(e,"type-contents-toggle"))){e.open=false}});innerToggle.title="expand all docs";innerToggle.children[0].innerText="+"}function toggleAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);if(!innerToggle){return}if(hasClass(innerToggle,"will-expand")){expandAllDocs()}else{collapseAllDocs()}}(function(){const toggles=document.getElementById(toggleAllDocsId);if(toggles){toggles.onclick=toggleAllDocs}const hideMethodDocs=getSettingValue("auto-hide-method-docs")==="true";const hideImplementations=getSettingValue("auto-hide-trait-implementations")==="true";const hideLargeItemContents=getSettingValue("auto-hide-large-items")!=="false";function setImplementorsTogglesOpen(id,open){const list=document.getElementById(id);if(list!==null){onEachLazy(list.getElementsByClassName("implementors-toggle"),e=>{e.open=open})}}if(hideImplementations){setImplementorsTogglesOpen("trait-implementations-list",false);setImplementorsTogglesOpen("blanket-implementations-list",false)}onEachLazy(document.getElementsByClassName("toggle"),e=>{if(!hideLargeItemContents&&hasClass(e,"type-contents-toggle")){e.open=true}if(hideMethodDocs&&hasClass(e,"method-toggle")){e.open=false}})}());window.rustdoc_add_line_numbers_to_examples=()=>{onEachLazy(document.getElementsByClassName("rust-example-rendered"),x=>{const parent=x.parentNode;const line_numbers=parent.querySelectorAll(".example-line-numbers");if(line_numbers.length>0){return}const count=x.textContent.split("\n").length;const elems=[];for(let i=0;i{onEachLazy(document.getElementsByClassName("rust-example-rendered"),x=>{const parent=x.parentNode;const line_numbers=parent.querySelectorAll(".example-line-numbers");for(const node of line_numbers){parent.removeChild(node)}})};if(getSettingValue("line-numbers")==="true"){window.rustdoc_add_line_numbers_to_examples()}function showSidebar(){window.hideAllModals(false);const sidebar=document.getElementsByClassName("sidebar")[0];addClass(sidebar,"shown")}function hideSidebar(){const sidebar=document.getElementsByClassName("sidebar")[0];removeClass(sidebar,"shown")}window.addEventListener("resize",()=>{if(window.CURRENT_TOOLTIP_ELEMENT){const base=window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE;const force_visible=base.TOOLTIP_FORCE_VISIBLE;hideTooltip(false);if(force_visible){showTooltip(base);base.TOOLTIP_FORCE_VISIBLE=true}}});const mainElem=document.getElementById(MAIN_ID);if(mainElem){mainElem.addEventListener("click",hideSidebar)}onEachLazy(document.querySelectorAll("a[href^='#']"),el=>{el.addEventListener("click",()=>{expandSection(el.hash.slice(1));hideSidebar()})});onEachLazy(document.querySelectorAll(".toggle > summary:not(.hideme)"),el=>{el.addEventListener("click",e=>{if(e.target.tagName!=="SUMMARY"&&e.target.tagName!=="A"){e.preventDefault()}})});function showTooltip(e){const notable_ty=e.getAttribute("data-notable-ty");if(!window.NOTABLE_TRAITS&¬able_ty){const data=document.getElementById("notable-traits-data");if(data){window.NOTABLE_TRAITS=JSON.parse(data.innerText)}else{throw new Error("showTooltip() called with notable without any notable traits!")}}if(window.CURRENT_TOOLTIP_ELEMENT&&window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE===e){clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);return}window.hideAllModals(false);const wrapper=document.createElement("div");if(notable_ty){wrapper.innerHTML="
    "+window.NOTABLE_TRAITS[notable_ty]+"
    "}else{if(e.getAttribute("title")!==null){e.setAttribute("data-title",e.getAttribute("title"));e.removeAttribute("title")}if(e.getAttribute("data-title")!==null){const titleContent=document.createElement("div");titleContent.className="content";titleContent.appendChild(document.createTextNode(e.getAttribute("data-title")));wrapper.appendChild(titleContent)}}wrapper.className="tooltip popover";const focusCatcher=document.createElement("div");focusCatcher.setAttribute("tabindex","0");focusCatcher.onfocus=hideTooltip;wrapper.appendChild(focusCatcher);const pos=e.getBoundingClientRect();wrapper.style.top=(pos.top+window.scrollY+pos.height)+"px";wrapper.style.left=0;wrapper.style.right="auto";wrapper.style.visibility="hidden";const body=document.getElementsByTagName("body")[0];body.appendChild(wrapper);const wrapperPos=wrapper.getBoundingClientRect();const finalPos=pos.left+window.scrollX-wrapperPos.width+24;if(finalPos>0){wrapper.style.left=finalPos+"px"}else{wrapper.style.setProperty("--popover-arrow-offset",(wrapperPos.right-pos.right+4)+"px",)}wrapper.style.visibility="";window.CURRENT_TOOLTIP_ELEMENT=wrapper;window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE=e;clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);wrapper.onpointerenter=ev=>{if(ev.pointerType!=="mouse"){return}clearTooltipHoverTimeout(e)};wrapper.onpointerleave=ev=>{if(ev.pointerType!=="mouse"){return}if(!e.TOOLTIP_FORCE_VISIBLE&&!e.contains(ev.relatedTarget)){setTooltipHoverTimeout(e,false);addClass(wrapper,"fade-out")}}}function setTooltipHoverTimeout(element,show){clearTooltipHoverTimeout(element);if(!show&&!window.CURRENT_TOOLTIP_ELEMENT){return}if(show&&window.CURRENT_TOOLTIP_ELEMENT){return}if(window.CURRENT_TOOLTIP_ELEMENT&&window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE!==element){return}element.TOOLTIP_HOVER_TIMEOUT=setTimeout(()=>{if(show){showTooltip(element)}else if(!element.TOOLTIP_FORCE_VISIBLE){hideTooltip(false)}},show?window.RUSTDOC_TOOLTIP_HOVER_MS:window.RUSTDOC_TOOLTIP_HOVER_EXIT_MS)}function clearTooltipHoverTimeout(element){if(element.TOOLTIP_HOVER_TIMEOUT!==undefined){removeClass(window.CURRENT_TOOLTIP_ELEMENT,"fade-out");clearTimeout(element.TOOLTIP_HOVER_TIMEOUT);delete element.TOOLTIP_HOVER_TIMEOUT}}function tooltipBlurHandler(event){if(window.CURRENT_TOOLTIP_ELEMENT&&!window.CURRENT_TOOLTIP_ELEMENT.contains(document.activeElement)&&!window.CURRENT_TOOLTIP_ELEMENT.contains(event.relatedTarget)&&!window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.contains(document.activeElement)&&!window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.contains(event.relatedTarget)){setTimeout(()=>hideTooltip(false),0)}}function hideTooltip(focus){if(window.CURRENT_TOOLTIP_ELEMENT){if(window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.TOOLTIP_FORCE_VISIBLE){if(focus){window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.focus()}window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.TOOLTIP_FORCE_VISIBLE=false}const body=document.getElementsByTagName("body")[0];body.removeChild(window.CURRENT_TOOLTIP_ELEMENT);clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);window.CURRENT_TOOLTIP_ELEMENT=null}}onEachLazy(document.getElementsByClassName("tooltip"),e=>{e.onclick=()=>{e.TOOLTIP_FORCE_VISIBLE=e.TOOLTIP_FORCE_VISIBLE?false:true;if(window.CURRENT_TOOLTIP_ELEMENT&&!e.TOOLTIP_FORCE_VISIBLE){hideTooltip(true)}else{showTooltip(e);window.CURRENT_TOOLTIP_ELEMENT.setAttribute("tabindex","0");window.CURRENT_TOOLTIP_ELEMENT.focus();window.CURRENT_TOOLTIP_ELEMENT.onblur=tooltipBlurHandler}return false};e.onpointerenter=ev=>{if(ev.pointerType!=="mouse"){return}setTooltipHoverTimeout(e,true)};e.onpointermove=ev=>{if(ev.pointerType!=="mouse"){return}setTooltipHoverTimeout(e,true)};e.onpointerleave=ev=>{if(ev.pointerType!=="mouse"){return}if(!e.TOOLTIP_FORCE_VISIBLE&&window.CURRENT_TOOLTIP_ELEMENT&&!window.CURRENT_TOOLTIP_ELEMENT.contains(ev.relatedTarget)){setTooltipHoverTimeout(e,false);addClass(window.CURRENT_TOOLTIP_ELEMENT,"fade-out")}}});const sidebar_menu_toggle=document.getElementsByClassName("sidebar-menu-toggle")[0];if(sidebar_menu_toggle){sidebar_menu_toggle.addEventListener("click",()=>{const sidebar=document.getElementsByClassName("sidebar")[0];if(!hasClass(sidebar,"shown")){showSidebar()}else{hideSidebar()}})}function helpBlurHandler(event){blurHandler(event,getHelpButton(),window.hidePopoverMenus)}function buildHelpMenu(){const book_info=document.createElement("span");const channel=getVar("channel");book_info.className="top";book_info.innerHTML=`You can find more information in \ -the rustdoc book.`;const shortcuts=[["?","Show this help dialog"],["S / /","Focus the search field"],["↑","Move up in search results"],["↓","Move down in search results"],["← / →","Switch result tab (when results focused)"],["⏎","Go to active search result"],["+","Expand all sections"],["-","Collapse all sections"],].map(x=>"
    "+x[0].split(" ").map((y,index)=>((index&1)===0?""+y+"":" "+y+" ")).join("")+"
    "+x[1]+"
    ").join("");const div_shortcuts=document.createElement("div");addClass(div_shortcuts,"shortcuts");div_shortcuts.innerHTML="

    Keyboard Shortcuts

    "+shortcuts+"
    ";const infos=[`For a full list of all search features, take a look here.`,"Prefix searches with a type followed by a colon (e.g., fn:) to \ - restrict the search to a given item kind.","Accepted kinds are: fn, mod, struct, \ - enum, trait, type, macro, \ - and const.","Search functions by type signature (e.g., vec -> usize or \ - -> vec or String, enum:Cow -> bool)","You can look for items with an exact name by putting double quotes around \ - your request: \"string\"","Look for functions that accept or return \ - slices and \ - arrays by writing \ - square brackets (e.g., -> [u8] or [] -> Option)","Look for items inside another one by searching for a path: vec::Vec",].map(x=>"

    "+x+"

    ").join("");const div_infos=document.createElement("div");addClass(div_infos,"infos");div_infos.innerHTML="

    Search Tricks

    "+infos;const rustdoc_version=document.createElement("span");rustdoc_version.className="bottom";const rustdoc_version_code=document.createElement("code");rustdoc_version_code.innerText="rustdoc "+getVar("rustdoc-version");rustdoc_version.appendChild(rustdoc_version_code);const container=document.createElement("div");if(!isHelpPage){container.className="popover"}container.id="help";container.style.display="none";const side_by_side=document.createElement("div");side_by_side.className="side-by-side";side_by_side.appendChild(div_shortcuts);side_by_side.appendChild(div_infos);container.appendChild(book_info);container.appendChild(side_by_side);container.appendChild(rustdoc_version);if(isHelpPage){const help_section=document.createElement("section");help_section.appendChild(container);document.getElementById("main-content").appendChild(help_section);container.style.display="block"}else{const help_button=getHelpButton();help_button.appendChild(container);container.onblur=helpBlurHandler;help_button.onblur=helpBlurHandler;help_button.children[0].onblur=helpBlurHandler}return container}window.hideAllModals=switchFocus=>{hideSidebar();window.hidePopoverMenus();hideTooltip(switchFocus)};window.hidePopoverMenus=()=>{onEachLazy(document.querySelectorAll(".search-form .popover"),elem=>{elem.style.display="none"})};function getHelpMenu(buildNeeded){let menu=getHelpButton().querySelector(".popover");if(!menu&&buildNeeded){menu=buildHelpMenu()}return menu}function showHelp(){getHelpButton().querySelector("a").focus();const menu=getHelpMenu(true);if(menu.style.display==="none"){window.hideAllModals();menu.style.display=""}}if(isHelpPage){showHelp();document.querySelector(`#${HELP_BUTTON_ID} > a`).addEventListener("click",event=>{const target=event.target;if(target.tagName!=="A"||target.parentElement.id!==HELP_BUTTON_ID||event.ctrlKey||event.altKey||event.metaKey){return}event.preventDefault()})}else{document.querySelector(`#${HELP_BUTTON_ID} > a`).addEventListener("click",event=>{const target=event.target;if(target.tagName!=="A"||target.parentElement.id!==HELP_BUTTON_ID||event.ctrlKey||event.altKey||event.metaKey){return}event.preventDefault();const menu=getHelpMenu(true);const shouldShowHelp=menu.style.display==="none";if(shouldShowHelp){showHelp()}else{window.hidePopoverMenus()}})}setMobileTopbar();addSidebarItems();addSidebarCrates();onHashChange(null);window.addEventListener("hashchange",onHashChange);searchState.setup()}());(function(){const SIDEBAR_MIN=100;const SIDEBAR_MAX=500;const RUSTDOC_MOBILE_BREAKPOINT=700;const BODY_MIN=400;const SIDEBAR_VANISH_THRESHOLD=SIDEBAR_MIN/2;const sidebarButton=document.getElementById("sidebar-button");if(sidebarButton){sidebarButton.addEventListener("click",e=>{removeClass(document.documentElement,"hide-sidebar");updateLocalStorage("hide-sidebar","false");if(document.querySelector(".rustdoc.src")){window.rustdocToggleSrcSidebar()}e.preventDefault()})}let currentPointerId=null;let desiredSidebarSize=null;let pendingSidebarResizingFrame=false;const resizer=document.querySelector(".sidebar-resizer");const sidebar=document.querySelector(".sidebar");if(!resizer||!sidebar){return}const isSrcPage=hasClass(document.body,"src");function hideSidebar(){if(isSrcPage){window.rustdocCloseSourceSidebar();updateLocalStorage("src-sidebar-width",null);document.documentElement.style.removeProperty("--src-sidebar-width");sidebar.style.removeProperty("--src-sidebar-width");resizer.style.removeProperty("--src-sidebar-width")}else{addClass(document.documentElement,"hide-sidebar");updateLocalStorage("hide-sidebar","true");updateLocalStorage("desktop-sidebar-width",null);document.documentElement.style.removeProperty("--desktop-sidebar-width");sidebar.style.removeProperty("--desktop-sidebar-width");resizer.style.removeProperty("--desktop-sidebar-width")}}function showSidebar(){if(isSrcPage){window.rustdocShowSourceSidebar()}else{removeClass(document.documentElement,"hide-sidebar");updateLocalStorage("hide-sidebar","false")}}function changeSidebarSize(size){if(isSrcPage){updateLocalStorage("src-sidebar-width",size);sidebar.style.setProperty("--src-sidebar-width",size+"px");resizer.style.setProperty("--src-sidebar-width",size+"px")}else{updateLocalStorage("desktop-sidebar-width",size);sidebar.style.setProperty("--desktop-sidebar-width",size+"px");resizer.style.setProperty("--desktop-sidebar-width",size+"px")}}function isSidebarHidden(){return isSrcPage?!hasClass(document.documentElement,"src-sidebar-expanded"):hasClass(document.documentElement,"hide-sidebar")}function resize(e){if(currentPointerId===null||currentPointerId!==e.pointerId){return}e.preventDefault();const pos=e.clientX-3;if(pos=SIDEBAR_MIN){if(isSidebarHidden()){showSidebar()}const constrainedPos=Math.min(pos,window.innerWidth-BODY_MIN,SIDEBAR_MAX);changeSidebarSize(constrainedPos);desiredSidebarSize=constrainedPos;if(pendingSidebarResizingFrame!==false){clearTimeout(pendingSidebarResizingFrame)}pendingSidebarResizingFrame=setTimeout(()=>{if(currentPointerId===null||pendingSidebarResizingFrame===false){return}pendingSidebarResizingFrame=false;document.documentElement.style.setProperty("--resizing-sidebar-width",desiredSidebarSize+"px",)},100)}}window.addEventListener("resize",()=>{if(window.innerWidth=(window.innerWidth-BODY_MIN)){changeSidebarSize(window.innerWidth-BODY_MIN)}else if(desiredSidebarSize!==null&&desiredSidebarSize>SIDEBAR_MIN){changeSidebarSize(desiredSidebarSize)}});function stopResize(e){if(currentPointerId===null){return}if(e){e.preventDefault()}desiredSidebarSize=sidebar.getBoundingClientRect().width;removeClass(resizer,"active");window.removeEventListener("pointermove",resize,false);window.removeEventListener("pointerup",stopResize,false);removeClass(document.documentElement,"sidebar-resizing");document.documentElement.style.removeProperty("--resizing-sidebar-width");if(resizer.releasePointerCapture){resizer.releasePointerCapture(currentPointerId);currentPointerId=null}}function initResize(e){if(currentPointerId!==null||e.altKey||e.ctrlKey||e.metaKey||e.button!==0){return}if(resizer.setPointerCapture){resizer.setPointerCapture(e.pointerId);if(!resizer.hasPointerCapture(e.pointerId)){resizer.releasePointerCapture(e.pointerId);return}currentPointerId=e.pointerId}window.hideAllModals(false);e.preventDefault();window.addEventListener("pointermove",resize,false);window.addEventListener("pointercancel",stopResize,false);window.addEventListener("pointerup",stopResize,false);addClass(resizer,"active");addClass(document.documentElement,"sidebar-resizing");const pos=e.clientX-sidebar.offsetLeft-3;document.documentElement.style.setProperty("--resizing-sidebar-width",pos+"px");desiredSidebarSize=null}resizer.addEventListener("pointerdown",initResize,false)}());(function(){let reset_button_timeout=null;const but=document.getElementById("copy-path");if(!but){return}but.onclick=()=>{const parent=but.parentElement;const path=[];onEach(parent.childNodes,child=>{if(child.tagName==="A"){path.push(child.textContent)}});const el=document.createElement("textarea");el.value=path.join("::");el.setAttribute("readonly","");el.style.position="absolute";el.style.left="-9999px";document.body.appendChild(el);el.select();document.execCommand("copy");document.body.removeChild(el);but.classList.add("clicked");if(reset_button_timeout!==null){window.clearTimeout(reset_button_timeout)}function reset_button(){reset_button_timeout=null;but.classList.remove("clicked")}reset_button_timeout=window.setTimeout(reset_button,1000)}}()) \ No newline at end of file diff --git a/crates/static.files/noscript-3b12f09e550e0385.css b/crates/static.files/noscript-3b12f09e550e0385.css new file mode 100644 index 00000000..befe4163 --- /dev/null +++ b/crates/static.files/noscript-3b12f09e550e0385.css @@ -0,0 +1 @@ + #main-content .attributes{margin-left:0 !important;}#copy-path,#sidebar-button,.sidebar-resizer{display:none !important;}nav.sub{display:none;}.src .sidebar{display:none;}.notable-traits{display:none;}:root,:root:not([data-theme]){--main-background-color:white;--main-color:black;--settings-input-color:#2196f3;--settings-input-border-color:#717171;--settings-button-color:#000;--settings-button-border-focus:#717171;--sidebar-background-color:#f5f5f5;--sidebar-background-color-hover:#e0e0e0;--code-block-background-color:#f5f5f5;--scrollbar-track-background-color:#dcdcdc;--scrollbar-thumb-background-color:rgba(36,37,39,0.6);--scrollbar-color:rgba(36,37,39,0.6) #d9d9d9;--headings-border-bottom-color:#ddd;--border-color:#e0e0e0;--button-background-color:#fff;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:none;--mobile-sidebar-menu-filter:none;--search-input-focused-border-color:#66afe9;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(35%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ad378a;--trait-link-color:#6e4fc9;--assoc-item-link-color:#3873ad;--function-link-color:#ad7c37;--macro-link-color:#068000;--keyword-link-color:#3873ad;--mod-link-color:#3873ad;--link-color:#3873ad;--sidebar-link-color:#356da4;--sidebar-current-link-background-color:#fff;--search-result-link-focus-background-color:#ccc;--search-result-border-color:#aaa3;--search-color:#000;--search-error-code-background-color:#d0cccc;--search-results-alias-color:#000;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#e6e6e6;--search-tab-button-not-selected-background:#e6e6e6;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#fff;--settings-menu-filter:none;--stab-background-color:#fff5d6;--stab-code-color:#000;--code-highlight-kw-color:#8959a8;--code-highlight-kw-2-color:#4271ae;--code-highlight-lifetime-color:#b76514;--code-highlight-prelude-color:#4271ae;--code-highlight-prelude-val-color:#c82829;--code-highlight-number-color:#718c00;--code-highlight-string-color:#718c00;--code-highlight-literal-color:#c82829;--code-highlight-attribute-color:#c82829;--code-highlight-self-color:#c82829;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8e908c;--code-highlight-doc-comment-color:#4d4d4c;--src-line-numbers-span-color:#c67e2d;--src-line-number-highlighted-background-color:#fdffd3;--target-background-color:#fdffd3;--target-border-color:#ad7c37;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:initial;--crate-search-div-filter:invert(100%) sepia(0%) saturate(4223%) hue-rotate(289deg) brightness(114%) contrast(76%);--crate-search-div-hover-filter:invert(44%) sepia(18%) saturate(23%) hue-rotate(317deg) brightness(96%) contrast(93%);--crate-search-hover-border:#717171;--src-sidebar-background-selected:#fff;--src-sidebar-background-hover:#e0e0e0;--table-alt-row-background-color:#f5f5f5;--codeblock-link-background:#eee;--scrape-example-toggle-line-background:#ccc;--scrape-example-toggle-line-hover-background:#999;--scrape-example-code-line-highlight:#fcffd6;--scrape-example-code-line-highlight-focus:#f6fdb0;--scrape-example-help-border-color:#555;--scrape-example-help-color:#333;--scrape-example-help-hover-border-color:#000;--scrape-example-help-hover-color:#000;--scrape-example-code-wrapper-background-start:rgba(255,255,255,1);--scrape-example-code-wrapper-background-end:rgba(255,255,255,0);--sidebar-resizer-hover:hsl(207,90%,66%);--sidebar-resizer-active:hsl(207,90%,54%);}@media (prefers-color-scheme:dark){:root,:root:not([data-theme]){--main-background-color:#353535;--main-color:#ddd;--settings-input-color:#2196f3;--settings-input-border-color:#999;--settings-button-color:#000;--settings-button-border-focus:#ffb900;--sidebar-background-color:#505050;--sidebar-background-color-hover:#676767;--code-block-background-color:#2A2A2A;--scrollbar-track-background-color:#717171;--scrollbar-thumb-background-color:rgba(32,34,37,.6);--scrollbar-color:rgba(32,34,37,.6) #5a5a5a;--headings-border-bottom-color:#d2d2d2;--border-color:#e0e0e0;--button-background-color:#f0f0f0;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--mobile-sidebar-menu-filter:invert(100%);--search-input-focused-border-color:#008dfd;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(65%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#2dbfb8;--trait-link-color:#b78cf2;--assoc-item-link-color:#d2991d;--function-link-color:#2bab63;--macro-link-color:#09bd00;--keyword-link-color:#d2991d;--mod-link-color:#d2991d;--link-color:#d2991d;--sidebar-link-color:#fdbf35;--sidebar-current-link-background-color:#444;--search-result-link-focus-background-color:#616161;--search-result-border-color:#aaa3;--search-color:#111;--search-error-code-background-color:#484848;--search-results-alias-color:#fff;--search-results-grey-color:#ccc;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#252525;--search-tab-button-not-selected-background:#252525;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#353535;--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ab8ac1;--code-highlight-kw-2-color:#769acb;--code-highlight-lifetime-color:#d97f26;--code-highlight-prelude-color:#769acb;--code-highlight-prelude-val-color:#ee6868;--code-highlight-number-color:#83a300;--code-highlight-string-color:#83a300;--code-highlight-literal-color:#ee6868;--code-highlight-attribute-color:#ee6868;--code-highlight-self-color:#ee6868;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8d8d8b;--code-highlight-doc-comment-color:#8ca375;--src-line-numbers-span-color:#3b91e2;--src-line-number-highlighted-background-color:#0a042f;--target-background-color:#494a3d;--target-border-color:#bb7410;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(94%) sepia(0%) saturate(721%) hue-rotate(255deg) brightness(90%) contrast(90%);--crate-search-div-hover-filter:invert(69%) sepia(60%) saturate(6613%) hue-rotate(184deg) brightness(100%) contrast(91%);--crate-search-hover-border:#2196f3;--src-sidebar-background-selected:#333;--src-sidebar-background-hover:#444;--table-alt-row-background-color:#2a2a2a;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(53,53,53,1);--scrape-example-code-wrapper-background-end:rgba(53,53,53,0);--sidebar-resizer-hover:hsl(207,30%,54%);--sidebar-resizer-active:hsl(207,90%,54%);}} \ No newline at end of file diff --git a/crates/static.files/noscript-df360f571f6edeae.css b/crates/static.files/noscript-df360f571f6edeae.css deleted file mode 100644 index 4c310ae5..00000000 --- a/crates/static.files/noscript-df360f571f6edeae.css +++ /dev/null @@ -1 +0,0 @@ - #main-content .attributes{margin-left:0 !important;}#copy-path,#sidebar-button,.sidebar-resizer{display:none !important;}nav.sub{display:none;}.src .sidebar{display:none;}.notable-traits{display:none;}:root,:root:not([data-theme]){--main-background-color:white;--main-color:black;--settings-input-color:#2196f3;--settings-input-border-color:#717171;--settings-button-color:#000;--settings-button-border-focus:#717171;--sidebar-background-color:#f5f5f5;--sidebar-background-color-hover:#e0e0e0;--code-block-background-color:#f5f5f5;--scrollbar-track-background-color:#dcdcdc;--scrollbar-thumb-background-color:rgba(36,37,39,0.6);--scrollbar-color:rgba(36,37,39,0.6) #d9d9d9;--headings-border-bottom-color:#ddd;--border-color:#e0e0e0;--button-background-color:#fff;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:none;--mobile-sidebar-menu-filter:none;--search-input-focused-border-color:#66afe9;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(35%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ad378a;--trait-link-color:#6e4fc9;--assoc-item-link-color:#3873ad;--function-link-color:#ad7c37;--macro-link-color:#068000;--keyword-link-color:#3873ad;--mod-link-color:#3873ad;--link-color:#3873ad;--sidebar-link-color:#356da4;--sidebar-current-link-background-color:#fff;--search-result-link-focus-background-color:#ccc;--search-result-border-color:#aaa3;--search-color:#000;--search-error-code-background-color:#d0cccc;--search-results-alias-color:#000;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#e6e6e6;--search-tab-button-not-selected-background:#e6e6e6;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#fff;--settings-menu-filter:none;--stab-background-color:#fff5d6;--stab-code-color:#000;--code-highlight-kw-color:#8959a8;--code-highlight-kw-2-color:#4271ae;--code-highlight-lifetime-color:#b76514;--code-highlight-prelude-color:#4271ae;--code-highlight-prelude-val-color:#c82829;--code-highlight-number-color:#718c00;--code-highlight-string-color:#718c00;--code-highlight-literal-color:#c82829;--code-highlight-attribute-color:#c82829;--code-highlight-self-color:#c82829;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8e908c;--code-highlight-doc-comment-color:#4d4d4c;--src-line-numbers-span-color:#c67e2d;--src-line-number-highlighted-background-color:#fdffd3;--test-arrow-color:#f5f5f5;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#f5f5f5;--test-arrow-hover-background-color:rgb(78,139,202);--target-background-color:#fdffd3;--target-border-color:#ad7c37;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:initial;--crate-search-div-filter:invert(100%) sepia(0%) saturate(4223%) hue-rotate(289deg) brightness(114%) contrast(76%);--crate-search-div-hover-filter:invert(44%) sepia(18%) saturate(23%) hue-rotate(317deg) brightness(96%) contrast(93%);--crate-search-hover-border:#717171;--src-sidebar-background-selected:#fff;--src-sidebar-background-hover:#e0e0e0;--table-alt-row-background-color:#f5f5f5;--codeblock-link-background:#eee;--scrape-example-toggle-line-background:#ccc;--scrape-example-toggle-line-hover-background:#999;--scrape-example-code-line-highlight:#fcffd6;--scrape-example-code-line-highlight-focus:#f6fdb0;--scrape-example-help-border-color:#555;--scrape-example-help-color:#333;--scrape-example-help-hover-border-color:#000;--scrape-example-help-hover-color:#000;--scrape-example-code-wrapper-background-start:rgba(255,255,255,1);--scrape-example-code-wrapper-background-end:rgba(255,255,255,0);--sidebar-resizer-hover:hsl(207,90%,66%);--sidebar-resizer-active:hsl(207,90%,54%);}@media (prefers-color-scheme:dark){:root,:root:not([data-theme]){--main-background-color:#353535;--main-color:#ddd;--settings-input-color:#2196f3;--settings-input-border-color:#999;--settings-button-color:#000;--settings-button-border-focus:#ffb900;--sidebar-background-color:#505050;--sidebar-background-color-hover:#676767;--code-block-background-color:#2A2A2A;--scrollbar-track-background-color:#717171;--scrollbar-thumb-background-color:rgba(32,34,37,.6);--scrollbar-color:rgba(32,34,37,.6) #5a5a5a;--headings-border-bottom-color:#d2d2d2;--border-color:#e0e0e0;--button-background-color:#f0f0f0;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--mobile-sidebar-menu-filter:invert(100%);--search-input-focused-border-color:#008dfd;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(65%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#2dbfb8;--trait-link-color:#b78cf2;--assoc-item-link-color:#d2991d;--function-link-color:#2bab63;--macro-link-color:#09bd00;--keyword-link-color:#d2991d;--mod-link-color:#d2991d;--link-color:#d2991d;--sidebar-link-color:#fdbf35;--sidebar-current-link-background-color:#444;--search-result-link-focus-background-color:#616161;--search-result-border-color:#aaa3;--search-color:#111;--search-error-code-background-color:#484848;--search-results-alias-color:#fff;--search-results-grey-color:#ccc;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#252525;--search-tab-button-not-selected-background:#252525;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#353535;--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ab8ac1;--code-highlight-kw-2-color:#769acb;--code-highlight-lifetime-color:#d97f26;--code-highlight-prelude-color:#769acb;--code-highlight-prelude-val-color:#ee6868;--code-highlight-number-color:#83a300;--code-highlight-string-color:#83a300;--code-highlight-literal-color:#ee6868;--code-highlight-attribute-color:#ee6868;--code-highlight-self-color:#ee6868;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8d8d8b;--code-highlight-doc-comment-color:#8ca375;--src-line-numbers-span-color:#3b91e2;--src-line-number-highlighted-background-color:#0a042f;--test-arrow-color:#dedede;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#dedede;--test-arrow-hover-background-color:#4e8bca;--target-background-color:#494a3d;--target-border-color:#bb7410;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(94%) sepia(0%) saturate(721%) hue-rotate(255deg) brightness(90%) contrast(90%);--crate-search-div-hover-filter:invert(69%) sepia(60%) saturate(6613%) hue-rotate(184deg) brightness(100%) contrast(91%);--crate-search-hover-border:#2196f3;--src-sidebar-background-selected:#333;--src-sidebar-background-hover:#444;--table-alt-row-background-color:#2a2a2a;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(53,53,53,1);--scrape-example-code-wrapper-background-end:rgba(53,53,53,0);--sidebar-resizer-hover:hsl(207,30%,54%);--sidebar-resizer-active:hsl(207,90%,54%);}} \ No newline at end of file diff --git a/crates/static.files/rustdoc-492a78a4a87dcc01.css b/crates/static.files/rustdoc-492a78a4a87dcc01.css new file mode 100644 index 00000000..e9199f95 --- /dev/null +++ b/crates/static.files/rustdoc-492a78a4a87dcc01.css @@ -0,0 +1,47 @@ + :root{--nav-sub-mobile-padding:8px;--search-typename-width:6.75rem;--desktop-sidebar-width:200px;--src-sidebar-width:300px;--desktop-sidebar-z-index:100;--sidebar-elems-left-padding:24px;--clipboard-image:url('data:image/svg+xml,\ +\ +\ +');--copy-path-height:34px;--copy-path-width:33px;--checkmark-image:url('data:image/svg+xml,\ +\ +');--button-left-margin:4px;--button-border-radius:2px;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:400;src:local('Fira Sans'),url("FiraSans-Regular-018c141bf0843ffd.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:500;src:local('Fira Sans Medium'),url("FiraSans-Medium-8f9a781e4970d388.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:400;src:local('Source Serif 4'),url("SourceSerif4-Regular-46f98efaafac5295.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:italic;font-weight:400;src:local('Source Serif 4 Italic'),url("SourceSerif4-It-acdfaf1a8af734b1.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:700;src:local('Source Serif 4 Bold'),url("SourceSerif4-Bold-a2c9cd1067f8b328.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:400;src:url("SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:italic;font-weight:400;src:url("SourceCodePro-It-1cc31594bf4f1f79.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:600;src:url("SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'NanumBarunGothic';src:url("NanumBarunGothic-0f09457c7a19b7c6.ttf.woff2") format("woff2");font-display:swap;unicode-range:U+AC00-D7AF,U+1100-11FF,U+3130-318F,U+A960-A97F,U+D7B0-D7FF;}*{box-sizing:border-box;}body{font:1rem/1.5 "Source Serif 4",NanumBarunGothic,serif;margin:0;position:relative;overflow-wrap:break-word;overflow-wrap:anywhere;font-feature-settings:"kern","liga";background-color:var(--main-background-color);color:var(--main-color);}h1{font-size:1.5rem;}h2{font-size:1.375rem;}h3{font-size:1.25rem;}h1,h2,h3,h4,h5,h6{font-weight:500;}h1,h2,h3,h4{margin:25px 0 15px 0;padding-bottom:6px;}.docblock h3,.docblock h4,h5,h6{margin:15px 0 5px 0;}.docblock>h2:first-child,.docblock>h3:first-child,.docblock>h4:first-child,.docblock>h5:first-child,.docblock>h6:first-child{margin-top:0;}.main-heading h1{margin:0;padding:0;flex-grow:1;overflow-wrap:break-word;overflow-wrap:anywhere;}.main-heading{display:flex;flex-wrap:wrap;padding-bottom:6px;margin-bottom:15px;}.content h2,.top-doc .docblock>h3,.top-doc .docblock>h4{border-bottom:1px solid var(--headings-border-bottom-color);}h1,h2{line-height:1.25;padding-top:3px;padding-bottom:9px;}h3.code-header{font-size:1.125rem;}h4.code-header{font-size:1rem;}.code-header{font-weight:600;margin:0;padding:0;white-space:pre-wrap;}#crate-search,h1,h2,h3,h4,h5,h6,.sidebar,.mobile-topbar,.search-input,.search-results .result-name,.item-name>a,.out-of-band,span.since,a.src,#help-button>a,summary.hideme,.scraped-example-list,ul.all-items{font-family:"Fira Sans",Arial,NanumBarunGothic,sans-serif;}#toggle-all-docs,a.anchor,.section-header a,#src-sidebar a,.rust a,.sidebar h2 a,.sidebar h3 a,.mobile-topbar h2 a,h1 a,.search-results a,.stab,.result-name i{color:var(--main-color);}span.enum,a.enum,span.struct,a.struct,span.union,a.union,span.primitive,a.primitive,span.type,a.type,span.foreigntype,a.foreigntype{color:var(--type-link-color);}span.trait,a.trait,span.traitalias,a.traitalias{color:var(--trait-link-color);}span.associatedtype,a.associatedtype,span.constant,a.constant,span.static,a.static{color:var(--assoc-item-link-color);}span.fn,a.fn,span.method,a.method,span.tymethod,a.tymethod{color:var(--function-link-color);}span.attr,a.attr,span.derive,a.derive,span.macro,a.macro{color:var(--macro-link-color);}span.mod,a.mod{color:var(--mod-link-color);}span.keyword,a.keyword{color:var(--keyword-link-color);}a{color:var(--link-color);text-decoration:none;}ol,ul{padding-left:24px;}ul ul,ol ul,ul ol,ol ol{margin-bottom:.625em;}p,.docblock>.warning{margin:0 0 .75em 0;}p:last-child,.docblock>.warning:last-child{margin:0;}button{padding:1px 6px;cursor:pointer;}button#toggle-all-docs{padding:0;background:none;border:none;-webkit-appearance:none;opacity:1;}.rustdoc{display:flex;flex-direction:row;flex-wrap:nowrap;}main{position:relative;flex-grow:1;padding:10px 15px 40px 45px;min-width:0;}.src main{padding:15px;}.width-limiter{max-width:960px;margin-right:auto;}details:not(.toggle) summary{margin-bottom:.6em;}code,pre,.code-header{font-family:"Source Code Pro",monospace;}.docblock code,.docblock-short code{border-radius:3px;padding:0 0.125em;}.docblock pre code,.docblock-short pre code{padding:0;}pre{padding:14px;line-height:1.5;}pre.item-decl{overflow-x:auto;}.item-decl .type-contents-toggle{contain:initial;}.src .content pre{padding:20px;}.rustdoc.src .example-wrap pre.src-line-numbers{padding:20px 0 20px 4px;}img{max-width:100%;}.logo-container{line-height:0;display:block;}.rust-logo{filter:var(--rust-logo-filter);}.sidebar{font-size:0.875rem;flex:0 0 var(--desktop-sidebar-width);width:var(--desktop-sidebar-width);overflow-y:scroll;overscroll-behavior:contain;position:sticky;height:100vh;top:0;left:0;z-index:var(--desktop-sidebar-z-index);}.rustdoc.src .sidebar{flex-basis:50px;width:50px;border-right:1px solid;overflow-x:hidden;overflow-y:hidden;}.hide-sidebar .sidebar,.hide-sidebar .sidebar-resizer{display:none;}.sidebar-resizer{touch-action:none;width:9px;cursor:col-resize;z-index:calc(var(--desktop-sidebar-z-index) + 1);position:fixed;height:100%;left:calc(var(--desktop-sidebar-width) + 1px);}.rustdoc.src .sidebar-resizer{left:49px;}.src-sidebar-expanded .src .sidebar-resizer{left:var(--src-sidebar-width);}.sidebar-resizing{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;}.sidebar-resizing*{cursor:col-resize !important;}.sidebar-resizing .sidebar{position:fixed;}.sidebar-resizing>body{padding-left:var(--resizing-sidebar-width);}.sidebar-resizer:hover,.sidebar-resizer:active,.sidebar-resizer:focus,.sidebar-resizer.active{width:10px;margin:0;left:var(--desktop-sidebar-width);border-left:solid 1px var(--sidebar-resizer-hover);}.src-sidebar-expanded .rustdoc.src .sidebar-resizer:hover,.src-sidebar-expanded .rustdoc.src .sidebar-resizer:active,.src-sidebar-expanded .rustdoc.src .sidebar-resizer:focus,.src-sidebar-expanded .rustdoc.src .sidebar-resizer.active{left:calc(var(--src-sidebar-width) - 1px);}@media (pointer:coarse){.sidebar-resizer{display:none !important;}}.sidebar-resizer.active{padding:0 140px;width:2px;margin-left:-140px;border-left:none;}.sidebar-resizer.active:before{border-left:solid 2px var(--sidebar-resizer-active);display:block;height:100%;content:"";}.sidebar,.mobile-topbar,.sidebar-menu-toggle,#src-sidebar{background-color:var(--sidebar-background-color);}.src .sidebar>*{visibility:hidden;}.src-sidebar-expanded .src .sidebar{overflow-y:auto;flex-basis:var(--src-sidebar-width);width:var(--src-sidebar-width);}.src-sidebar-expanded .src .sidebar>*{visibility:visible;}#all-types{margin-top:1em;}*{scrollbar-width:initial;scrollbar-color:var(--scrollbar-color);}.sidebar{scrollbar-width:thin;scrollbar-color:var(--scrollbar-color);}::-webkit-scrollbar{width:12px;}.sidebar::-webkit-scrollbar{width:8px;}::-webkit-scrollbar-track{-webkit-box-shadow:inset 0;background-color:var(--scrollbar-track-background-color);}.sidebar::-webkit-scrollbar-track{background-color:var(--scrollbar-track-background-color);}::-webkit-scrollbar-thumb,.sidebar::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-background-color);}.hidden{display:none !important;}.logo-container>img{height:48px;width:48px;}ul.block,.block li{padding:0;margin:0;list-style:none;}.sidebar-elems a,.sidebar>h2 a{display:block;padding:0.25rem;margin-right:0.25rem;border-left:solid var(--sidebar-elems-left-padding) transparent;margin-left:calc(-0.25rem - var(--sidebar-elems-left-padding));background-clip:border-box;}.sidebar h2{text-wrap:balance;overflow-wrap:anywhere;padding:0;margin:0.7rem 0;}.sidebar h3{text-wrap:balance;overflow-wrap:anywhere;font-size:1.125rem;padding:0;margin:0;}.sidebar-elems,.sidebar>.version,.sidebar>h2{padding-left:var(--sidebar-elems-left-padding);}.sidebar a{color:var(--sidebar-link-color);}.sidebar .current,.sidebar .current a,.sidebar-crate a.logo-container:hover+h2 a,.sidebar a:hover:not(.logo-container){background-color:var(--sidebar-current-link-background-color);}.sidebar-elems .block{margin-bottom:2em;}.sidebar-elems .block li a{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;}.sidebar-crate{display:flex;align-items:center;justify-content:center;margin:14px 32px 1rem;row-gap:10px;column-gap:32px;flex-wrap:wrap;}.sidebar-crate h2{flex-grow:1;margin:0 -8px;align-self:start;}.sidebar-crate .logo-container{margin:0 calc(-16px - var(--sidebar-elems-left-padding));padding:0 var(--sidebar-elems-left-padding);text-align:center;}.sidebar-crate .logo-container img{margin-top:-16px;border-top:solid 16px transparent;box-sizing:content-box;position:relative;background-clip:border-box;z-index:1;}.sidebar-crate h2 a{display:block;border-left:solid var(--sidebar-elems-left-padding) transparent;background-clip:border-box;margin:0 calc(-24px + 0.25rem) 0 calc(-0.2rem - var(--sidebar-elems-left-padding));padding:calc((16px - 0.57rem ) / 2 ) 0.25rem;padding-left:0.2rem;}.sidebar-crate h2 .version{display:block;font-weight:normal;font-size:1rem;overflow-wrap:break-word;}.sidebar-crate+.version{margin-top:-1rem;margin-bottom:1rem;}.mobile-topbar{display:none;}.rustdoc .example-wrap{display:flex;position:relative;margin-bottom:10px;}.rustdoc .example-wrap>pre{border-radius:6px;}.rustdoc .example-wrap:last-child{margin-bottom:0px;}.rustdoc .example-wrap pre{margin:0;flex-grow:1;}.rustdoc:not(.src) .example-wrap pre{overflow:auto hidden;}.rustdoc .example-wrap pre.example-line-numbers,.rustdoc .example-wrap pre.src-line-numbers{flex-grow:0;min-width:fit-content;overflow:initial;text-align:right;-webkit-user-select:none;user-select:none;padding:14px 8px;color:var(--src-line-numbers-span-color);}.rustdoc .example-wrap pre.src-line-numbers{padding:14px 0;}.src-line-numbers a,.src-line-numbers span{color:var(--src-line-numbers-span-color);padding:0 8px;}.src-line-numbers :target{background-color:transparent;border-right:none;padding:0 8px;}.src-line-numbers .line-highlighted{background-color:var(--src-line-number-highlighted-background-color);}.search-loading{text-align:center;}.docblock-short{overflow-wrap:break-word;overflow-wrap:anywhere;}.docblock :not(pre)>code,.docblock-short code{white-space:pre-wrap;}.top-doc .docblock h2{font-size:1.375rem;}.top-doc .docblock h3{font-size:1.25rem;}.top-doc .docblock h4,.top-doc .docblock h5{font-size:1.125rem;}.top-doc .docblock h6{font-size:1rem;}.docblock h5{font-size:1rem;}.docblock h6{font-size:0.875rem;}.docblock{margin-left:24px;position:relative;}.docblock>:not(.more-examples-toggle):not(.example-wrap){max-width:100%;overflow-x:auto;}.out-of-band{flex-grow:0;font-size:1.125rem;}.docblock code,.docblock-short code,pre,.rustdoc.src .example-wrap{background-color:var(--code-block-background-color);}#main-content{position:relative;}.docblock table{margin:.5em 0;border-collapse:collapse;}.docblock table td,.docblock table th{padding:.5em;border:1px solid var(--border-color);}.docblock table tbody tr:nth-child(2n){background:var(--table-alt-row-background-color);}.docblock .stab,.docblock-short .stab{display:inline-block;}div.where{white-space:pre-wrap;font-size:0.875rem;}.item-info{display:block;margin-left:24px;}.item-info code{font-size:0.875rem;}#main-content>.item-info{margin-left:0;}nav.sub{flex-grow:1;flex-flow:row nowrap;margin:4px 0 25px 0;display:flex;align-items:center;}.search-form{position:relative;display:flex;height:34px;flex-grow:1;}.src nav.sub{margin:0 0 15px 0;}.section-header{display:block;position:relative;}.section-header:hover>.anchor,.impl:hover>.anchor,.trait-impl:hover>.anchor,.variant:hover>.anchor{display:initial;}.anchor{display:none;position:absolute;left:-0.5em;background:none !important;}.anchor.field{left:-5px;}.section-header>.anchor{left:-15px;padding-right:8px;}h2.section-header>.anchor{padding-right:6px;}a.doc-anchor{color:var(--main-color);display:none;position:absolute;left:-17px;padding-right:10px;padding-left:3px;}*:hover>.doc-anchor{display:block;}.top-doc>.docblock>*:first-child>.doc-anchor{display:none !important;}.main-heading a:hover,.example-wrap .rust a:hover,.all-items a:hover,.docblock a:not(.scrape-help):not(.tooltip):hover:not(.doc-anchor),.docblock-short a:not(.scrape-help):not(.tooltip):hover,.item-info a{text-decoration:underline;}.crate.block li.current a{font-weight:500;}table,.item-table{overflow-wrap:break-word;}.item-table{display:table;padding:0;margin:0;width:100%;}.item-table>li{display:table-row;}.item-table>li>div{display:table-cell;}.item-table>li>.item-name{padding-right:1.25rem;}.search-results-title{margin-top:0;white-space:nowrap;display:flex;align-items:baseline;}#crate-search-div{position:relative;min-width:5em;}#crate-search{min-width:115px;padding:0 23px 0 4px;max-width:100%;text-overflow:ellipsis;border:1px solid var(--border-color);border-radius:4px;outline:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;text-indent:0.01px;background-color:var(--main-background-color);color:inherit;line-height:1.5;font-weight:500;}#crate-search:hover,#crate-search:focus{border-color:var(--crate-search-hover-border);}#crate-search-div::after{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;content:"";background-repeat:no-repeat;background-size:20px;background-position:calc(100% - 2px) 56%;background-image:url('data:image/svg+xml, \ + ');filter:var(--crate-search-div-filter);}#crate-search-div:hover::after,#crate-search-div:focus-within::after{filter:var(--crate-search-div-hover-filter);}#crate-search>option{font-size:1rem;}.search-input{-webkit-appearance:none;outline:none;border:1px solid var(--border-color);border-radius:2px;padding:8px;font-size:1rem;flex-grow:1;background-color:var(--button-background-color);color:var(--search-color);}.search-input:focus{border-color:var(--search-input-focused-border-color);}.search-results{display:none;}.search-results.active{display:block;}.search-results>a{display:flex;margin-left:2px;margin-right:2px;border-bottom:1px solid var(--search-result-border-color);gap:1em;}.search-results>a>div.desc{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:2;}.search-results a:hover,.search-results a:focus{background-color:var(--search-result-link-focus-background-color);}.search-results .result-name{display:flex;align-items:center;justify-content:start;flex:3;}.search-results .result-name .alias{color:var(--search-results-alias-color);}.search-results .result-name .grey{color:var(--search-results-grey-color);}.search-results .result-name .typename{color:var(--search-results-grey-color);font-size:0.875rem;width:var(--search-typename-width);}.search-results .result-name .path{word-break:break-all;max-width:calc(100% - var(--search-typename-width));display:inline-block;}.search-results .result-name .path>*{display:inline;}.popover{position:absolute;top:100%;right:0;z-index:calc(var(--desktop-sidebar-z-index) + 1);margin-top:7px;border-radius:3px;border:1px solid var(--border-color);background-color:var(--main-background-color);color:var(--main-color);--popover-arrow-offset:11px;}.popover::before{content:'';position:absolute;right:var(--popover-arrow-offset);border:solid var(--border-color);border-width:1px 1px 0 0;background-color:var(--main-background-color);padding:4px;transform:rotate(-45deg);top:-5px;}.setting-line{margin:1.2em 0.6em;}.setting-radio input,.setting-check input{margin-right:0.3em;height:1.2rem;width:1.2rem;border:2px solid var(--settings-input-border-color);outline:none;-webkit-appearance:none;cursor:pointer;}.setting-radio input{border-radius:50%;}.setting-radio span,.setting-check span{padding-bottom:1px;}.setting-radio{margin-top:0.1em;margin-bottom:0.1em;min-width:3.8em;padding:0.3em;display:inline-flex;align-items:center;cursor:pointer;}.setting-radio+.setting-radio{margin-left:0.5em;}.setting-check{margin-right:20px;display:flex;align-items:center;cursor:pointer;}.setting-radio input:checked{box-shadow:inset 0 0 0 3px var(--main-background-color);background-color:var(--settings-input-color);}.setting-check input:checked{background-color:var(--settings-input-color);border-width:1px;content:url('data:image/svg+xml,\ + \ + ');}.setting-radio input:focus,.setting-check input:focus{box-shadow:0 0 1px 1px var(--settings-input-color);}.setting-radio input:checked:focus{box-shadow:inset 0 0 0 3px var(--main-background-color),0 0 2px 2px var(--settings-input-color);}.setting-radio input:hover,.setting-check input:hover{border-color:var(--settings-input-color) !important;}#help.popover{max-width:600px;--popover-arrow-offset:48px;}#help dt{float:left;clear:left;margin-right:0.5rem;}#help span.top,#help span.bottom{text-align:center;display:block;font-size:1.125rem;}#help span.top{margin:10px 0;border-bottom:1px solid var(--border-color);padding-bottom:4px;margin-bottom:6px;}#help span.bottom{clear:both;border-top:1px solid var(--border-color);}.side-by-side>div{width:50%;float:left;padding:0 20px 20px 17px;}.item-info .stab{display:block;padding:3px;margin-bottom:5px;}.item-name .stab{margin-left:0.3125em;}.stab{padding:0 2px;font-size:0.875rem;font-weight:normal;color:var(--main-color);background-color:var(--stab-background-color);width:fit-content;white-space:pre-wrap;border-radius:3px;display:inline;vertical-align:baseline;}.stab.portability>code{background:none;color:var(--stab-code-color);}.stab .emoji,.item-info .stab::before{font-size:1.25rem;}.stab .emoji{margin-right:0.3rem;}.item-info .stab::before{content:"\0";width:0;display:inline-block;color:transparent;}.emoji{text-shadow:1px 0 0 black,-1px 0 0 black,0 1px 0 black,0 -1px 0 black;}.since{font-weight:normal;font-size:initial;}.rightside{padding-left:12px;float:right;}.rightside:not(a),.out-of-band{color:var(--right-side-color);}pre.rust{tab-size:4;-moz-tab-size:4;}pre.rust .kw{color:var(--code-highlight-kw-color);}pre.rust .kw-2{color:var(--code-highlight-kw-2-color);}pre.rust .lifetime{color:var(--code-highlight-lifetime-color);}pre.rust .prelude-ty{color:var(--code-highlight-prelude-color);}pre.rust .prelude-val{color:var(--code-highlight-prelude-val-color);}pre.rust .string{color:var(--code-highlight-string-color);}pre.rust .number{color:var(--code-highlight-number-color);}pre.rust .bool-val{color:var(--code-highlight-literal-color);}pre.rust .self{color:var(--code-highlight-self-color);}pre.rust .attr{color:var(--code-highlight-attribute-color);}pre.rust .macro,pre.rust .macro-nonterminal{color:var(--code-highlight-macro-color);}pre.rust .question-mark{font-weight:bold;color:var(--code-highlight-question-mark-color);}pre.rust .comment{color:var(--code-highlight-comment-color);}pre.rust .doccomment{color:var(--code-highlight-doc-comment-color);}.rustdoc.src .example-wrap pre.rust a{background:var(--codeblock-link-background);}.example-wrap.compile_fail,.example-wrap.should_panic{border-left:2px solid var(--codeblock-error-color);}.ignore.example-wrap{border-left:2px solid var(--codeblock-ignore-color);}.example-wrap.compile_fail:hover,.example-wrap.should_panic:hover{border-left:2px solid var(--codeblock-error-hover-color);}.example-wrap.ignore:hover{border-left:2px solid var(--codeblock-ignore-hover-color);}.example-wrap.compile_fail .tooltip,.example-wrap.should_panic .tooltip{color:var(--codeblock-error-color);}.example-wrap.ignore .tooltip{color:var(--codeblock-ignore-color);}.example-wrap.compile_fail:hover .tooltip,.example-wrap.should_panic:hover .tooltip{color:var(--codeblock-error-hover-color);}.example-wrap.ignore:hover .tooltip{color:var(--codeblock-ignore-hover-color);}.example-wrap .tooltip{position:absolute;display:block;left:-25px;top:5px;margin:0;line-height:1;}.example-wrap.compile_fail .tooltip,.example-wrap.should_panic .tooltip,.example-wrap.ignore .tooltip{font-weight:bold;font-size:1.25rem;}.content .docblock .warning{border-left:2px solid var(--warning-border-color);padding:14px;position:relative;overflow-x:visible !important;}.content .docblock .warning::before{color:var(--warning-border-color);content:"ⓘ";position:absolute;left:-25px;top:5px;font-weight:bold;font-size:1.25rem;}.top-doc>.docblock>.warning:first-child::before{top:20px;}.example-wrap>a.test-arrow,.example-wrap .button-holder{visibility:hidden;position:absolute;top:4px;right:4px;z-index:1;}a.test-arrow{height:var(--copy-path-height);padding:6px 4px 0 11px;}a.test-arrow::before{content:url('data:image/svg+xml,');}.example-wrap .button-holder{display:flex;}@media not (pointer:coarse){.example-wrap:hover>a.test-arrow,.example-wrap:hover>.button-holder{visibility:visible;}}.example-wrap .button-holder.keep-visible{visibility:visible;}.example-wrap .button-holder .copy-button,.example-wrap .test-arrow{background:var(--main-background-color);cursor:pointer;border-radius:var(--button-border-radius);height:var(--copy-path-height);width:var(--copy-path-width);}.example-wrap .button-holder .copy-button{margin-left:var(--button-left-margin);padding:2px 0 0 4px;border:0;}.example-wrap .button-holder .copy-button::before,.example-wrap .test-arrow::before{filter:var(--copy-path-img-filter);}.example-wrap .button-holder .copy-button::before{content:var(--clipboard-image);}.example-wrap .button-holder .copy-button:hover::before,.example-wrap .test-arrow:hover::before{filter:var(--copy-path-img-hover-filter);}.example-wrap .button-holder .copy-button.clicked::before{content:var(--checkmark-image);padding-right:5px;}.code-attribute{font-weight:300;color:var(--code-attribute-color);}.item-spacer{width:100%;height:12px;display:block;}.out-of-band>span.since{font-size:1.25rem;}.sub-variant h4{font-size:1rem;font-weight:400;margin-top:0;margin-bottom:0;}.sub-variant{margin-left:24px;margin-bottom:40px;}.sub-variant>.sub-variant-field{margin-left:24px;}@keyframes targetfadein{from{background-color:var(--main-background-color);}10%{background-color:var(--target-border-color);}to{background-color:var(--target-background-color);}}:target{padding-right:3px;background-color:var(--target-background-color);border-right:3px solid var(--target-border-color);animation:0.65s cubic-bezier(0,0,0.1,1.0) 0.1s targetfadein;}.code-header a.tooltip{color:inherit;margin-right:15px;position:relative;}.code-header a.tooltip:hover{color:var(--link-color);}a.tooltip:hover::after{position:absolute;top:calc(100% - 10px);left:-15px;right:-15px;height:20px;content:"\00a0";}.fade-out{opacity:0;transition:opacity 0.45s cubic-bezier(0,0,0.1,1.0);}.popover.tooltip .content{margin:0.25em 0.5em;}.popover.tooltip .content pre,.popover.tooltip .content code{background:transparent;margin:0;padding:0;font-size:1.25rem;white-space:pre-wrap;}.popover.tooltip .content>h3:first-child{margin:0 0 5px 0;}.search-failed{text-align:center;margin-top:20px;display:none;}.search-failed.active{display:block;}.search-failed>ul{text-align:left;max-width:570px;margin-left:auto;margin-right:auto;}#search-tabs{display:flex;flex-direction:row;gap:1px;margin-bottom:4px;}#search-tabs button{text-align:center;font-size:1.125rem;border:0;border-top:2px solid;flex:1;line-height:1.5;color:inherit;}#search-tabs button:not(.selected){background-color:var(--search-tab-button-not-selected-background);border-top-color:var(--search-tab-button-not-selected-border-top-color);}#search-tabs button:hover,#search-tabs button.selected{background-color:var(--search-tab-button-selected-background);border-top-color:var(--search-tab-button-selected-border-top-color);}#search-tabs .count{font-size:1rem;font-variant-numeric:tabular-nums;color:var(--search-tab-title-count-color);}#search .error code{border-radius:3px;background-color:var(--search-error-code-background-color);}.search-corrections{font-weight:normal;}#src-sidebar{width:100%;overflow:auto;}#src-sidebar div.files>a:hover,details.dir-entry summary:hover,#src-sidebar div.files>a:focus,details.dir-entry summary:focus{background-color:var(--src-sidebar-background-hover);}#src-sidebar div.files>a.selected{background-color:var(--src-sidebar-background-selected);}.src-sidebar-title{position:sticky;top:0;display:flex;padding:8px 8px 0 48px;margin-bottom:7px;background:var(--sidebar-background-color);border-bottom:1px solid var(--border-color);}#settings-menu,#help-button{margin-left:var(--button-left-margin);display:flex;}#sidebar-button{display:none;line-height:0;}.hide-sidebar #sidebar-button,.src #sidebar-button{display:flex;margin-right:4px;position:fixed;left:6px;height:34px;width:34px;background-color:var(--main-background-color);z-index:1;}.src #sidebar-button{left:8px;z-index:calc(var(--desktop-sidebar-z-index) + 1);}.hide-sidebar .src #sidebar-button{position:static;}#settings-menu>a,#help-button>a,#sidebar-button>a{display:flex;align-items:center;justify-content:center;background-color:var(--button-background-color);border:1px solid var(--border-color);border-radius:var(--button-border-radius);color:var(--settings-button-color);font-size:20px;width:33px;}#settings-menu>a:hover,#settings-menu>a:focus,#help-button>a:hover,#help-button>a:focus,#sidebar-button>a:hover,#sidebar-button>a:focus{border-color:var(--settings-button-border-focus);}#settings-menu>a{line-height:0;font-size:0;}#settings-menu>a:before{content:url('data:image/svg+xml,\ + ');width:22px;height:22px;filter:var(--settings-menu-filter);}#sidebar-button>a:before{content:url('data:image/svg+xml,\ + \ + \ + ');width:22px;height:22px;}#copy-path{color:var(--copy-path-button-color);background:var(--main-background-color);height:var(--copy-path-height);width:var(--copy-path-width);margin-left:10px;padding:0;padding-left:2px;border:0;font-size:0;}#copy-path::before{filter:var(--copy-path-img-filter);content:var(--clipboard-image);}#copy-path:hover::before{filter:var(--copy-path-img-hover-filter);}#copy-path.clicked::before{content:var(--checkmark-image);}@keyframes rotating{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}#settings-menu.rotate>a img{animation:rotating 2s linear infinite;}kbd{display:inline-block;padding:3px 5px;font:15px monospace;line-height:10px;vertical-align:middle;border:solid 1px var(--border-color);border-radius:3px;color:var(--kbd-color);background-color:var(--kbd-background);box-shadow:inset 0 -1px 0 var(--kbd-box-shadow-color);}ul.all-items>li{list-style:none;}details.dir-entry{padding-left:4px;}details.dir-entry>summary{margin:0 0 0 -4px;padding:0 0 0 4px;cursor:pointer;}details.dir-entry div.folders,details.dir-entry div.files{padding-left:23px;}details.dir-entry a{display:block;}details.toggle{contain:layout;position:relative;}details.toggle>summary.hideme{cursor:pointer;font-size:1rem;}details.toggle>summary{list-style:none;outline:none;}details.toggle>summary::-webkit-details-marker,details.toggle>summary::marker{display:none;}details.toggle>summary.hideme>span{margin-left:9px;}details.toggle>summary::before{background:url('data:image/svg+xml,') no-repeat top left;content:"";cursor:pointer;width:16px;height:16px;display:inline-block;vertical-align:middle;opacity:.5;filter:var(--toggle-filter);}details.toggle>summary.hideme>span,.more-examples-toggle summary,.more-examples-toggle .hide-more{color:var(--toggles-color);}details.toggle>summary::after{content:"Expand";overflow:hidden;width:0;height:0;position:absolute;}details.toggle>summary.hideme::after{content:"";}details.toggle>summary:focus::before,details.toggle>summary:hover::before{opacity:1;}details.toggle>summary:focus-visible::before{outline:1px dotted #000;outline-offset:1px;}details.non-exhaustive{margin-bottom:8px;}details.toggle>summary.hideme::before{position:relative;}details.toggle>summary:not(.hideme)::before{position:absolute;left:-24px;top:4px;}.impl-items>details.toggle>summary:not(.hideme)::before{position:absolute;left:-24px;}details.toggle[open] >summary.hideme{position:absolute;}details.toggle[open] >summary.hideme>span{display:none;}details.toggle[open] >summary::before{background:url('data:image/svg+xml,') no-repeat top left;}details.toggle[open] >summary::after{content:"Collapse";}.docblock summary>*{display:inline-block;}.docblock>.example-wrap:first-child .tooltip{margin-top:16px;}.src #sidebar-button>a:before,.sidebar-menu-toggle:before{content:url('data:image/svg+xml,\ + ');opacity:0.75;}.sidebar-menu-toggle:hover:before,.sidebar-menu-toggle:active:before,.sidebar-menu-toggle:focus:before{opacity:1;}.src #sidebar-button>a:before{content:url('data:image/svg+xml,\ + \ + \ + ');opacity:0.75;}@media (max-width:850px){#search-tabs .count{display:block;}}@media (max-width:700px){*[id]{scroll-margin-top:45px;}.rustdoc{display:block;}main{padding-left:15px;padding-top:0px;}.main-heading{flex-direction:column;}.out-of-band{text-align:left;margin-left:initial;padding:initial;}.out-of-band .since::before{content:"Since ";}.sidebar .logo-container,.sidebar .location,.sidebar-resizer{display:none;}.sidebar{position:fixed;top:45px;left:-1000px;z-index:11;height:calc(100vh - 45px);width:200px;}.src main,.rustdoc.src .sidebar{top:0;padding:0;height:100vh;border:0;}.src .search-form{margin-left:40px;}.hide-sidebar .search-form{margin-left:32px;}.hide-sidebar .src .search-form{margin-left:0;}.sidebar.shown,.src-sidebar-expanded .src .sidebar,.rustdoc:not(.src) .sidebar:focus-within{left:0;}.mobile-topbar h2{padding-bottom:0;margin:auto 0.5em auto auto;overflow:hidden;font-size:24px;white-space:nowrap;text-overflow:ellipsis;}.mobile-topbar .logo-container>img{max-width:35px;max-height:35px;margin:5px 0 5px 20px;}.mobile-topbar{display:flex;flex-direction:row;position:sticky;z-index:10;font-size:2rem;height:45px;width:100%;left:0;top:0;}.hide-sidebar .mobile-topbar{display:none;}.sidebar-menu-toggle{width:45px;border:none;line-height:0;}.hide-sidebar .sidebar-menu-toggle{display:none;}.sidebar-elems{margin-top:1em;}.anchor{display:none !important;}#main-content>details.toggle>summary::before,#main-content>div>details.toggle>summary::before{left:-11px;}#copy-path,#help-button{display:none;}#sidebar-button>a:before{content:url('data:image/svg+xml,\ + \ + \ + ');width:22px;height:22px;}.sidebar-menu-toggle:before{filter:var(--mobile-sidebar-menu-filter);}.sidebar-menu-toggle:hover{background:var(--main-background-color);}.item-table,.item-row,.item-table>li,.item-table>li>div,.search-results>a,.search-results>a>div{display:block;}.search-results>a{padding:5px 0px;}.search-results>a>div.desc,.item-table>li>div.desc{padding-left:2em;}.search-results .result-name{display:block;}.search-results .result-name .typename{width:initial;margin-right:0;}.search-results .result-name .typename,.search-results .result-name .path{display:inline;}.src-sidebar-expanded .src .sidebar{position:fixed;max-width:100vw;width:100vw;}.src .src-sidebar-title{padding-top:0;}details.toggle:not(.top-doc)>summary{margin-left:10px;}.impl-items>details.toggle>summary:not(.hideme)::before,#main-content>details.toggle:not(.top-doc)>summary::before,#main-content>div>details.toggle>summary::before{left:-11px;}.impl-items>.item-info{margin-left:34px;}.src nav.sub{margin:0;padding:var(--nav-sub-mobile-padding);}}@media (min-width:701px){.scraped-example-title{position:absolute;z-index:10;background:var(--main-background-color);bottom:8px;right:5px;padding:2px 4px;box-shadow:0 0 4px var(--main-background-color);}.item-table>li>.item-name{width:33%;}.item-table>li>div{overflow-wrap:anywhere;}}@media print{nav.sidebar,nav.sub,.out-of-band,a.src,#copy-path,details.toggle[open] >summary::before,details.toggle>summary::before,details.toggle.top-doc>summary{display:none;}.docblock{margin-left:0;}main{padding:10px;}}@media (max-width:464px){.docblock{margin-left:12px;}.docblock code{overflow-wrap:break-word;overflow-wrap:anywhere;}nav.sub{flex-direction:column;}.search-form{align-self:stretch;}}.variant,.implementors-toggle>summary,.impl,#implementors-list>.docblock,.impl-items>section,.impl-items>.toggle>summary,.methods>section,.methods>.toggle>summary{margin-bottom:0.75em;}.variants>.docblock,.implementors-toggle>.docblock,.impl-items>.toggle[open]:not(:last-child),.methods>.toggle[open]:not(:last-child),.implementors-toggle[open]:not(:last-child){margin-bottom:2em;}#trait-implementations-list .impl-items>.toggle:not(:last-child),#synthetic-implementations-list .impl-items>.toggle:not(:last-child),#blanket-implementations-list .impl-items>.toggle:not(:last-child){margin-bottom:1em;}.scraped-example-list .scrape-help{margin-left:10px;padding:0 4px;font-weight:normal;font-size:12px;position:relative;bottom:1px;border:1px solid var(--scrape-example-help-border-color);border-radius:50px;color:var(--scrape-example-help-color);}.scraped-example-list .scrape-help:hover{border-color:var(--scrape-example-help-hover-border-color);color:var(--scrape-example-help-hover-color);}.scraped-example{position:relative;}.scraped-example .code-wrapper{position:relative;display:flex;flex-direction:row;flex-wrap:wrap;width:100%;}.scraped-example:not(.expanded) .code-wrapper{max-height:calc(1.5em * 5 + 10px);}.scraped-example:not(.expanded) .code-wrapper pre{overflow-y:hidden;padding-bottom:0;max-height:calc(1.5em * 5 + 10px);}.more-scraped-examples .scraped-example:not(.expanded) .code-wrapper,.more-scraped-examples .scraped-example:not(.expanded) .code-wrapper pre{max-height:calc(1.5em * 10 + 10px);}.scraped-example .code-wrapper .next,.scraped-example .code-wrapper .prev,.scraped-example .code-wrapper .expand{color:var(--main-color);position:absolute;top:0.25em;z-index:1;padding:0;background:none;border:none;-webkit-appearance:none;opacity:1;}.scraped-example .code-wrapper .prev{right:2.25em;}.scraped-example .code-wrapper .next{right:1.25em;}.scraped-example .code-wrapper .expand{right:0.25em;}.scraped-example:not(.expanded) .code-wrapper::before,.scraped-example:not(.expanded) .code-wrapper::after{content:" ";width:100%;height:5px;position:absolute;z-index:1;}.scraped-example:not(.expanded) .code-wrapper::before{top:0;background:linear-gradient(to bottom,var(--scrape-example-code-wrapper-background-start),var(--scrape-example-code-wrapper-background-end));}.scraped-example:not(.expanded) .code-wrapper::after{bottom:0;background:linear-gradient(to top,var(--scrape-example-code-wrapper-background-start),var(--scrape-example-code-wrapper-background-end));}.scraped-example .code-wrapper .example-wrap{width:100%;overflow-y:hidden;margin-bottom:0;}.scraped-example:not(.expanded) .code-wrapper .example-wrap{overflow-x:hidden;}.scraped-example .example-wrap .rust span.highlight{background:var(--scrape-example-code-line-highlight);}.scraped-example .example-wrap .rust span.highlight.focus{background:var(--scrape-example-code-line-highlight-focus);}.more-examples-toggle{max-width:calc(100% + 25px);margin-top:10px;margin-left:-25px;}.more-examples-toggle .hide-more{margin-left:25px;cursor:pointer;}.more-scraped-examples{margin-left:25px;position:relative;}.toggle-line{position:absolute;top:5px;bottom:0;right:calc(100% + 10px);padding:0 4px;cursor:pointer;}.toggle-line-inner{min-width:2px;height:100%;background:var(--scrape-example-toggle-line-background);}.toggle-line:hover .toggle-line-inner{background:var(--scrape-example-toggle-line-hover-background);}.more-scraped-examples .scraped-example,.example-links{margin-top:20px;}.more-scraped-examples .scraped-example:first-child{margin-top:5px;}.example-links ul{margin-bottom:0;}:root[data-theme="light"],:root:not([data-theme]){--main-background-color:white;--main-color:black;--settings-input-color:#2196f3;--settings-input-border-color:#717171;--settings-button-color:#000;--settings-button-border-focus:#717171;--sidebar-background-color:#f5f5f5;--sidebar-background-color-hover:#e0e0e0;--code-block-background-color:#f5f5f5;--scrollbar-track-background-color:#dcdcdc;--scrollbar-thumb-background-color:rgba(36,37,39,0.6);--scrollbar-color:rgba(36,37,39,0.6) #d9d9d9;--headings-border-bottom-color:#ddd;--border-color:#e0e0e0;--button-background-color:#fff;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:none;--mobile-sidebar-menu-filter:none;--search-input-focused-border-color:#66afe9;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(35%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ad378a;--trait-link-color:#6e4fc9;--assoc-item-link-color:#3873ad;--function-link-color:#ad7c37;--macro-link-color:#068000;--keyword-link-color:#3873ad;--mod-link-color:#3873ad;--link-color:#3873ad;--sidebar-link-color:#356da4;--sidebar-current-link-background-color:#fff;--search-result-link-focus-background-color:#ccc;--search-result-border-color:#aaa3;--search-color:#000;--search-error-code-background-color:#d0cccc;--search-results-alias-color:#000;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#e6e6e6;--search-tab-button-not-selected-background:#e6e6e6;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#fff;--settings-menu-filter:none;--stab-background-color:#fff5d6;--stab-code-color:#000;--code-highlight-kw-color:#8959a8;--code-highlight-kw-2-color:#4271ae;--code-highlight-lifetime-color:#b76514;--code-highlight-prelude-color:#4271ae;--code-highlight-prelude-val-color:#c82829;--code-highlight-number-color:#718c00;--code-highlight-string-color:#718c00;--code-highlight-literal-color:#c82829;--code-highlight-attribute-color:#c82829;--code-highlight-self-color:#c82829;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8e908c;--code-highlight-doc-comment-color:#4d4d4c;--src-line-numbers-span-color:#c67e2d;--src-line-number-highlighted-background-color:#fdffd3;--target-background-color:#fdffd3;--target-border-color:#ad7c37;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:initial;--crate-search-div-filter:invert(100%) sepia(0%) saturate(4223%) hue-rotate(289deg) brightness(114%) contrast(76%);--crate-search-div-hover-filter:invert(44%) sepia(18%) saturate(23%) hue-rotate(317deg) brightness(96%) contrast(93%);--crate-search-hover-border:#717171;--src-sidebar-background-selected:#fff;--src-sidebar-background-hover:#e0e0e0;--table-alt-row-background-color:#f5f5f5;--codeblock-link-background:#eee;--scrape-example-toggle-line-background:#ccc;--scrape-example-toggle-line-hover-background:#999;--scrape-example-code-line-highlight:#fcffd6;--scrape-example-code-line-highlight-focus:#f6fdb0;--scrape-example-help-border-color:#555;--scrape-example-help-color:#333;--scrape-example-help-hover-border-color:#000;--scrape-example-help-hover-color:#000;--scrape-example-code-wrapper-background-start:rgba(255,255,255,1);--scrape-example-code-wrapper-background-end:rgba(255,255,255,0);--sidebar-resizer-hover:hsl(207,90%,66%);--sidebar-resizer-active:hsl(207,90%,54%);}:root[data-theme="dark"]{--main-background-color:#353535;--main-color:#ddd;--settings-input-color:#2196f3;--settings-input-border-color:#999;--settings-button-color:#000;--settings-button-border-focus:#ffb900;--sidebar-background-color:#505050;--sidebar-background-color-hover:#676767;--code-block-background-color:#2A2A2A;--scrollbar-track-background-color:#717171;--scrollbar-thumb-background-color:rgba(32,34,37,.6);--scrollbar-color:rgba(32,34,37,.6) #5a5a5a;--headings-border-bottom-color:#d2d2d2;--border-color:#e0e0e0;--button-background-color:#f0f0f0;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--mobile-sidebar-menu-filter:invert(100%);--search-input-focused-border-color:#008dfd;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(65%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#2dbfb8;--trait-link-color:#b78cf2;--assoc-item-link-color:#d2991d;--function-link-color:#2bab63;--macro-link-color:#09bd00;--keyword-link-color:#d2991d;--mod-link-color:#d2991d;--link-color:#d2991d;--sidebar-link-color:#fdbf35;--sidebar-current-link-background-color:#444;--search-result-link-focus-background-color:#616161;--search-result-border-color:#aaa3;--search-color:#111;--search-error-code-background-color:#484848;--search-results-alias-color:#fff;--search-results-grey-color:#ccc;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#252525;--search-tab-button-not-selected-background:#252525;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#353535;--settings-menu-filter:none;--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ab8ac1;--code-highlight-kw-2-color:#769acb;--code-highlight-lifetime-color:#d97f26;--code-highlight-prelude-color:#769acb;--code-highlight-prelude-val-color:#ee6868;--code-highlight-number-color:#83a300;--code-highlight-string-color:#83a300;--code-highlight-literal-color:#ee6868;--code-highlight-attribute-color:#ee6868;--code-highlight-self-color:#ee6868;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8d8d8b;--code-highlight-doc-comment-color:#8ca375;--src-line-numbers-span-color:#3b91e2;--src-line-number-highlighted-background-color:#0a042f;--target-background-color:#494a3d;--target-border-color:#bb7410;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(94%) sepia(0%) saturate(721%) hue-rotate(255deg) brightness(90%) contrast(90%);--crate-search-div-hover-filter:invert(69%) sepia(60%) saturate(6613%) hue-rotate(184deg) brightness(100%) contrast(91%);--crate-search-hover-border:#2196f3;--src-sidebar-background-selected:#333;--src-sidebar-background-hover:#444;--table-alt-row-background-color:#2a2a2a;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(53,53,53,1);--scrape-example-code-wrapper-background-end:rgba(53,53,53,0);--sidebar-resizer-hover:hsl(207,30%,54%);--sidebar-resizer-active:hsl(207,90%,54%);}:root[data-theme="ayu"]{--main-background-color:#0f1419;--main-color:#c5c5c5;--settings-input-color:#ffb454;--settings-input-border-color:#999;--settings-button-color:#fff;--settings-button-border-focus:#e0e0e0;--sidebar-background-color:#14191f;--sidebar-background-color-hover:rgba(70,70,70,0.33);--code-block-background-color:#191f26;--scrollbar-track-background-color:transparent;--scrollbar-thumb-background-color:#5c6773;--scrollbar-color:#5c6773 #24292f;--headings-border-bottom-color:#5c6773;--border-color:#5c6773;--button-background-color:#141920;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--mobile-sidebar-menu-filter:invert(100%);--search-input-focused-border-color:#5c6773;--copy-path-button-color:#fff;--copy-path-img-filter:invert(70%);--copy-path-img-hover-filter:invert(100%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ffa0a5;--trait-link-color:#39afd7;--assoc-item-link-color:#39afd7;--function-link-color:#fdd687;--macro-link-color:#a37acc;--keyword-link-color:#39afd7;--mod-link-color:#39afd7;--link-color:#39afd7;--sidebar-link-color:#53b1db;--sidebar-current-link-background-color:transparent;--search-result-link-focus-background-color:#3c3c3c;--search-result-border-color:#aaa3;--search-color:#fff;--search-error-code-background-color:#4f4c4c;--search-results-alias-color:#c5c5c5;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:none;--search-tab-button-not-selected-background:transparent !important;--search-tab-button-selected-border-top-color:none;--search-tab-button-selected-background:#141920 !important;--settings-menu-filter:invert(100%);--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ff7733;--code-highlight-kw-2-color:#ff7733;--code-highlight-lifetime-color:#ff7733;--code-highlight-prelude-color:#69f2df;--code-highlight-prelude-val-color:#ff7733;--code-highlight-number-color:#b8cc52;--code-highlight-string-color:#b8cc52;--code-highlight-literal-color:#ff7733;--code-highlight-attribute-color:#e6e1cf;--code-highlight-self-color:#36a3d9;--code-highlight-macro-color:#a37acc;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#788797;--code-highlight-doc-comment-color:#a1ac88;--src-line-numbers-span-color:#5c6773;--src-line-number-highlighted-background-color:rgba(255,236,164,0.06);--target-background-color:rgba(255,236,164,0.06);--target-border-color:rgba(255,180,76,0.85);--kbd-color:#c5c5c5;--kbd-background:#314559;--kbd-box-shadow-color:#5c6773;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(41%) sepia(12%) saturate(487%) hue-rotate(171deg) brightness(94%) contrast(94%);--crate-search-div-hover-filter:invert(98%) sepia(12%) saturate(81%) hue-rotate(343deg) brightness(113%) contrast(76%);--crate-search-hover-border:#e0e0e0;--src-sidebar-background-selected:#14191f;--src-sidebar-background-hover:#14191f;--table-alt-row-background-color:#191f26;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(15,20,25,1);--scrape-example-code-wrapper-background-end:rgba(15,20,25,0);--sidebar-resizer-hover:hsl(34,50%,33%);--sidebar-resizer-active:hsl(34,100%,66%);}:root[data-theme="ayu"] h1,:root[data-theme="ayu"] h2,:root[data-theme="ayu"] h3,:root[data-theme="ayu"] h4,:where(:root[data-theme="ayu"]) h1 a,:root[data-theme="ayu"] .sidebar h2 a,:root[data-theme="ayu"] .sidebar h3 a{color:#fff;}:root[data-theme="ayu"] .docblock code{color:#ffb454;}:root[data-theme="ayu"] .docblock a>code{color:#39AFD7 !important;}:root[data-theme="ayu"] .code-header,:root[data-theme="ayu"] .docblock pre>code,:root[data-theme="ayu"] pre,:root[data-theme="ayu"] pre>code,:root[data-theme="ayu"] .item-info code,:root[data-theme="ayu"] .rustdoc.source .example-wrap{color:#e6e1cf;}:root[data-theme="ayu"] .sidebar .current,:root[data-theme="ayu"] .sidebar .current a,:root[data-theme="ayu"] .sidebar a:hover,:root[data-theme="ayu"] #src-sidebar div.files>a:hover,:root[data-theme="ayu"] details.dir-entry summary:hover,:root[data-theme="ayu"] #src-sidebar div.files>a:focus,:root[data-theme="ayu"] details.dir-entry summary:focus,:root[data-theme="ayu"] #src-sidebar div.files>a.selected{color:#ffb44c;}:root[data-theme="ayu"] .sidebar-elems .location{color:#ff7733;}:root[data-theme="ayu"] .src-line-numbers .line-highlighted{color:#708090;padding-right:7px;border-right:1px solid #ffb44c;}:root[data-theme="ayu"] .search-results a:hover,:root[data-theme="ayu"] .search-results a:focus{color:#fff !important;background-color:#3c3c3c;}:root[data-theme="ayu"] .search-results a{color:#0096cf;}:root[data-theme="ayu"] .search-results a div.desc{color:#c5c5c5;}:root[data-theme="ayu"] .result-name .primitive>i,:root[data-theme="ayu"] .result-name .keyword>i{color:#788797;}:root[data-theme="ayu"] #search-tabs>button.selected{border-bottom:1px solid #ffb44c !important;border-top:none;}:root[data-theme="ayu"] #search-tabs>button:not(.selected){border:none;background-color:transparent !important;}:root[data-theme="ayu"] #search-tabs>button:hover{border-bottom:1px solid rgba(242,151,24,0.3);}:root[data-theme="ayu"] #settings-menu>a img,:root[data-theme="ayu"] #sidebar-button>a:before{filter:invert(100);} \ No newline at end of file diff --git a/crates/static.files/rustdoc-c5d6553a23f1e5a6.css b/crates/static.files/rustdoc-c5d6553a23f1e5a6.css deleted file mode 100644 index 9f64990b..00000000 --- a/crates/static.files/rustdoc-c5d6553a23f1e5a6.css +++ /dev/null @@ -1,46 +0,0 @@ - :root{--nav-sub-mobile-padding:8px;--search-typename-width:6.75rem;--desktop-sidebar-width:200px;--src-sidebar-width:300px;--desktop-sidebar-z-index:100;--sidebar-elems-left-padding:24px;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:400;src:local('Fira Sans'),url("FiraSans-Regular-018c141bf0843ffd.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:500;src:local('Fira Sans Medium'),url("FiraSans-Medium-8f9a781e4970d388.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:400;src:local('Source Serif 4'),url("SourceSerif4-Regular-46f98efaafac5295.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:italic;font-weight:400;src:local('Source Serif 4 Italic'),url("SourceSerif4-It-acdfaf1a8af734b1.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:700;src:local('Source Serif 4 Bold'),url("SourceSerif4-Bold-a2c9cd1067f8b328.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:400;src:url("SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:italic;font-weight:400;src:url("SourceCodePro-It-1cc31594bf4f1f79.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:600;src:url("SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'NanumBarunGothic';src:url("NanumBarunGothic-0f09457c7a19b7c6.ttf.woff2") format("woff2");font-display:swap;unicode-range:U+AC00-D7AF,U+1100-11FF,U+3130-318F,U+A960-A97F,U+D7B0-D7FF;}*{box-sizing:border-box;}body{font:1rem/1.5 "Source Serif 4",NanumBarunGothic,serif;margin:0;position:relative;overflow-wrap:break-word;overflow-wrap:anywhere;font-feature-settings:"kern","liga";background-color:var(--main-background-color);color:var(--main-color);}h1{font-size:1.5rem;}h2{font-size:1.375rem;}h3{font-size:1.25rem;}h1,h2,h3,h4,h5,h6{font-weight:500;}h1,h2,h3,h4{margin:25px 0 15px 0;padding-bottom:6px;}.docblock h3,.docblock h4,h5,h6{margin:15px 0 5px 0;}.docblock>h2:first-child,.docblock>h3:first-child,.docblock>h4:first-child,.docblock>h5:first-child,.docblock>h6:first-child{margin-top:0;}.main-heading h1{margin:0;padding:0;flex-grow:1;overflow-wrap:break-word;overflow-wrap:anywhere;}.main-heading{display:flex;flex-wrap:wrap;padding-bottom:6px;margin-bottom:15px;}.content h2,.top-doc .docblock>h3,.top-doc .docblock>h4{border-bottom:1px solid var(--headings-border-bottom-color);}h1,h2{line-height:1.25;padding-top:3px;padding-bottom:9px;}h3.code-header{font-size:1.125rem;}h4.code-header{font-size:1rem;}.code-header{font-weight:600;margin:0;padding:0;white-space:pre-wrap;}#crate-search,h1,h2,h3,h4,h5,h6,.sidebar,.mobile-topbar,.search-input,.search-results .result-name,.item-name>a,.out-of-band,span.since,a.src,#help-button>a,summary.hideme,.scraped-example-list,ul.all-items{font-family:"Fira Sans",Arial,NanumBarunGothic,sans-serif;}#toggle-all-docs,a.anchor,.section-header a,#src-sidebar a,.rust a,.sidebar h2 a,.sidebar h3 a,.mobile-topbar h2 a,h1 a,.search-results a,.stab,.result-name i{color:var(--main-color);}span.enum,a.enum,span.struct,a.struct,span.union,a.union,span.primitive,a.primitive,span.type,a.type,span.foreigntype,a.foreigntype{color:var(--type-link-color);}span.trait,a.trait,span.traitalias,a.traitalias{color:var(--trait-link-color);}span.associatedtype,a.associatedtype,span.constant,a.constant,span.static,a.static{color:var(--assoc-item-link-color);}span.fn,a.fn,span.method,a.method,span.tymethod,a.tymethod{color:var(--function-link-color);}span.attr,a.attr,span.derive,a.derive,span.macro,a.macro{color:var(--macro-link-color);}span.mod,a.mod{color:var(--mod-link-color);}span.keyword,a.keyword{color:var(--keyword-link-color);}a{color:var(--link-color);text-decoration:none;}ol,ul{padding-left:24px;}ul ul,ol ul,ul ol,ol ol{margin-bottom:.625em;}p,.docblock>.warning{margin:0 0 .75em 0;}p:last-child,.docblock>.warning:last-child{margin:0;}button{padding:1px 6px;cursor:pointer;}button#toggle-all-docs{padding:0;background:none;border:none;-webkit-appearance:none;opacity:1;}.rustdoc{display:flex;flex-direction:row;flex-wrap:nowrap;}main{position:relative;flex-grow:1;padding:10px 15px 40px 45px;min-width:0;}.src main{padding:15px;}.width-limiter{max-width:960px;margin-right:auto;}details:not(.toggle) summary{margin-bottom:.6em;}code,pre,a.test-arrow,.code-header{font-family:"Source Code Pro",monospace;}.docblock code,.docblock-short code{border-radius:3px;padding:0 0.125em;}.docblock pre code,.docblock-short pre code{padding:0;}pre{padding:14px;line-height:1.5;}pre.item-decl{overflow-x:auto;}.item-decl .type-contents-toggle{contain:initial;}.src .content pre{padding:20px;}.rustdoc.src .example-wrap pre.src-line-numbers{padding:20px 0 20px 4px;}img{max-width:100%;}.logo-container{line-height:0;display:block;}.rust-logo{filter:var(--rust-logo-filter);}.sidebar{font-size:0.875rem;flex:0 0 var(--desktop-sidebar-width);width:var(--desktop-sidebar-width);overflow-y:scroll;overscroll-behavior:contain;position:sticky;height:100vh;top:0;left:0;z-index:var(--desktop-sidebar-z-index);}.rustdoc.src .sidebar{flex-basis:50px;width:50px;border-right:1px solid;overflow-x:hidden;overflow-y:hidden;}.hide-sidebar .sidebar,.hide-sidebar .sidebar-resizer{display:none;}.sidebar-resizer{touch-action:none;width:9px;cursor:col-resize;z-index:calc(var(--desktop-sidebar-z-index) + 1);position:fixed;height:100%;left:calc(var(--desktop-sidebar-width) + 1px);}.rustdoc.src .sidebar-resizer{left:49px;}.src-sidebar-expanded .src .sidebar-resizer{left:var(--src-sidebar-width);}.sidebar-resizing{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;}.sidebar-resizing*{cursor:col-resize !important;}.sidebar-resizing .sidebar{position:fixed;}.sidebar-resizing>body{padding-left:var(--resizing-sidebar-width);}.sidebar-resizer:hover,.sidebar-resizer:active,.sidebar-resizer:focus,.sidebar-resizer.active{width:10px;margin:0;left:var(--desktop-sidebar-width);border-left:solid 1px var(--sidebar-resizer-hover);}.src-sidebar-expanded .rustdoc.src .sidebar-resizer:hover,.src-sidebar-expanded .rustdoc.src .sidebar-resizer:active,.src-sidebar-expanded .rustdoc.src .sidebar-resizer:focus,.src-sidebar-expanded .rustdoc.src .sidebar-resizer.active{left:calc(var(--src-sidebar-width) - 1px);}@media (pointer:coarse){.sidebar-resizer{display:none !important;}}.sidebar-resizer.active{padding:0 140px;width:2px;margin-left:-140px;border-left:none;}.sidebar-resizer.active:before{border-left:solid 2px var(--sidebar-resizer-active);display:block;height:100%;content:"";}.sidebar,.mobile-topbar,.sidebar-menu-toggle,#src-sidebar{background-color:var(--sidebar-background-color);}.src .sidebar>*{visibility:hidden;}.src-sidebar-expanded .src .sidebar{overflow-y:auto;flex-basis:var(--src-sidebar-width);width:var(--src-sidebar-width);}.src-sidebar-expanded .src .sidebar>*{visibility:visible;}#all-types{margin-top:1em;}*{scrollbar-width:initial;scrollbar-color:var(--scrollbar-color);}.sidebar{scrollbar-width:thin;scrollbar-color:var(--scrollbar-color);}::-webkit-scrollbar{width:12px;}.sidebar::-webkit-scrollbar{width:8px;}::-webkit-scrollbar-track{-webkit-box-shadow:inset 0;background-color:var(--scrollbar-track-background-color);}.sidebar::-webkit-scrollbar-track{background-color:var(--scrollbar-track-background-color);}::-webkit-scrollbar-thumb,.sidebar::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-background-color);}.hidden{display:none !important;}.logo-container>img{height:48px;width:48px;}ul.block,.block li{padding:0;margin:0;list-style:none;}.sidebar-elems a,.sidebar>h2 a{display:block;padding:0.25rem;margin-right:0.25rem;border-left:solid var(--sidebar-elems-left-padding) transparent;margin-left:calc(-0.25rem - var(--sidebar-elems-left-padding));background-clip:border-box;}.sidebar h2{overflow-wrap:anywhere;padding:0;margin:0.7rem 0;}.sidebar h3{font-size:1.125rem;padding:0;margin:0;}.sidebar-elems,.sidebar>.version,.sidebar>h2{padding-left:var(--sidebar-elems-left-padding);}.sidebar a{color:var(--sidebar-link-color);}.sidebar .current,.sidebar .current a,.sidebar-crate a.logo-container:hover+h2 a,.sidebar a:hover:not(.logo-container){background-color:var(--sidebar-current-link-background-color);}.sidebar-elems .block{margin-bottom:2em;}.sidebar-elems .block li a{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;}.sidebar-crate{display:flex;align-items:center;justify-content:center;margin:14px 32px 1rem;row-gap:10px;column-gap:32px;flex-wrap:wrap;}.sidebar-crate h2{flex-grow:1;margin:0 -8px;align-self:start;}.sidebar-crate .logo-container{margin:0 calc(-16px - var(--sidebar-elems-left-padding));padding:0 var(--sidebar-elems-left-padding);text-align:center;}.sidebar-crate .logo-container img{margin-top:-16px;border-top:solid 16px transparent;box-sizing:content-box;position:relative;background-clip:border-box;z-index:1;}.sidebar-crate h2 a{display:block;border-left:solid var(--sidebar-elems-left-padding) transparent;background-clip:border-box;margin:0 calc(-24px + 0.25rem) 0 calc(-0.2rem - var(--sidebar-elems-left-padding));padding:calc((16px - 0.57rem ) / 2 ) 0.25rem;padding-left:0.2rem;}.sidebar-crate h2 .version{display:block;font-weight:normal;font-size:1rem;overflow-wrap:break-word;}.sidebar-crate+.version{margin-top:-1rem;margin-bottom:1rem;}.mobile-topbar{display:none;}.rustdoc .example-wrap{display:flex;position:relative;margin-bottom:10px;}.rustdoc .example-wrap:last-child{margin-bottom:0px;}.rustdoc .example-wrap pre{margin:0;flex-grow:1;}.rustdoc:not(.src) .example-wrap pre{overflow:auto hidden;}.rustdoc .example-wrap pre.example-line-numbers,.rustdoc .example-wrap pre.src-line-numbers{flex-grow:0;min-width:fit-content;overflow:initial;text-align:right;-webkit-user-select:none;user-select:none;padding:14px 8px;color:var(--src-line-numbers-span-color);}.rustdoc .example-wrap pre.src-line-numbers{padding:14px 0;}.src-line-numbers a,.src-line-numbers span{color:var(--src-line-numbers-span-color);padding:0 8px;}.src-line-numbers :target{background-color:transparent;border-right:none;padding:0 8px;}.src-line-numbers .line-highlighted{background-color:var(--src-line-number-highlighted-background-color);}.search-loading{text-align:center;}.docblock-short{overflow-wrap:break-word;overflow-wrap:anywhere;}.docblock :not(pre)>code,.docblock-short code{white-space:pre-wrap;}.top-doc .docblock h2{font-size:1.375rem;}.top-doc .docblock h3{font-size:1.25rem;}.top-doc .docblock h4,.top-doc .docblock h5{font-size:1.125rem;}.top-doc .docblock h6{font-size:1rem;}.docblock h5{font-size:1rem;}.docblock h6{font-size:0.875rem;}.docblock{margin-left:24px;position:relative;}.docblock>:not(.more-examples-toggle):not(.example-wrap){max-width:100%;overflow-x:auto;}.out-of-band{flex-grow:0;font-size:1.125rem;}.docblock code,.docblock-short code,pre,.rustdoc.src .example-wrap{background-color:var(--code-block-background-color);}#main-content{position:relative;}.docblock table{margin:.5em 0;border-collapse:collapse;}.docblock table td,.docblock table th{padding:.5em;border:1px solid var(--border-color);}.docblock table tbody tr:nth-child(2n){background:var(--table-alt-row-background-color);}div.where{white-space:pre-wrap;font-size:0.875rem;}.item-info{display:block;margin-left:24px;}.item-info code{font-size:0.875rem;}#main-content>.item-info{margin-left:0;}nav.sub{flex-grow:1;flex-flow:row nowrap;margin:4px 0 25px 0;display:flex;align-items:center;}.search-form{position:relative;display:flex;height:34px;flex-grow:1;}.src nav.sub{margin:0 0 15px 0;}.section-header{display:block;position:relative;}.section-header:hover>.anchor,.impl:hover>.anchor,.trait-impl:hover>.anchor,.variant:hover>.anchor{display:initial;}.anchor{display:none;position:absolute;left:-0.5em;background:none !important;}.anchor.field{left:-5px;}.section-header>.anchor{left:-15px;padding-right:8px;}h2.section-header>.anchor{padding-right:6px;}a.doc-anchor{color:var(--main-color);display:none;position:absolute;left:-17px;padding-right:5px;padding-left:3px;}*:hover>.doc-anchor{display:block;}.top-doc>.docblock>*:first-child>.doc-anchor{display:none !important;}.main-heading a:hover,.example-wrap .rust a:hover,.all-items a:hover,.docblock a:not(.test-arrow):not(.scrape-help):not(.tooltip):hover:not(.doc-anchor),.docblock-short a:not(.test-arrow):not(.scrape-help):not(.tooltip):hover,.item-info a{text-decoration:underline;}.crate.block li.current a{font-weight:500;}table,.item-table{overflow-wrap:break-word;}.item-table{display:table;padding:0;margin:0;}.item-table>li{display:table-row;}.item-table>li>div{display:table-cell;}.item-table>li>.item-name{padding-right:1.25rem;}.search-results-title{margin-top:0;white-space:nowrap;display:flex;align-items:baseline;}#crate-search-div{position:relative;min-width:5em;}#crate-search{min-width:115px;padding:0 23px 0 4px;max-width:100%;text-overflow:ellipsis;border:1px solid var(--border-color);border-radius:4px;outline:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;text-indent:0.01px;background-color:var(--main-background-color);color:inherit;line-height:1.5;font-weight:500;}#crate-search:hover,#crate-search:focus{border-color:var(--crate-search-hover-border);}#crate-search-div::after{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;content:"";background-repeat:no-repeat;background-size:20px;background-position:calc(100% - 2px) 56%;background-image:url('data:image/svg+xml, \ - ');filter:var(--crate-search-div-filter);}#crate-search-div:hover::after,#crate-search-div:focus-within::after{filter:var(--crate-search-div-hover-filter);}#crate-search>option{font-size:1rem;}.search-input{-webkit-appearance:none;outline:none;border:1px solid var(--border-color);border-radius:2px;padding:8px;font-size:1rem;flex-grow:1;background-color:var(--button-background-color);color:var(--search-color);}.search-input:focus{border-color:var(--search-input-focused-border-color);}.search-results{display:none;}.search-results.active{display:block;}.search-results>a{display:flex;margin-left:2px;margin-right:2px;border-bottom:1px solid var(--search-result-border-color);gap:1em;}.search-results>a>div.desc{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:2;}.search-results a:hover,.search-results a:focus{background-color:var(--search-result-link-focus-background-color);}.search-results .result-name{display:flex;align-items:center;justify-content:start;flex:3;}.search-results .result-name .alias{color:var(--search-results-alias-color);}.search-results .result-name .grey{color:var(--search-results-grey-color);}.search-results .result-name .typename{color:var(--search-results-grey-color);font-size:0.875rem;width:var(--search-typename-width);}.search-results .result-name .path{word-break:break-all;max-width:calc(100% - var(--search-typename-width));display:inline-block;}.search-results .result-name .path>*{display:inline;}.popover{position:absolute;top:100%;right:0;z-index:calc(var(--desktop-sidebar-z-index) + 1);margin-top:7px;border-radius:3px;border:1px solid var(--border-color);background-color:var(--main-background-color);color:var(--main-color);--popover-arrow-offset:11px;}.popover::before{content:'';position:absolute;right:var(--popover-arrow-offset);border:solid var(--border-color);border-width:1px 1px 0 0;background-color:var(--main-background-color);padding:4px;transform:rotate(-45deg);top:-5px;}.setting-line{margin:1.2em 0.6em;}.setting-radio input,.setting-check input{margin-right:0.3em;height:1.2rem;width:1.2rem;border:2px solid var(--settings-input-border-color);outline:none;-webkit-appearance:none;cursor:pointer;}.setting-radio input{border-radius:50%;}.setting-radio span,.setting-check span{padding-bottom:1px;}.setting-radio{margin-top:0.1em;margin-bottom:0.1em;min-width:3.8em;padding:0.3em;display:inline-flex;align-items:center;cursor:pointer;}.setting-radio+.setting-radio{margin-left:0.5em;}.setting-check{margin-right:20px;display:flex;align-items:center;cursor:pointer;}.setting-radio input:checked{box-shadow:inset 0 0 0 3px var(--main-background-color);background-color:var(--settings-input-color);}.setting-check input:checked{background-color:var(--settings-input-color);border-width:1px;content:url('data:image/svg+xml,\ - \ - ');}.setting-radio input:focus,.setting-check input:focus{box-shadow:0 0 1px 1px var(--settings-input-color);}.setting-radio input:checked:focus{box-shadow:inset 0 0 0 3px var(--main-background-color),0 0 2px 2px var(--settings-input-color);}.setting-radio input:hover,.setting-check input:hover{border-color:var(--settings-input-color) !important;}#help.popover{max-width:600px;--popover-arrow-offset:48px;}#help dt{float:left;clear:left;margin-right:0.5rem;}#help span.top,#help span.bottom{text-align:center;display:block;font-size:1.125rem;}#help span.top{margin:10px 0;border-bottom:1px solid var(--border-color);padding-bottom:4px;margin-bottom:6px;}#help span.bottom{clear:both;border-top:1px solid var(--border-color);}.side-by-side>div{width:50%;float:left;padding:0 20px 20px 17px;}.item-info .stab{display:block;padding:3px;margin-bottom:5px;}.item-name .stab{margin-left:0.3125em;}.stab{padding:0 2px;font-size:0.875rem;font-weight:normal;color:var(--main-color);background-color:var(--stab-background-color);width:fit-content;white-space:pre-wrap;border-radius:3px;display:inline;vertical-align:baseline;}.stab.portability>code{background:none;color:var(--stab-code-color);}.stab .emoji,.item-info .stab::before{font-size:1.25rem;}.stab .emoji{margin-right:0.3rem;}.item-info .stab::before{content:"\0";width:0;display:inline-block;color:transparent;}.emoji{text-shadow:1px 0 0 black,-1px 0 0 black,0 1px 0 black,0 -1px 0 black;}.since{font-weight:normal;font-size:initial;}.rightside{padding-left:12px;float:right;}.rightside:not(a),.out-of-band{color:var(--right-side-color);}pre.rust{tab-size:4;-moz-tab-size:4;}pre.rust .kw{color:var(--code-highlight-kw-color);}pre.rust .kw-2{color:var(--code-highlight-kw-2-color);}pre.rust .lifetime{color:var(--code-highlight-lifetime-color);}pre.rust .prelude-ty{color:var(--code-highlight-prelude-color);}pre.rust .prelude-val{color:var(--code-highlight-prelude-val-color);}pre.rust .string{color:var(--code-highlight-string-color);}pre.rust .number{color:var(--code-highlight-number-color);}pre.rust .bool-val{color:var(--code-highlight-literal-color);}pre.rust .self{color:var(--code-highlight-self-color);}pre.rust .attr{color:var(--code-highlight-attribute-color);}pre.rust .macro,pre.rust .macro-nonterminal{color:var(--code-highlight-macro-color);}pre.rust .question-mark{font-weight:bold;color:var(--code-highlight-question-mark-color);}pre.rust .comment{color:var(--code-highlight-comment-color);}pre.rust .doccomment{color:var(--code-highlight-doc-comment-color);}.rustdoc.src .example-wrap pre.rust a{background:var(--codeblock-link-background);}.example-wrap.compile_fail,.example-wrap.should_panic{border-left:2px solid var(--codeblock-error-color);}.ignore.example-wrap{border-left:2px solid var(--codeblock-ignore-color);}.example-wrap.compile_fail:hover,.example-wrap.should_panic:hover{border-left:2px solid var(--codeblock-error-hover-color);}.example-wrap.ignore:hover{border-left:2px solid var(--codeblock-ignore-hover-color);}.example-wrap.compile_fail .tooltip,.example-wrap.should_panic .tooltip{color:var(--codeblock-error-color);}.example-wrap.ignore .tooltip{color:var(--codeblock-ignore-color);}.example-wrap.compile_fail:hover .tooltip,.example-wrap.should_panic:hover .tooltip{color:var(--codeblock-error-hover-color);}.example-wrap.ignore:hover .tooltip{color:var(--codeblock-ignore-hover-color);}.example-wrap .tooltip{position:absolute;display:block;left:-25px;top:5px;margin:0;line-height:1;}.example-wrap.compile_fail .tooltip,.example-wrap.should_panic .tooltip,.example-wrap.ignore .tooltip{font-weight:bold;font-size:1.25rem;}.content .docblock .warning{border-left:2px solid var(--warning-border-color);padding:14px;position:relative;overflow-x:visible !important;}.content .docblock .warning::before{color:var(--warning-border-color);content:"ⓘ";position:absolute;left:-25px;top:5px;font-weight:bold;font-size:1.25rem;}.top-doc>.docblock>.warning:first-child::before{top:20px;}a.test-arrow{visibility:hidden;position:absolute;padding:5px 10px 5px 10px;border-radius:5px;font-size:1.375rem;top:5px;right:5px;z-index:1;color:var(--test-arrow-color);background-color:var(--test-arrow-background-color);}a.test-arrow:hover{color:var(--test-arrow-hover-color);background-color:var(--test-arrow-hover-background-color);}.example-wrap:hover .test-arrow{visibility:visible;}.code-attribute{font-weight:300;color:var(--code-attribute-color);}.item-spacer{width:100%;height:12px;display:block;}.out-of-band>span.since{font-size:1.25rem;}.sub-variant h4{font-size:1rem;font-weight:400;margin-top:0;margin-bottom:0;}.sub-variant{margin-left:24px;margin-bottom:40px;}.sub-variant>.sub-variant-field{margin-left:24px;}:target{padding-right:3px;background-color:var(--target-background-color);border-right:3px solid var(--target-border-color);}.code-header a.tooltip{color:inherit;margin-right:15px;position:relative;}.code-header a.tooltip:hover{color:var(--link-color);}a.tooltip:hover::after{position:absolute;top:calc(100% - 10px);left:-15px;right:-15px;height:20px;content:"\00a0";}.fade-out{opacity:0;transition:opacity 0.45s cubic-bezier(0,0,0.1,1.0);}.popover.tooltip .content{margin:0.25em 0.5em;}.popover.tooltip .content pre,.popover.tooltip .content code{background:transparent;margin:0;padding:0;font-size:1.25rem;white-space:pre-wrap;}.popover.tooltip .content>h3:first-child{margin:0 0 5px 0;}.search-failed{text-align:center;margin-top:20px;display:none;}.search-failed.active{display:block;}.search-failed>ul{text-align:left;max-width:570px;margin-left:auto;margin-right:auto;}#search-tabs{display:flex;flex-direction:row;gap:1px;margin-bottom:4px;}#search-tabs button{text-align:center;font-size:1.125rem;border:0;border-top:2px solid;flex:1;line-height:1.5;color:inherit;}#search-tabs button:not(.selected){background-color:var(--search-tab-button-not-selected-background);border-top-color:var(--search-tab-button-not-selected-border-top-color);}#search-tabs button:hover,#search-tabs button.selected{background-color:var(--search-tab-button-selected-background);border-top-color:var(--search-tab-button-selected-border-top-color);}#search-tabs .count{font-size:1rem;font-variant-numeric:tabular-nums;color:var(--search-tab-title-count-color);}#search .error code{border-radius:3px;background-color:var(--search-error-code-background-color);}.search-corrections{font-weight:normal;}#src-sidebar{width:100%;overflow:auto;}#src-sidebar div.files>a:hover,details.dir-entry summary:hover,#src-sidebar div.files>a:focus,details.dir-entry summary:focus{background-color:var(--src-sidebar-background-hover);}#src-sidebar div.files>a.selected{background-color:var(--src-sidebar-background-selected);}.src-sidebar-title{position:sticky;top:0;display:flex;padding:8px 8px 0 48px;margin-bottom:7px;background:var(--sidebar-background-color);border-bottom:1px solid var(--border-color);}#settings-menu,#help-button{margin-left:4px;display:flex;}#sidebar-button{display:none;line-height:0;}.hide-sidebar #sidebar-button,.src #sidebar-button{display:flex;margin-right:4px;position:fixed;left:6px;height:34px;width:34px;background-color:var(--main-background-color);z-index:1;}.src #sidebar-button{left:8px;z-index:calc(var(--desktop-sidebar-z-index) + 1);}.hide-sidebar .src #sidebar-button{position:static;}#settings-menu>a,#help-button>a,#sidebar-button>a{display:flex;align-items:center;justify-content:center;background-color:var(--button-background-color);border:1px solid var(--border-color);border-radius:2px;color:var(--settings-button-color);font-size:20px;width:33px;}#settings-menu>a:hover,#settings-menu>a:focus,#help-button>a:hover,#help-button>a:focus,#sidebar-button>a:hover,#sidebar-button>a:focus{border-color:var(--settings-button-border-focus);}#settings-menu>a{line-height:0;font-size:0;}#settings-menu>a:before{content:url('data:image/svg+xml,\ - ');width:22px;height:22px;filter:var(--settings-menu-filter);}#sidebar-button>a:before{content:url('data:image/svg+xml,\ - \ - \ - ');width:22px;height:22px;}#copy-path{color:var(--copy-path-button-color);background:var(--main-background-color);height:34px;width:33px;margin-left:10px;padding:0;padding-left:2px;border:0;font-size:0;}#copy-path::before{filter:var(--copy-path-img-filter);content:url('data:image/svg+xml,\ -\ -\ -');width:19px;height:18px;}#copy-path:hover::before{filter:var(--copy-path-img-hover-filter);}#copy-path.clicked::before{content:url('data:image/svg+xml,\ - \ - ');}@keyframes rotating{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}#settings-menu.rotate>a img{animation:rotating 2s linear infinite;}kbd{display:inline-block;padding:3px 5px;font:15px monospace;line-height:10px;vertical-align:middle;border:solid 1px var(--border-color);border-radius:3px;color:var(--kbd-color);background-color:var(--kbd-background);box-shadow:inset 0 -1px 0 var(--kbd-box-shadow-color);}ul.all-items>li{list-style:none;}details.dir-entry{padding-left:4px;}details.dir-entry>summary{margin:0 0 0 -4px;padding:0 0 0 4px;cursor:pointer;}details.dir-entry div.folders,details.dir-entry div.files{padding-left:23px;}details.dir-entry a{display:block;}details.toggle{contain:layout;position:relative;}details.toggle>summary.hideme{cursor:pointer;font-size:1rem;}details.toggle>summary{list-style:none;outline:none;}details.toggle>summary::-webkit-details-marker,details.toggle>summary::marker{display:none;}details.toggle>summary.hideme>span{margin-left:9px;}details.toggle>summary::before{background:url('data:image/svg+xml,') no-repeat top left;content:"";cursor:pointer;width:16px;height:16px;display:inline-block;vertical-align:middle;opacity:.5;filter:var(--toggle-filter);}details.toggle>summary.hideme>span,.more-examples-toggle summary,.more-examples-toggle .hide-more{color:var(--toggles-color);}details.toggle>summary::after{content:"Expand";overflow:hidden;width:0;height:0;position:absolute;}details.toggle>summary.hideme::after{content:"";}details.toggle>summary:focus::before,details.toggle>summary:hover::before{opacity:1;}details.toggle>summary:focus-visible::before{outline:1px dotted #000;outline-offset:1px;}details.non-exhaustive{margin-bottom:8px;}details.toggle>summary.hideme::before{position:relative;}details.toggle>summary:not(.hideme)::before{position:absolute;left:-24px;top:4px;}.impl-items>details.toggle>summary:not(.hideme)::before{position:absolute;left:-24px;}details.toggle[open] >summary.hideme{position:absolute;}details.toggle[open] >summary.hideme>span{display:none;}details.toggle[open] >summary::before{background:url('data:image/svg+xml,') no-repeat top left;}details.toggle[open] >summary::after{content:"Collapse";}.docblock summary>*{display:inline-block;}.docblock>.example-wrap:first-child .tooltip{margin-top:16px;}.src #sidebar-button>a:before,.sidebar-menu-toggle:before{content:url('data:image/svg+xml,\ - ');opacity:0.75;}.sidebar-menu-toggle:hover:before,.sidebar-menu-toggle:active:before,.sidebar-menu-toggle:focus:before{opacity:1;}.src #sidebar-button>a:before{content:url('data:image/svg+xml,\ - \ - \ - ');opacity:0.75;}@media (max-width:850px){#search-tabs .count{display:block;}}@media (max-width:700px){*[id]{scroll-margin-top:45px;}.rustdoc{display:block;}main{padding-left:15px;padding-top:0px;}.main-heading{flex-direction:column;}.out-of-band{text-align:left;margin-left:initial;padding:initial;}.out-of-band .since::before{content:"Since ";}.sidebar .logo-container,.sidebar .location,.sidebar-resizer{display:none;}.sidebar{position:fixed;top:45px;left:-1000px;z-index:11;height:calc(100vh - 45px);width:200px;}.src main,.rustdoc.src .sidebar{top:0;padding:0;height:100vh;border:0;}.src .search-form{margin-left:40px;}.hide-sidebar .search-form{margin-left:32px;}.hide-sidebar .src .search-form{margin-left:0;}.sidebar.shown,.src-sidebar-expanded .src .sidebar,.rustdoc:not(.src) .sidebar:focus-within{left:0;}.mobile-topbar h2{padding-bottom:0;margin:auto 0.5em auto auto;overflow:hidden;font-size:24px;white-space:nowrap;text-overflow:ellipsis;}.mobile-topbar .logo-container>img{max-width:35px;max-height:35px;margin:5px 0 5px 20px;}.mobile-topbar{display:flex;flex-direction:row;position:sticky;z-index:10;font-size:2rem;height:45px;width:100%;left:0;top:0;}.hide-sidebar .mobile-topbar{display:none;}.sidebar-menu-toggle{width:45px;border:none;line-height:0;}.hide-sidebar .sidebar-menu-toggle{display:none;}.sidebar-elems{margin-top:1em;}.anchor{display:none !important;}#main-content>details.toggle>summary::before,#main-content>div>details.toggle>summary::before{left:-11px;}#copy-path,#help-button{display:none;}#sidebar-button>a:before{content:url('data:image/svg+xml,\ - \ - \ - ');width:22px;height:22px;}.sidebar-menu-toggle:before{filter:var(--mobile-sidebar-menu-filter);}.sidebar-menu-toggle:hover{background:var(--main-background-color);}.item-table,.item-row,.item-table>li,.item-table>li>div,.search-results>a,.search-results>a>div{display:block;}.search-results>a{padding:5px 0px;}.search-results>a>div.desc,.item-table>li>div.desc{padding-left:2em;}.search-results .result-name{display:block;}.search-results .result-name .typename{width:initial;margin-right:0;}.search-results .result-name .typename,.search-results .result-name .path{display:inline;}.src-sidebar-expanded .src .sidebar{position:fixed;max-width:100vw;width:100vw;}.src .src-sidebar-title{padding-top:0;}details.toggle:not(.top-doc)>summary{margin-left:10px;}.impl-items>details.toggle>summary:not(.hideme)::before,#main-content>details.toggle:not(.top-doc)>summary::before,#main-content>div>details.toggle>summary::before{left:-11px;}.impl-items>.item-info{margin-left:34px;}.src nav.sub{margin:0;padding:var(--nav-sub-mobile-padding);}}@media (min-width:701px){.scraped-example-title{position:absolute;z-index:10;background:var(--main-background-color);bottom:8px;right:5px;padding:2px 4px;box-shadow:0 0 4px var(--main-background-color);}.item-table>li>.item-name{width:33%;}.item-table>li>div{padding-bottom:5px;word-break:break-all;}}@media print{nav.sidebar,nav.sub,.out-of-band,a.src,#copy-path,details.toggle[open] >summary::before,details.toggle>summary::before,details.toggle.top-doc>summary{display:none;}.docblock{margin-left:0;}main{padding:10px;}}@media (max-width:464px){.docblock{margin-left:12px;}.docblock code{overflow-wrap:break-word;overflow-wrap:anywhere;}nav.sub{flex-direction:column;}.search-form{align-self:stretch;}}.variant,.implementors-toggle>summary,.impl,#implementors-list>.docblock,.impl-items>section,.impl-items>.toggle>summary,.methods>section,.methods>.toggle>summary{margin-bottom:0.75em;}.variants>.docblock,.implementors-toggle>.docblock,.impl-items>.toggle[open]:not(:last-child),.methods>.toggle[open]:not(:last-child),.implementors-toggle[open]:not(:last-child){margin-bottom:2em;}#trait-implementations-list .impl-items>.toggle:not(:last-child),#synthetic-implementations-list .impl-items>.toggle:not(:last-child),#blanket-implementations-list .impl-items>.toggle:not(:last-child){margin-bottom:1em;}.scraped-example-list .scrape-help{margin-left:10px;padding:0 4px;font-weight:normal;font-size:12px;position:relative;bottom:1px;border:1px solid var(--scrape-example-help-border-color);border-radius:50px;color:var(--scrape-example-help-color);}.scraped-example-list .scrape-help:hover{border-color:var(--scrape-example-help-hover-border-color);color:var(--scrape-example-help-hover-color);}.scraped-example{position:relative;}.scraped-example .code-wrapper{position:relative;display:flex;flex-direction:row;flex-wrap:wrap;width:100%;}.scraped-example:not(.expanded) .code-wrapper{max-height:calc(1.5em * 5 + 10px);}.scraped-example:not(.expanded) .code-wrapper pre{overflow-y:hidden;padding-bottom:0;max-height:calc(1.5em * 5 + 10px);}.more-scraped-examples .scraped-example:not(.expanded) .code-wrapper,.more-scraped-examples .scraped-example:not(.expanded) .code-wrapper pre{max-height:calc(1.5em * 10 + 10px);}.scraped-example .code-wrapper .next,.scraped-example .code-wrapper .prev,.scraped-example .code-wrapper .expand{color:var(--main-color);position:absolute;top:0.25em;z-index:1;padding:0;background:none;border:none;-webkit-appearance:none;opacity:1;}.scraped-example .code-wrapper .prev{right:2.25em;}.scraped-example .code-wrapper .next{right:1.25em;}.scraped-example .code-wrapper .expand{right:0.25em;}.scraped-example:not(.expanded) .code-wrapper::before,.scraped-example:not(.expanded) .code-wrapper::after{content:" ";width:100%;height:5px;position:absolute;z-index:1;}.scraped-example:not(.expanded) .code-wrapper::before{top:0;background:linear-gradient(to bottom,var(--scrape-example-code-wrapper-background-start),var(--scrape-example-code-wrapper-background-end));}.scraped-example:not(.expanded) .code-wrapper::after{bottom:0;background:linear-gradient(to top,var(--scrape-example-code-wrapper-background-start),var(--scrape-example-code-wrapper-background-end));}.scraped-example .code-wrapper .example-wrap{width:100%;overflow-y:hidden;margin-bottom:0;}.scraped-example:not(.expanded) .code-wrapper .example-wrap{overflow-x:hidden;}.scraped-example .example-wrap .rust span.highlight{background:var(--scrape-example-code-line-highlight);}.scraped-example .example-wrap .rust span.highlight.focus{background:var(--scrape-example-code-line-highlight-focus);}.more-examples-toggle{max-width:calc(100% + 25px);margin-top:10px;margin-left:-25px;}.more-examples-toggle .hide-more{margin-left:25px;cursor:pointer;}.more-scraped-examples{margin-left:25px;position:relative;}.toggle-line{position:absolute;top:5px;bottom:0;right:calc(100% + 10px);padding:0 4px;cursor:pointer;}.toggle-line-inner{min-width:2px;height:100%;background:var(--scrape-example-toggle-line-background);}.toggle-line:hover .toggle-line-inner{background:var(--scrape-example-toggle-line-hover-background);}.more-scraped-examples .scraped-example,.example-links{margin-top:20px;}.more-scraped-examples .scraped-example:first-child{margin-top:5px;}.example-links ul{margin-bottom:0;}:root[data-theme="light"],:root:not([data-theme]){--main-background-color:white;--main-color:black;--settings-input-color:#2196f3;--settings-input-border-color:#717171;--settings-button-color:#000;--settings-button-border-focus:#717171;--sidebar-background-color:#f5f5f5;--sidebar-background-color-hover:#e0e0e0;--code-block-background-color:#f5f5f5;--scrollbar-track-background-color:#dcdcdc;--scrollbar-thumb-background-color:rgba(36,37,39,0.6);--scrollbar-color:rgba(36,37,39,0.6) #d9d9d9;--headings-border-bottom-color:#ddd;--border-color:#e0e0e0;--button-background-color:#fff;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:none;--mobile-sidebar-menu-filter:none;--search-input-focused-border-color:#66afe9;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(35%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ad378a;--trait-link-color:#6e4fc9;--assoc-item-link-color:#3873ad;--function-link-color:#ad7c37;--macro-link-color:#068000;--keyword-link-color:#3873ad;--mod-link-color:#3873ad;--link-color:#3873ad;--sidebar-link-color:#356da4;--sidebar-current-link-background-color:#fff;--search-result-link-focus-background-color:#ccc;--search-result-border-color:#aaa3;--search-color:#000;--search-error-code-background-color:#d0cccc;--search-results-alias-color:#000;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#e6e6e6;--search-tab-button-not-selected-background:#e6e6e6;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#fff;--settings-menu-filter:none;--stab-background-color:#fff5d6;--stab-code-color:#000;--code-highlight-kw-color:#8959a8;--code-highlight-kw-2-color:#4271ae;--code-highlight-lifetime-color:#b76514;--code-highlight-prelude-color:#4271ae;--code-highlight-prelude-val-color:#c82829;--code-highlight-number-color:#718c00;--code-highlight-string-color:#718c00;--code-highlight-literal-color:#c82829;--code-highlight-attribute-color:#c82829;--code-highlight-self-color:#c82829;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8e908c;--code-highlight-doc-comment-color:#4d4d4c;--src-line-numbers-span-color:#c67e2d;--src-line-number-highlighted-background-color:#fdffd3;--test-arrow-color:#f5f5f5;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#f5f5f5;--test-arrow-hover-background-color:rgb(78,139,202);--target-background-color:#fdffd3;--target-border-color:#ad7c37;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:initial;--crate-search-div-filter:invert(100%) sepia(0%) saturate(4223%) hue-rotate(289deg) brightness(114%) contrast(76%);--crate-search-div-hover-filter:invert(44%) sepia(18%) saturate(23%) hue-rotate(317deg) brightness(96%) contrast(93%);--crate-search-hover-border:#717171;--src-sidebar-background-selected:#fff;--src-sidebar-background-hover:#e0e0e0;--table-alt-row-background-color:#f5f5f5;--codeblock-link-background:#eee;--scrape-example-toggle-line-background:#ccc;--scrape-example-toggle-line-hover-background:#999;--scrape-example-code-line-highlight:#fcffd6;--scrape-example-code-line-highlight-focus:#f6fdb0;--scrape-example-help-border-color:#555;--scrape-example-help-color:#333;--scrape-example-help-hover-border-color:#000;--scrape-example-help-hover-color:#000;--scrape-example-code-wrapper-background-start:rgba(255,255,255,1);--scrape-example-code-wrapper-background-end:rgba(255,255,255,0);--sidebar-resizer-hover:hsl(207,90%,66%);--sidebar-resizer-active:hsl(207,90%,54%);}:root[data-theme="dark"]{--main-background-color:#353535;--main-color:#ddd;--settings-input-color:#2196f3;--settings-input-border-color:#999;--settings-button-color:#000;--settings-button-border-focus:#ffb900;--sidebar-background-color:#505050;--sidebar-background-color-hover:#676767;--code-block-background-color:#2A2A2A;--scrollbar-track-background-color:#717171;--scrollbar-thumb-background-color:rgba(32,34,37,.6);--scrollbar-color:rgba(32,34,37,.6) #5a5a5a;--headings-border-bottom-color:#d2d2d2;--border-color:#e0e0e0;--button-background-color:#f0f0f0;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--mobile-sidebar-menu-filter:invert(100%);--search-input-focused-border-color:#008dfd;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(65%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#2dbfb8;--trait-link-color:#b78cf2;--assoc-item-link-color:#d2991d;--function-link-color:#2bab63;--macro-link-color:#09bd00;--keyword-link-color:#d2991d;--mod-link-color:#d2991d;--link-color:#d2991d;--sidebar-link-color:#fdbf35;--sidebar-current-link-background-color:#444;--search-result-link-focus-background-color:#616161;--search-result-border-color:#aaa3;--search-color:#111;--search-error-code-background-color:#484848;--search-results-alias-color:#fff;--search-results-grey-color:#ccc;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#252525;--search-tab-button-not-selected-background:#252525;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#353535;--settings-menu-filter:none;--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ab8ac1;--code-highlight-kw-2-color:#769acb;--code-highlight-lifetime-color:#d97f26;--code-highlight-prelude-color:#769acb;--code-highlight-prelude-val-color:#ee6868;--code-highlight-number-color:#83a300;--code-highlight-string-color:#83a300;--code-highlight-literal-color:#ee6868;--code-highlight-attribute-color:#ee6868;--code-highlight-self-color:#ee6868;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8d8d8b;--code-highlight-doc-comment-color:#8ca375;--src-line-numbers-span-color:#3b91e2;--src-line-number-highlighted-background-color:#0a042f;--test-arrow-color:#dedede;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#dedede;--test-arrow-hover-background-color:#4e8bca;--target-background-color:#494a3d;--target-border-color:#bb7410;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(94%) sepia(0%) saturate(721%) hue-rotate(255deg) brightness(90%) contrast(90%);--crate-search-div-hover-filter:invert(69%) sepia(60%) saturate(6613%) hue-rotate(184deg) brightness(100%) contrast(91%);--crate-search-hover-border:#2196f3;--src-sidebar-background-selected:#333;--src-sidebar-background-hover:#444;--table-alt-row-background-color:#2a2a2a;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(53,53,53,1);--scrape-example-code-wrapper-background-end:rgba(53,53,53,0);--sidebar-resizer-hover:hsl(207,30%,54%);--sidebar-resizer-active:hsl(207,90%,54%);}:root[data-theme="ayu"]{--main-background-color:#0f1419;--main-color:#c5c5c5;--settings-input-color:#ffb454;--settings-input-border-color:#999;--settings-button-color:#fff;--settings-button-border-focus:#e0e0e0;--sidebar-background-color:#14191f;--sidebar-background-color-hover:rgba(70,70,70,0.33);--code-block-background-color:#191f26;--scrollbar-track-background-color:transparent;--scrollbar-thumb-background-color:#5c6773;--scrollbar-color:#5c6773 #24292f;--headings-border-bottom-color:#5c6773;--border-color:#5c6773;--button-background-color:#141920;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--mobile-sidebar-menu-filter:invert(100%);--search-input-focused-border-color:#5c6773;--copy-path-button-color:#fff;--copy-path-img-filter:invert(70%);--copy-path-img-hover-filter:invert(100%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ffa0a5;--trait-link-color:#39afd7;--assoc-item-link-color:#39afd7;--function-link-color:#fdd687;--macro-link-color:#a37acc;--keyword-link-color:#39afd7;--mod-link-color:#39afd7;--link-color:#39afd7;--sidebar-link-color:#53b1db;--sidebar-current-link-background-color:transparent;--search-result-link-focus-background-color:#3c3c3c;--search-result-border-color:#aaa3;--search-color:#fff;--search-error-code-background-color:#4f4c4c;--search-results-alias-color:#c5c5c5;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:none;--search-tab-button-not-selected-background:transparent !important;--search-tab-button-selected-border-top-color:none;--search-tab-button-selected-background:#141920 !important;--settings-menu-filter:invert(100%);--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ff7733;--code-highlight-kw-2-color:#ff7733;--code-highlight-lifetime-color:#ff7733;--code-highlight-prelude-color:#69f2df;--code-highlight-prelude-val-color:#ff7733;--code-highlight-number-color:#b8cc52;--code-highlight-string-color:#b8cc52;--code-highlight-literal-color:#ff7733;--code-highlight-attribute-color:#e6e1cf;--code-highlight-self-color:#36a3d9;--code-highlight-macro-color:#a37acc;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#788797;--code-highlight-doc-comment-color:#a1ac88;--src-line-numbers-span-color:#5c6773;--src-line-number-highlighted-background-color:rgba(255,236,164,0.06);--test-arrow-color:#788797;--test-arrow-background-color:rgba(57,175,215,0.09);--test-arrow-hover-color:#c5c5c5;--test-arrow-hover-background-color:rgba(57,175,215,0.368);--target-background-color:rgba(255,236,164,0.06);--target-border-color:rgba(255,180,76,0.85);--kbd-color:#c5c5c5;--kbd-background:#314559;--kbd-box-shadow-color:#5c6773;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(41%) sepia(12%) saturate(487%) hue-rotate(171deg) brightness(94%) contrast(94%);--crate-search-div-hover-filter:invert(98%) sepia(12%) saturate(81%) hue-rotate(343deg) brightness(113%) contrast(76%);--crate-search-hover-border:#e0e0e0;--src-sidebar-background-selected:#14191f;--src-sidebar-background-hover:#14191f;--table-alt-row-background-color:#191f26;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(15,20,25,1);--scrape-example-code-wrapper-background-end:rgba(15,20,25,0);--sidebar-resizer-hover:hsl(34,50%,33%);--sidebar-resizer-active:hsl(34,100%,66%);}:root[data-theme="ayu"] h1,:root[data-theme="ayu"] h2,:root[data-theme="ayu"] h3,:root[data-theme="ayu"] h4,:where(:root[data-theme="ayu"]) h1 a,:root[data-theme="ayu"] .sidebar h2 a,:root[data-theme="ayu"] .sidebar h3 a{color:#fff;}:root[data-theme="ayu"] .docblock code{color:#ffb454;}:root[data-theme="ayu"] .docblock a>code{color:#39AFD7 !important;}:root[data-theme="ayu"] .code-header,:root[data-theme="ayu"] .docblock pre>code,:root[data-theme="ayu"] pre,:root[data-theme="ayu"] pre>code,:root[data-theme="ayu"] .item-info code,:root[data-theme="ayu"] .rustdoc.source .example-wrap{color:#e6e1cf;}:root[data-theme="ayu"] .sidebar .current,:root[data-theme="ayu"] .sidebar .current a,:root[data-theme="ayu"] .sidebar a:hover,:root[data-theme="ayu"] #src-sidebar div.files>a:hover,:root[data-theme="ayu"] details.dir-entry summary:hover,:root[data-theme="ayu"] #src-sidebar div.files>a:focus,:root[data-theme="ayu"] details.dir-entry summary:focus,:root[data-theme="ayu"] #src-sidebar div.files>a.selected{color:#ffb44c;}:root[data-theme="ayu"] .sidebar-elems .location{color:#ff7733;}:root[data-theme="ayu"] .src-line-numbers .line-highlighted{color:#708090;padding-right:7px;border-right:1px solid #ffb44c;}:root[data-theme="ayu"] .search-results a:hover,:root[data-theme="ayu"] .search-results a:focus{color:#fff !important;background-color:#3c3c3c;}:root[data-theme="ayu"] .search-results a{color:#0096cf;}:root[data-theme="ayu"] .search-results a div.desc{color:#c5c5c5;}:root[data-theme="ayu"] .result-name .primitive>i,:root[data-theme="ayu"] .result-name .keyword>i{color:#788797;}:root[data-theme="ayu"] #search-tabs>button.selected{border-bottom:1px solid #ffb44c !important;border-top:none;}:root[data-theme="ayu"] #search-tabs>button:not(.selected){border:none;background-color:transparent !important;}:root[data-theme="ayu"] #search-tabs>button:hover{border-bottom:1px solid rgba(242,151,24,0.3);}:root[data-theme="ayu"] #settings-menu>a img,:root[data-theme="ayu"] #sidebar-button>a:before{filter:invert(100);} \ No newline at end of file diff --git a/crates/static.files/search-a99f1315e7cc5121.js b/crates/static.files/search-a99f1315e7cc5121.js new file mode 100644 index 00000000..aee0fc77 --- /dev/null +++ b/crates/static.files/search-a99f1315e7cc5121.js @@ -0,0 +1,5 @@ +"use strict";if(!Array.prototype.toSpliced){Array.prototype.toSpliced=function(){const me=this.slice();Array.prototype.splice.apply(me,arguments);return me}}(function(){const itemTypes=["keyword","primitive","mod","externcrate","import","struct","enum","fn","type","static","trait","impl","tymethod","method","structfield","variant","macro","associatedtype","constant","associatedconstant","union","foreigntype","existential","attr","derive","traitalias","generic",];const TY_GENERIC=itemTypes.indexOf("generic");const TY_IMPORT=itemTypes.indexOf("import");const ROOT_PATH=typeof window!=="undefined"?window.rootPath:"../";const UNBOXING_LIMIT=5;const REGEX_IDENT=/\p{ID_Start}\p{ID_Continue}*|_\p{ID_Continue}+/uy;const REGEX_INVALID_TYPE_FILTER=/[^a-z]/ui;const MAX_RESULTS=200;const NO_TYPE_FILTER=-1;const editDistanceState={current:[],prev:[],prevPrev:[],calculate:function calculate(a,b,limit){if(a.lengthlimit){return limit+1}while(b.length>0&&b[0]===a[0]){a=a.substring(1);b=b.substring(1)}while(b.length>0&&b[b.length-1]===a[a.length-1]){a=a.substring(0,a.length-1);b=b.substring(0,b.length-1)}if(b.length===0){return minDist}const aLength=a.length;const bLength=b.length;for(let i=0;i<=bLength;++i){this.current[i]=0;this.prev[i]=i;this.prevPrev[i]=Number.MAX_VALUE}for(let i=1;i<=aLength;++i){this.current[0]=i;const aIdx=i-1;for(let j=1;j<=bLength;++j){const bIdx=j-1;const substitutionCost=a[aIdx]===b[bIdx]?0:1;this.current[j]=Math.min(this.prev[j]+1,this.current[j-1]+1,this.prev[j-1]+substitutionCost,);if((i>1)&&(j>1)&&(a[aIdx]===b[bIdx-1])&&(a[aIdx-1]===b[bIdx])){this.current[j]=Math.min(this.current[j],this.prevPrev[j-2]+1,)}}const prevPrevTmp=this.prevPrev;this.prevPrev=this.prev;this.prev=this.current;this.current=prevPrevTmp}const distance=this.prev[bLength];return distance<=limit?distance:(limit+1)},};function editDistance(a,b,limit){return editDistanceState.calculate(a,b,limit)}function isEndCharacter(c){return"=,>-])".indexOf(c)!==-1}function isSeparatorCharacter(c){return c===","||c==="="}function isReturnArrow(parserState){return parserState.userQuery.slice(parserState.pos,parserState.pos+2)==="->"}function skipWhitespace(parserState){while(parserState.pos0){const c=parserState.userQuery[pos-1];if(c===lookingFor){return true}else if(c!==" "){break}pos-=1}return false}function isLastElemGeneric(elems,parserState){return(elems.length>0&&elems[elems.length-1].generics.length>0)||prevIs(parserState,">")}function getFilteredNextElem(query,parserState,elems,isInGenerics){const start=parserState.pos;if(parserState.userQuery[parserState.pos]===":"&&!isPathStart(parserState)){throw["Expected type filter before ",":"]}getNextElem(query,parserState,elems,isInGenerics);if(parserState.userQuery[parserState.pos]===":"&&!isPathStart(parserState)){if(parserState.typeFilter!==null){throw["Unexpected ",":"," (expected path after type filter ",parserState.typeFilter+":",")",]}if(elems.length===0){throw["Expected type filter before ",":"]}else if(query.literalSearch){throw["Cannot use quotes on type filter"]}const typeFilterElem=elems.pop();checkExtraTypeFilterCharacters(start,parserState);parserState.typeFilter=typeFilterElem.name;parserState.pos+=1;parserState.totalElems-=1;query.literalSearch=false;getNextElem(query,parserState,elems,isInGenerics)}}function getItemsBefore(query,parserState,elems,endChar){let foundStopChar=true;let foundSeparator=false;const oldTypeFilter=parserState.typeFilter;parserState.typeFilter=null;const oldIsInBinding=parserState.isInBinding;parserState.isInBinding=null;let hofParameters=null;let extra="";if(endChar===">"){extra="<"}else if(endChar==="]"){extra="["}else if(endChar===")"){extra="("}else if(endChar===""){extra="->"}else{extra=endChar}while(parserState.pos"," after ","="]}hofParameters=[...elems];elems.length=0;parserState.pos+=2;foundStopChar=true;foundSeparator=false;continue}else if(c===" "){parserState.pos+=1;continue}else if(isSeparatorCharacter(c)){parserState.pos+=1;foundStopChar=true;foundSeparator=true;continue}else if(c===":"&&isPathStart(parserState)){throw["Unexpected ","::",": paths cannot start with ","::"]}else if(isEndCharacter(c)){throw["Unexpected ",c," after ",extra]}if(!foundStopChar){let extra=[];if(isLastElemGeneric(query.elems,parserState)){extra=[" after ",">"]}else if(prevIs(parserState,"\"")){throw["Cannot have more than one element if you use quotes"]}if(endChar!==""){throw["Expected ",",",", ","=",", or ",endChar,...extra,", found ",c,]}throw["Expected ",","," or ","=",...extra,", found ",c,]}const posBefore=parserState.pos;getFilteredNextElem(query,parserState,elems,endChar!=="");if(endChar!==""&&parserState.pos>=parserState.length){throw["Unclosed ",extra]}if(posBefore===parserState.pos){parserState.pos+=1}foundStopChar=false}if(parserState.pos>=parserState.length&&endChar!==""){throw["Unclosed ",extra]}parserState.pos+=1;if(hofParameters){foundSeparator=false;if([...elems,...hofParameters].some(x=>x.bindingName)||parserState.isInBinding){throw["Unexpected ","="," within ","->"]}const hofElem=makePrimitiveElement("->",{generics:hofParameters,bindings:new Map([["output",[...elems]]]),typeFilter:null,});elems.length=0;elems[0]=hofElem}parserState.typeFilter=oldTypeFilter;parserState.isInBinding=oldIsInBinding;return{foundSeparator}}function getNextElem(query,parserState,elems,isInGenerics){const generics=[];skipWhitespace(parserState);let start=parserState.pos;let end;if("[(".indexOf(parserState.userQuery[parserState.pos])!==-1){let endChar=")";let name="()";let friendlyName="tuple";if(parserState.userQuery[parserState.pos]==="["){endChar="]";name="[]";friendlyName="slice"}parserState.pos+=1;const{foundSeparator}=getItemsBefore(query,parserState,generics,endChar);const typeFilter=parserState.typeFilter;const bindingName=parserState.isInBinding;parserState.typeFilter=null;parserState.isInBinding=null;for(const gen of generics){if(gen.bindingName!==null){throw["Type parameter ","=",` cannot be within ${friendlyName} `,name]}}if(name==="()"&&!foundSeparator&&generics.length===1&&typeFilter===null){elems.push(generics[0])}else if(name==="()"&&generics.length===1&&generics[0].name==="->"){generics[0].typeFilter=typeFilter;elems.push(generics[0])}else{if(typeFilter!==null&&typeFilter!=="primitive"){throw["Invalid search type: primitive ",name," and ",typeFilter," both specified",]}parserState.totalElems+=1;if(isInGenerics){parserState.genericsElems+=1}elems.push(makePrimitiveElement(name,{bindingName,generics}))}}else if(parserState.userQuery[parserState.pos]==="&"){if(parserState.typeFilter!==null&&parserState.typeFilter!=="primitive"){throw["Invalid search type: primitive ","&"," and ",parserState.typeFilter," both specified",]}parserState.typeFilter=null;parserState.pos+=1;let c=parserState.userQuery[parserState.pos];while(c===" "&&parserState.pos=end){throw["Found generics without a path"]}parserState.pos+=1;getItemsBefore(query,parserState,generics,">")}else if(parserState.pos=end){throw["Found generics without a path"]}if(parserState.isInBinding){throw["Unexpected ","("," after ","="]}parserState.pos+=1;const typeFilter=parserState.typeFilter;parserState.typeFilter=null;getItemsBefore(query,parserState,generics,")");skipWhitespace(parserState);if(isReturnArrow(parserState)){parserState.pos+=2;skipWhitespace(parserState);getFilteredNextElem(query,parserState,generics,isInGenerics);generics[generics.length-1].bindingName=makePrimitiveElement("output")}else{generics.push(makePrimitiveElement(null,{bindingName:makePrimitiveElement("output"),typeFilter:null,}))}parserState.typeFilter=typeFilter}if(isStringElem){skipWhitespace(parserState)}if(start>=end&&generics.length===0){return}if(parserState.userQuery[parserState.pos]==="="){if(parserState.isInBinding){throw["Cannot write ","="," twice in a binding"]}if(!isInGenerics){throw["Type parameter ","="," must be within generics list"]}const name=parserState.userQuery.slice(start,end).trim();if(name==="!"){throw["Type parameter ","="," key cannot be ","!"," never type"]}if(name.includes("!")){throw["Type parameter ","="," key cannot be ","!"," macro"]}if(name.includes("::")){throw["Type parameter ","="," key cannot contain ","::"," path"]}if(name.includes(":")){throw["Type parameter ","="," key cannot contain ",":"," type"]}parserState.isInBinding={name,generics}}else{elems.push(createQueryElement(query,parserState,parserState.userQuery.slice(start,end),generics,isInGenerics,),)}}}function checkExtraTypeFilterCharacters(start,parserState){const query=parserState.userQuery.slice(start,parserState.pos).trim();const match=query.match(REGEX_INVALID_TYPE_FILTER);if(match){throw["Unexpected ",match[0]," in type filter (before ",":",")",]}}function createQueryElement(query,parserState,name,generics,isInGenerics){const path=name.trim();if(path.length===0&&generics.length===0){throw["Unexpected ",parserState.userQuery[parserState.pos]]}if(query.literalSearch&&parserState.totalElems-parserState.genericsElems>0){throw["Cannot have more than one element if you use quotes"]}const typeFilter=parserState.typeFilter;parserState.typeFilter=null;if(name==="!"){if(typeFilter!==null&&typeFilter!=="primitive"){throw["Invalid search type: primitive never type ","!"," and ",typeFilter," both specified",]}if(generics.length!==0){throw["Never type ","!"," does not accept generic parameters",]}const bindingName=parserState.isInBinding;parserState.isInBinding=null;return makePrimitiveElement("never",{bindingName})}const quadcolon=/::\s*::/.exec(path);if(path.startsWith("::")){throw["Paths cannot start with ","::"]}else if(path.endsWith("::")){throw["Paths cannot end with ","::"]}else if(quadcolon!==null){throw["Unexpected ",quadcolon[0]]}const pathSegments=path.split(/(?:::\s*)|(?:\s+(?:::\s*)?)/);if(pathSegments.length===0||(pathSegments.length===1&&pathSegments[0]==="")){if(generics.length>0||prevIs(parserState,">")){throw["Found generics without a path"]}else{throw["Unexpected ",parserState.userQuery[parserState.pos]]}}for(const[i,pathSegment]of pathSegments.entries()){if(pathSegment==="!"){if(i!==0){throw["Never type ","!"," is not associated item"]}pathSegments[i]="never"}}parserState.totalElems+=1;if(isInGenerics){parserState.genericsElems+=1}const bindingName=parserState.isInBinding;parserState.isInBinding=null;const bindings=new Map();const pathLast=pathSegments[pathSegments.length-1];return{name:name.trim(),id:null,fullPath:pathSegments,pathWithoutLast:pathSegments.slice(0,pathSegments.length-1),pathLast,normalizedPathLast:pathLast.replace(/_/g,""),generics:generics.filter(gen=>{if(gen.bindingName!==null){if(gen.name!==null){gen.bindingName.generics.unshift(gen)}bindings.set(gen.bindingName.name,gen.bindingName.generics);return false}return true}),bindings,typeFilter,bindingName,}}function makePrimitiveElement(name,extra){return Object.assign({name,id:null,fullPath:[name],pathWithoutLast:[],pathLast:name,normalizedPathLast:name,generics:[],bindings:new Map(),typeFilter:"primitive",bindingName:null,},extra)}function getStringElem(query,parserState,isInGenerics){if(isInGenerics){throw["Unexpected ","\""," in generics"]}else if(query.literalSearch){throw["Cannot have more than one literal search element"]}else if(parserState.totalElems-parserState.genericsElems>0){throw["Cannot use literal search when there is more than one element"]}parserState.pos+=1;const start=parserState.pos;const end=getIdentEndPosition(parserState);if(parserState.pos>=parserState.length){throw["Unclosed ","\""]}else if(parserState.userQuery[end]!=="\""){throw["Unexpected ",parserState.userQuery[end]," in a string element"]}else if(start===end){throw["Cannot have empty string element"]}parserState.pos+=1;query.literalSearch=true}function getIdentEndPosition(parserState){let afterIdent=consumeIdent(parserState);let end=parserState.pos;let macroExclamation=-1;while(parserState.pos0){throw["Unexpected ",c," after ",parserState.userQuery[parserState.pos-1]," (not a valid identifier)"]}else{throw["Unexpected ",c," (not a valid identifier)"]}parserState.pos+=1;afterIdent=consumeIdent(parserState);end=parserState.pos}if(macroExclamation!==-1){if(parserState.typeFilter===null){parserState.typeFilter="macro"}else if(parserState.typeFilter!=="macro"){throw["Invalid search type: macro ","!"," and ",parserState.typeFilter," both specified",]}end=macroExclamation}return end}function isSpecialStartCharacter(c){return"<\"".indexOf(c)!==-1}function isPathStart(parserState){return parserState.userQuery.slice(parserState.pos,parserState.pos+2)==="::"}function consumeIdent(parserState){REGEX_IDENT.lastIndex=parserState.pos;const match=parserState.userQuery.match(REGEX_IDENT);if(match){parserState.pos+=match[0].length;return true}return false}function isPathSeparator(c){return c===":"||c===" "}class VlqHexDecoder{constructor(string,cons){this.string=string;this.cons=cons;this.offset=0;this.backrefQueue=[]}decodeList(){let c=this.string.charCodeAt(this.offset);const ret=[];while(c!==125){ret.push(this.decode());c=this.string.charCodeAt(this.offset)}this.offset+=1;return ret}decode(){let n=0;let c=this.string.charCodeAt(this.offset);if(c===123){this.offset+=1;return this.decodeList()}while(c<96){n=(n<<4)|(c&0xF);this.offset+=1;c=this.string.charCodeAt(this.offset)}n=(n<<4)|(c&0xF);const[sign,value]=[n&1,n>>1];this.offset+=1;return sign?-value:value}next(){const c=this.string.charCodeAt(this.offset);if(c>=48&&c<64){this.offset+=1;return this.backrefQueue[c-48]}if(c===96){this.offset+=1;return this.cons(0)}const result=this.cons(this.decode());this.backrefQueue.unshift(result);if(this.backrefQueue.length>16){this.backrefQueue.pop()}return result}}class RoaringBitmap{constructor(str){const strdecoded=atob(str);const u8array=new Uint8Array(strdecoded.length);for(let j=0;j=4){offsets=[];for(let j=0;j>3]&(1<<(j&0x7))){const runcount=(u8array[i]|(u8array[i+1]<<8));i+=2;this.containers.push(new RoaringBitmapRun(runcount,u8array.slice(i,i+(runcount*4)),));i+=runcount*4}else if(this.cardinalities[j]>=4096){this.containers.push(new RoaringBitmapBits(u8array.slice(i,i+8192)));i+=8192}else{const end=this.cardinalities[j]*2;this.containers.push(new RoaringBitmapArray(this.cardinalities[j],u8array.slice(i,i+end),));i+=end}}}contains(keyvalue){const key=keyvalue>>16;const value=keyvalue&0xFFFF;for(let i=0;i=start&&value<=(start+lenm1)){return true}}return false}}class RoaringBitmapArray{constructor(cardinality,array){this.cardinality=cardinality;this.array=array}contains(value){const l=this.cardinality*2;for(let i=0;i>3]&(1<<(value&7)))}}class DocSearch{constructor(rawSearchIndex,rootPath,searchState){this.searchIndexDeprecated=new Map();this.searchIndexEmptyDesc=new Map();this.functionTypeFingerprint=null;this.typeNameIdMap=new Map();this.ALIASES=new Map();this.rootPath=rootPath;this.searchState=searchState;this.typeNameIdOfArray=this.buildTypeMapIndex("array");this.typeNameIdOfSlice=this.buildTypeMapIndex("slice");this.typeNameIdOfArrayOrSlice=this.buildTypeMapIndex("[]");this.typeNameIdOfTuple=this.buildTypeMapIndex("tuple");this.typeNameIdOfUnit=this.buildTypeMapIndex("unit");this.typeNameIdOfTupleOrUnit=this.buildTypeMapIndex("()");this.typeNameIdOfFn=this.buildTypeMapIndex("fn");this.typeNameIdOfFnMut=this.buildTypeMapIndex("fnmut");this.typeNameIdOfFnOnce=this.buildTypeMapIndex("fnonce");this.typeNameIdOfHof=this.buildTypeMapIndex("->");this.EMPTY_BINDINGS_MAP=new Map();this.EMPTY_GENERICS_ARRAY=[];this.TYPES_POOL=new Map();this.searchIndex=this.buildIndex(rawSearchIndex)}buildTypeMapIndex(name,isAssocType){if(name===""||name===null){return null}if(this.typeNameIdMap.has(name)){const obj=this.typeNameIdMap.get(name);obj.assocOnly=isAssocType&&obj.assocOnly;return obj.id}else{const id=this.typeNameIdMap.size;this.typeNameIdMap.set(name,{id,assocOnly:isAssocType});return id}}buildItemSearchTypeAll(types,lowercasePaths){return types.length>0?types.map(type=>this.buildItemSearchType(type,lowercasePaths)):this.EMPTY_GENERICS_ARRAY}buildItemSearchType(type,lowercasePaths,isAssocType){const PATH_INDEX_DATA=0;const GENERICS_DATA=1;const BINDINGS_DATA=2;let pathIndex,generics,bindings;if(typeof type==="number"){pathIndex=type;generics=this.EMPTY_GENERICS_ARRAY;bindings=this.EMPTY_BINDINGS_MAP}else{pathIndex=type[PATH_INDEX_DATA];generics=this.buildItemSearchTypeAll(type[GENERICS_DATA],lowercasePaths,);if(type.length>BINDINGS_DATA&&type[BINDINGS_DATA].length>0){bindings=new Map(type[BINDINGS_DATA].map(binding=>{const[assocType,constraints]=binding;return[this.buildItemSearchType(assocType,lowercasePaths,true).id,this.buildItemSearchTypeAll(constraints,lowercasePaths),]}))}else{bindings=this.EMPTY_BINDINGS_MAP}}let result;if(pathIndex<0){result={id:pathIndex,ty:TY_GENERIC,path:null,exactPath:null,generics,bindings,}}else if(pathIndex===0){result={id:null,ty:null,path:null,exactPath:null,generics,bindings,}}else{const item=lowercasePaths[pathIndex-1];result={id:this.buildTypeMapIndex(item.name,isAssocType),ty:item.ty,path:item.path,exactPath:item.exactPath,generics,bindings,}}const cr=this.TYPES_POOL.get(result.id);if(cr){if(cr.generics.length===result.generics.length&&cr.generics!==result.generics&&cr.generics.every((x,i)=>result.generics[i]===x)){result.generics=cr.generics}if(cr.bindings.size===result.bindings.size&&cr.bindings!==result.bindings){let ok=true;for(const[k,v]of cr.bindings.entries()){const v2=result.bindings.get(v);if(!v2){ok=false;break}if(v!==v2&&v.length===v2.length&&v.every((x,i)=>v2[i]===x)){result.bindings.set(k,v)}else if(v!==v2){ok=false;break}}if(ok){result.bindings=cr.bindings}}if(cr.ty===result.ty&&cr.path===result.path&&cr.bindings===result.bindings&&cr.generics===result.generics&&cr.ty===result.ty){return cr}}this.TYPES_POOL.set(result.id,result);return result}buildFunctionTypeFingerprint(type,output,fps){let input=type.id;if(input===this.typeNameIdOfArray||input===this.typeNameIdOfSlice){input=this.typeNameIdOfArrayOrSlice}if(input===this.typeNameIdOfTuple||input===this.typeNameIdOfUnit){input=this.typeNameIdOfTupleOrUnit}if(input===this.typeNameIdOfFn||input===this.typeNameIdOfFnMut||input===this.typeNameIdOfFnOnce){input=this.typeNameIdOfHof}const hashint1=k=>{k=(~~k+0x7ed55d16)+(k<<12);k=(k ^ 0xc761c23c)^(k>>>19);k=(~~k+0x165667b1)+(k<<5);k=(~~k+0xd3a2646c)^(k<<9);k=(~~k+0xfd7046c5)+(k<<3);return(k ^ 0xb55a4f09)^(k>>>16)};const hashint2=k=>{k=~k+(k<<15);k ^=k>>>12;k+=k<<2;k ^=k>>>4;k=Math.imul(k,2057);return k ^(k>>16)};if(input!==null){const h0a=hashint1(input);const h0b=hashint2(input);const h1a=~~(h0a+Math.imul(h0b,2));const h1b=~~(h0a+Math.imul(h0b,3));const h2a=~~(h0a+Math.imul(h0b,4));const h2b=~~(h0a+Math.imul(h0b,5));output[0]|=(1<<(h0a%32))|(1<<(h1b%32));output[1]|=(1<<(h1a%32))|(1<<(h2b%32));output[2]|=(1<<(h2a%32))|(1<<(h0b%32));fps.add(input)}for(const g of type.generics){this.buildFunctionTypeFingerprint(g,output,fps)}const fb={id:null,ty:0,generics:this.EMPTY_GENERICS_ARRAY,bindings:this.EMPTY_BINDINGS_MAP,};for(const[k,v]of type.bindings.entries()){fb.id=k;fb.generics=v;this.buildFunctionTypeFingerprint(fb,output,fps)}output[3]=fps.size}buildIndex(rawSearchIndex){const buildFunctionSearchTypeCallback=lowercasePaths=>{return functionSearchType=>{if(functionSearchType===0){return null}const INPUTS_DATA=0;const OUTPUT_DATA=1;let inputs,output;if(typeof functionSearchType[INPUTS_DATA]==="number"){inputs=[this.buildItemSearchType(functionSearchType[INPUTS_DATA],lowercasePaths),]}else{inputs=this.buildItemSearchTypeAll(functionSearchType[INPUTS_DATA],lowercasePaths,)}if(functionSearchType.length>1){if(typeof functionSearchType[OUTPUT_DATA]==="number"){output=[this.buildItemSearchType(functionSearchType[OUTPUT_DATA],lowercasePaths,),]}else{output=this.buildItemSearchTypeAll(functionSearchType[OUTPUT_DATA],lowercasePaths,)}}else{output=[]}const where_clause=[];const l=functionSearchType.length;for(let i=2;inoop);let descShard={crate,shard:0,start:0,len:itemDescShardDecoder.next(),promise:null,resolve:null,};const descShardList=[descShard];this.searchIndexDeprecated.set(crate,new RoaringBitmap(crateCorpus.c));this.searchIndexEmptyDesc.set(crate,new RoaringBitmap(crateCorpus.e));let descIndex=0;const crateRow={crate,ty:3,name:crate,path:"",descShard,descIndex,exactPath:"",desc:crateCorpus.doc,parent:undefined,type:null,id,word:crate,normalizedName:crate.indexOf("_")===-1?crate:crate.replace(/_/g,""),bitIndex:0,implDisambiguator:null,};id+=1;searchIndex.push(crateRow);currentIndex+=1;if(!this.searchIndexEmptyDesc.get(crate).contains(0)){descIndex+=1}const itemTypes=crateCorpus.t;const itemNames=crateCorpus.n;const itemPaths=new Map(crateCorpus.q);const itemReexports=new Map(crateCorpus.r);const itemParentIdxDecoder=new VlqHexDecoder(crateCorpus.i,noop=>noop);const implDisambiguator=new Map(crateCorpus.b);const paths=crateCorpus.p;const aliases=crateCorpus.a;const lowercasePaths=[];const itemFunctionDecoder=new VlqHexDecoder(crateCorpus.f,buildFunctionSearchTypeCallback(lowercasePaths),);let len=paths.length;let lastPath=itemPaths.get(0);for(let i=0;i2){path=itemPaths.has(elem[2])?itemPaths.get(elem[2]):lastPath;lastPath=path}const exactPath=elem.length>3?itemPaths.get(elem[3]):path;lowercasePaths.push({ty,name:name.toLowerCase(),path,exactPath});paths[i]={ty,name,path,exactPath}}lastPath="";len=itemTypes.length;let lastName="";let lastWord="";for(let i=0;i=descShard.len&&!this.searchIndexEmptyDesc.get(crate).contains(bitIndex)){descShard={crate,shard:descShard.shard+1,start:descShard.start+descShard.len,len:itemDescShardDecoder.next(),promise:null,resolve:null,};descIndex=0;descShardList.push(descShard)}const name=itemNames[i]===""?lastName:itemNames[i];const word=itemNames[i]===""?lastWord:itemNames[i].toLowerCase();const path=itemPaths.has(i)?itemPaths.get(i):lastPath;const type=itemFunctionDecoder.next();if(type!==null){if(type){const fp=this.functionTypeFingerprint.subarray(id*4,(id+1)*4);const fps=new Set();for(const t of type.inputs){this.buildFunctionTypeFingerprint(t,fp,fps)}for(const t of type.output){this.buildFunctionTypeFingerprint(t,fp,fps)}for(const w of type.where_clause){for(const t of w){this.buildFunctionTypeFingerprint(t,fp,fps)}}}}const itemParentIdx=itemParentIdxDecoder.next();const row={crate,ty:itemTypes.charCodeAt(i)-65,name,path,descShard,descIndex,exactPath:itemReexports.has(i)?itemPaths.get(itemReexports.get(i)):path,parent:itemParentIdx>0?paths[itemParentIdx-1]:undefined,type,id,word,normalizedName:word.indexOf("_")===-1?word:word.replace(/_/g,""),bitIndex,implDisambiguator:implDisambiguator.has(i)?implDisambiguator.get(i):null,};id+=1;searchIndex.push(row);lastPath=row.path;if(!this.searchIndexEmptyDesc.get(crate).contains(bitIndex)){descIndex+=1}lastName=name;lastWord=word}if(aliases){const currentCrateAliases=new Map();this.ALIASES.set(crate,currentCrateAliases);for(const alias_name in aliases){if(!Object.prototype.hasOwnProperty.call(aliases,alias_name)){continue}let currentNameAliases;if(currentCrateAliases.has(alias_name)){currentNameAliases=currentCrateAliases.get(alias_name)}else{currentNameAliases=[];currentCrateAliases.set(alias_name,currentNameAliases)}for(const local_alias of aliases[alias_name]){currentNameAliases.push(local_alias+currentIndex)}}}currentIndex+=itemTypes.length;this.searchState.descShards.set(crate,descShardList)}this.TYPES_POOL=new Map();return searchIndex}static parseQuery(userQuery){function itemTypeFromName(typename){const index=itemTypes.findIndex(i=>i===typename);if(index<0){throw["Unknown type filter ",typename]}return index}function convertTypeFilterOnElem(elem){if(elem.typeFilter!==null){let typeFilter=elem.typeFilter;if(typeFilter==="const"){typeFilter="constant"}elem.typeFilter=itemTypeFromName(typeFilter)}else{elem.typeFilter=NO_TYPE_FILTER}for(const elem2 of elem.generics){convertTypeFilterOnElem(elem2)}for(const constraints of elem.bindings.values()){for(const constraint of constraints){convertTypeFilterOnElem(constraint)}}}function newParsedQuery(userQuery){return{original:userQuery,userQuery:userQuery.toLowerCase(),elems:[],returned:[],foundElems:0,totalElems:0,literalSearch:false,error:null,correction:null,proposeCorrectionFrom:null,proposeCorrectionTo:null,typeFingerprint:new Uint32Array(4),}}function parseInput(query,parserState){let foundStopChar=true;while(parserState.pos"){if(isReturnArrow(parserState)){break}throw["Unexpected ",c," (did you mean ","->","?)"]}else if(parserState.pos>0){throw["Unexpected ",c," after ",parserState.userQuery[parserState.pos-1]]}throw["Unexpected ",c]}else if(c===" "){skipWhitespace(parserState);continue}if(!foundStopChar){let extra="";if(isLastElemGeneric(query.elems,parserState)){extra=[" after ",">"]}else if(prevIs(parserState,"\"")){throw["Cannot have more than one element if you use quotes"]}if(parserState.typeFilter!==null){throw["Expected ",","," or ","->",...extra,", found ",c,]}throw["Expected ",",",", ",":"," or ","->",...extra,", found ",c,]}const before=query.elems.length;getFilteredNextElem(query,parserState,query.elems,false);if(query.elems.length===before){parserState.pos+=1}foundStopChar=false}if(parserState.typeFilter!==null){throw["Unexpected ",":"," (expected path after type filter ",parserState.typeFilter+":",")",]}while(parserState.pos"]}break}else{parserState.pos+=1}}}userQuery=userQuery.trim().replace(/\r|\n|\t/g," ");const parserState={length:userQuery.length,pos:0,totalElems:0,genericsElems:0,typeFilter:null,isInBinding:null,userQuery:userQuery.toLowerCase(),};let query=newParsedQuery(userQuery);try{parseInput(query,parserState);for(const elem of query.elems){convertTypeFilterOnElem(elem)}for(const elem of query.returned){convertTypeFilterOnElem(elem)}}catch(err){query=newParsedQuery(userQuery);query.error=err;return query}if(!query.literalSearch){query.literalSearch=parserState.totalElems>1}query.foundElems=query.elems.length+query.returned.length;query.totalElems=parserState.totalElems;return query}async execQuery(parsedQuery,filterCrates,currentCrate){const results_others=new Map(),results_in_args=new Map(),results_returned=new Map();function createQueryResults(results_in_args,results_returned,results_others,parsedQuery){return{"in_args":results_in_args,"returned":results_returned,"others":results_others,"query":parsedQuery,}}const buildHrefAndPath=item=>{let displayPath;let href;const type=itemTypes[item.ty];const name=item.name;let path=item.path;let exactPath=item.exactPath;if(type==="mod"){displayPath=path+"::";href=this.rootPath+path.replace(/::/g,"/")+"/"+name+"/index.html"}else if(type==="import"){displayPath=item.path+"::";href=this.rootPath+item.path.replace(/::/g,"/")+"/index.html#reexport."+name}else if(type==="primitive"||type==="keyword"){displayPath="";href=this.rootPath+path.replace(/::/g,"/")+"/"+type+"."+name+".html"}else if(type==="externcrate"){displayPath="";href=this.rootPath+name+"/index.html"}else if(item.parent!==undefined){const myparent=item.parent;let anchor=type+"."+name;const parentType=itemTypes[myparent.ty];let pageType=parentType;let pageName=myparent.name;exactPath=`${myparent.exactPath}::${myparent.name}`;if(parentType==="primitive"){displayPath=myparent.name+"::"}else if(type==="structfield"&&parentType==="variant"){const enumNameIdx=item.path.lastIndexOf("::");const enumName=item.path.substr(enumNameIdx+2);path=item.path.substr(0,enumNameIdx);displayPath=path+"::"+enumName+"::"+myparent.name+"::";anchor="variant."+myparent.name+".field."+name;pageType="enum";pageName=enumName}else{displayPath=path+"::"+myparent.name+"::"}if(item.implDisambiguator!==null){anchor=item.implDisambiguator+"/"+anchor}href=this.rootPath+path.replace(/::/g,"/")+"/"+pageType+"."+pageName+".html#"+anchor}else{displayPath=item.path+"::";href=this.rootPath+item.path.replace(/::/g,"/")+"/"+type+"."+name+".html"}return[displayPath,href,`${exactPath}::${name}`]};function pathSplitter(path){const tmp=""+path.replace(/::/g,"::");if(tmp.endsWith("")){return tmp.slice(0,tmp.length-6)}return tmp}const transformResults=results=>{const duplicates=new Set();const out=[];for(const result of results){if(result.id!==-1){const obj=this.searchIndex[result.id];obj.dist=result.dist;const res=buildHrefAndPath(obj);obj.displayPath=pathSplitter(res[0]);obj.fullPath=res[2]+"|"+obj.ty;if(duplicates.has(obj.fullPath)){continue}if(obj.ty===TY_IMPORT&&duplicates.has(res[2])){continue}if(duplicates.has(res[2]+"|"+TY_IMPORT)){continue}duplicates.add(obj.fullPath);duplicates.add(res[2]);obj.href=res[1];out.push(obj);if(out.length>=MAX_RESULTS){break}}}return out};const sortResults=async(results,isType,preferredCrate)=>{const userQuery=parsedQuery.userQuery;const casedUserQuery=parsedQuery.original;const result_list=[];for(const result of results.values()){result.item=this.searchIndex[result.id];result.word=this.searchIndex[result.id].word;result_list.push(result)}result_list.sort((aaa,bbb)=>{let a,b;a=(aaa.item.name!==casedUserQuery);b=(bbb.item.name!==casedUserQuery);if(a!==b){return a-b}a=(aaa.word!==userQuery);b=(bbb.word!==userQuery);if(a!==b){return a-b}a=(aaa.index<0);b=(bbb.index<0);if(a!==b){return a-b}a=aaa.path_dist;b=bbb.path_dist;if(a!==b){return a-b}a=aaa.index;b=bbb.index;if(a!==b){return a-b}a=(aaa.dist);b=(bbb.dist);if(a!==b){return a-b}a=this.searchIndexDeprecated.get(aaa.item.crate).contains(aaa.item.bitIndex);b=this.searchIndexDeprecated.get(bbb.item.crate).contains(bbb.item.bitIndex);if(a!==b){return a-b}a=(aaa.item.crate!==preferredCrate);b=(bbb.item.crate!==preferredCrate);if(a!==b){return a-b}a=aaa.word.length;b=bbb.word.length;if(a!==b){return a-b}a=aaa.word;b=bbb.word;if(a!==b){return(a>b?+1:-1)}a=this.searchIndexEmptyDesc.get(aaa.item.crate).contains(aaa.item.bitIndex);b=this.searchIndexEmptyDesc.get(bbb.item.crate).contains(bbb.item.bitIndex);if(a!==b){return a-b}a=aaa.item.ty;b=bbb.item.ty;if(a!==b){return a-b}a=aaa.item.path;b=bbb.item.path;if(a!==b){return(a>b?+1:-1)}return 0});return transformResults(result_list)};function unifyFunctionTypes(fnTypesIn,queryElems,whereClause,mgensIn,solutionCb,unboxingDepth,){if(unboxingDepth>=UNBOXING_LIMIT){return false}const mgens=mgensIn===null?null:new Map(mgensIn);if(queryElems.length===0){return!solutionCb||solutionCb(mgens)}if(!fnTypesIn||fnTypesIn.length===0){return false}const ql=queryElems.length;const fl=fnTypesIn.length;if(ql===1&&queryElems[0].generics.length===0&&queryElems[0].bindings.size===0){const queryElem=queryElems[0];for(const fnType of fnTypesIn){if(!unifyFunctionTypeIsMatchCandidate(fnType,queryElem,mgens)){continue}if(fnType.id<0&&queryElem.id<0){if(mgens&&mgens.has(fnType.id)&&mgens.get(fnType.id)!==queryElem.id){continue}const mgensScratch=new Map(mgens);mgensScratch.set(fnType.id,queryElem.id);if(!solutionCb||solutionCb(mgensScratch)){return true}}else if(!solutionCb||solutionCb(mgens?new Map(mgens):null)){return true}}for(const fnType of fnTypesIn){if(!unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens,unboxingDepth+1,)){continue}if(fnType.id<0){if(mgens&&mgens.has(fnType.id)&&mgens.get(fnType.id)!==0){continue}const mgensScratch=new Map(mgens);mgensScratch.set(fnType.id,0);if(unifyFunctionTypes(whereClause[(-fnType.id)-1],queryElems,whereClause,mgensScratch,solutionCb,unboxingDepth+1,)){return true}}else if(unifyFunctionTypes([...fnType.generics,...Array.from(fnType.bindings.values()).flat()],queryElems,whereClause,mgens?new Map(mgens):null,solutionCb,unboxingDepth+1,)){return true}}return false}const fnTypes=fnTypesIn.slice();const flast=fl-1;const qlast=ql-1;const queryElem=queryElems[qlast];let queryElemsTmp=null;for(let i=flast;i>=0;i-=1){const fnType=fnTypes[i];if(!unifyFunctionTypeIsMatchCandidate(fnType,queryElem,mgens)){continue}let mgensScratch;if(fnType.id<0){mgensScratch=new Map(mgens);if(mgensScratch.has(fnType.id)&&mgensScratch.get(fnType.id)!==queryElem.id){continue}mgensScratch.set(fnType.id,queryElem.id)}else{mgensScratch=mgens}fnTypes[i]=fnTypes[flast];fnTypes.length=flast;if(!queryElemsTmp){queryElemsTmp=queryElems.slice(0,qlast)}const passesUnification=unifyFunctionTypes(fnTypes,queryElemsTmp,whereClause,mgensScratch,mgensScratch=>{if(fnType.generics.length===0&&queryElem.generics.length===0&&fnType.bindings.size===0&&queryElem.bindings.size===0){return!solutionCb||solutionCb(mgensScratch)}const solution=unifyFunctionTypeCheckBindings(fnType,queryElem,whereClause,mgensScratch,unboxingDepth,);if(!solution){return false}const simplifiedGenerics=solution.simplifiedGenerics;for(const simplifiedMgens of solution.mgens){const passesUnification=unifyFunctionTypes(simplifiedGenerics,queryElem.generics,whereClause,simplifiedMgens,solutionCb,unboxingDepth,);if(passesUnification){return true}}return false},unboxingDepth,);if(passesUnification){return true}fnTypes[flast]=fnTypes[i];fnTypes[i]=fnType;fnTypes.length=fl}for(let i=flast;i>=0;i-=1){const fnType=fnTypes[i];if(!unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens,unboxingDepth+1,)){continue}let mgensScratch;if(fnType.id<0){mgensScratch=new Map(mgens);if(mgensScratch.has(fnType.id)&&mgensScratch.get(fnType.id)!==0){continue}mgensScratch.set(fnType.id,0)}else{mgensScratch=mgens}const generics=fnType.id<0?whereClause[(-fnType.id)-1]:fnType.generics;const bindings=fnType.bindings?Array.from(fnType.bindings.values()).flat():[];const passesUnification=unifyFunctionTypes(fnTypes.toSpliced(i,1,...generics,...bindings),queryElems,whereClause,mgensScratch,solutionCb,unboxingDepth+1,);if(passesUnification){return true}}return false}const unifyFunctionTypeIsMatchCandidate=(fnType,queryElem,mgensIn)=>{if(!typePassesFilter(queryElem.typeFilter,fnType.ty)){return false}if(fnType.id<0&&queryElem.id<0){if(mgensIn){if(mgensIn.has(fnType.id)&&mgensIn.get(fnType.id)!==queryElem.id){return false}for(const[fid,qid]of mgensIn.entries()){if(fnType.id!==fid&&queryElem.id===qid){return false}if(fnType.id===fid&&queryElem.id!==qid){return false}}}return true}else{if(queryElem.id===this.typeNameIdOfArrayOrSlice&&(fnType.id===this.typeNameIdOfSlice||fnType.id===this.typeNameIdOfArray)){}else if(queryElem.id===this.typeNameIdOfTupleOrUnit&&(fnType.id===this.typeNameIdOfTuple||fnType.id===this.typeNameIdOfUnit)){}else if(queryElem.id===this.typeNameIdOfHof&&(fnType.id===this.typeNameIdOfFn||fnType.id===this.typeNameIdOfFnMut||fnType.id===this.typeNameIdOfFnOnce)){}else if(fnType.id!==queryElem.id||queryElem.id===null){return false}if((fnType.generics.length+fnType.bindings.size)===0&&queryElem.generics.length!==0){return false}if(fnType.bindings.size0){const fnTypePath=fnType.path!==undefined&&fnType.path!==null?fnType.path.split("::"):[];if(queryElemPathLength>fnTypePath.length){return false}let i=0;for(const path of fnTypePath){if(path===queryElem.pathWithoutLast[i]){i+=1;if(i>=queryElemPathLength){break}}}if(i0){let mgensSolutionSet=[mgensIn];for(const[name,constraints]of queryElem.bindings.entries()){if(mgensSolutionSet.length===0){return false}if(!fnType.bindings.has(name)){return false}const fnTypeBindings=fnType.bindings.get(name);mgensSolutionSet=mgensSolutionSet.flatMap(mgens=>{const newSolutions=[];unifyFunctionTypes(fnTypeBindings,constraints,whereClause,mgens,newMgens=>{newSolutions.push(newMgens);return false},unboxingDepth,);return newSolutions})}if(mgensSolutionSet.length===0){return false}const binds=Array.from(fnType.bindings.entries()).flatMap(entry=>{const[name,constraints]=entry;if(queryElem.bindings.has(name)){return[]}else{return constraints}});if(simplifiedGenerics.length>0){simplifiedGenerics=[...simplifiedGenerics,...binds]}else{simplifiedGenerics=binds}return{simplifiedGenerics,mgens:mgensSolutionSet}}return{simplifiedGenerics,mgens:[mgensIn]}}function unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens,unboxingDepth,){if(unboxingDepth>=UNBOXING_LIMIT){return false}if(fnType.id<0&&queryElem.id>=0){if(!whereClause){return false}if(mgens&&mgens.has(fnType.id)&&mgens.get(fnType.id)!==0){return false}const mgensTmp=new Map(mgens);mgensTmp.set(fnType.id,null);return checkIfInList(whereClause[(-fnType.id)-1],queryElem,whereClause,mgensTmp,unboxingDepth,)}else if(fnType.generics.length>0||fnType.bindings.size>0){const simplifiedGenerics=[...fnType.generics,...Array.from(fnType.bindings.values()).flat(),];return checkIfInList(simplifiedGenerics,queryElem,whereClause,mgens,unboxingDepth,)}return false}function checkIfInList(list,elem,whereClause,mgens,unboxingDepth){for(const entry of list){if(checkType(entry,elem,whereClause,mgens,unboxingDepth)){return true}}return false}const checkType=(row,elem,whereClause,mgens,unboxingDepth)=>{if(unboxingDepth>=UNBOXING_LIMIT){return false}if(row.bindings.size===0&&elem.bindings.size===0){if(elem.id<0&&mgens===null){return row.id<0||checkIfInList(row.generics,elem,whereClause,mgens,unboxingDepth+1,)}if(row.id>0&&elem.id>0&&elem.pathWithoutLast.length===0&&typePassesFilter(elem.typeFilter,row.ty)&&elem.generics.length===0&&elem.id!==this.typeNameIdOfArrayOrSlice&&elem.id!==this.typeNameIdOfTupleOrUnit&&elem.id!==this.typeNameIdOfHof){return row.id===elem.id||checkIfInList(row.generics,elem,whereClause,mgens,unboxingDepth,)}}return unifyFunctionTypes([row],[elem],whereClause,mgens,null,unboxingDepth)};function checkPath(contains,ty){if(contains.length===0){return 0}const maxPathEditDistance=Math.floor(contains.reduce((acc,next)=>acc+next.length,0)/3,);let ret_dist=maxPathEditDistance+1;const path=ty.path.split("::");if(ty.parent&&ty.parent.name){path.push(ty.parent.name.toLowerCase())}const length=path.length;const clength=contains.length;pathiter:for(let i=length-clength;i>=0;i-=1){let dist_total=0;for(let x=0;xmaxPathEditDistance){continue pathiter}dist_total+=dist}}ret_dist=Math.min(ret_dist,Math.round(dist_total/clength))}return ret_dist>maxPathEditDistance?null:ret_dist}function typePassesFilter(filter,type){if(filter<=NO_TYPE_FILTER||filter===type)return true;const name=itemTypes[type];switch(itemTypes[filter]){case"constant":return name==="associatedconstant";case"fn":return name==="method"||name==="tymethod";case"type":return name==="primitive"||name==="associatedtype";case"trait":return name==="traitalias"}return false}function createAliasFromItem(item){return{crate:item.crate,name:item.name,path:item.path,descShard:item.descShard,descIndex:item.descIndex,exactPath:item.exactPath,ty:item.ty,parent:item.parent,type:item.type,is_alias:true,bitIndex:item.bitIndex,implDisambiguator:item.implDisambiguator,}}const handleAliases=async(ret,query,filterCrates,currentCrate)=>{const lowerQuery=query.toLowerCase();const aliases=[];const crateAliases=[];if(filterCrates!==null){if(this.ALIASES.has(filterCrates)&&this.ALIASES.get(filterCrates).has(lowerQuery)){const query_aliases=this.ALIASES.get(filterCrates).get(lowerQuery);for(const alias of query_aliases){aliases.push(createAliasFromItem(this.searchIndex[alias]))}}}else{for(const[crate,crateAliasesIndex]of this.ALIASES){if(crateAliasesIndex.has(lowerQuery)){const pushTo=crate===currentCrate?crateAliases:aliases;const query_aliases=crateAliasesIndex.get(lowerQuery);for(const alias of query_aliases){pushTo.push(createAliasFromItem(this.searchIndex[alias]))}}}}const sortFunc=(aaa,bbb)=>{if(aaa.path{return this.searchIndexEmptyDesc.get(alias.crate).contains(alias.bitIndex)?"":this.searchState.loadDesc(alias)};const[crateDescs,descs]=await Promise.all([Promise.all(crateAliases.map(fetchDesc)),Promise.all(aliases.map(fetchDesc)),]);const pushFunc=alias=>{alias.alias=query;const res=buildHrefAndPath(alias);alias.displayPath=pathSplitter(res[0]);alias.fullPath=alias.displayPath+alias.name;alias.href=res[1];ret.others.unshift(alias);if(ret.others.length>MAX_RESULTS){ret.others.pop()}};aliases.forEach((alias,i)=>{alias.desc=descs[i]});aliases.forEach(pushFunc);crateAliases.forEach((alias,i)=>{alias.desc=crateDescs[i]});crateAliases.forEach(pushFunc)};function addIntoResults(results,fullId,id,index,dist,path_dist,maxEditDistance){if(dist<=maxEditDistance||index!==-1){if(results.has(fullId)){const result=results.get(fullId);if(result.dontValidate||result.dist<=dist){return}}results.set(fullId,{id:id,index:index,dontValidate:parsedQuery.literalSearch,dist:dist,path_dist:path_dist,})}}function handleSingleArg(row,pos,elem,results_others,results_in_args,results_returned,maxEditDistance,){if(!row||(filterCrates!==null&&row.crate!==filterCrates)){return}let path_dist=0;const fullId=row.id;const tfpDist=compareTypeFingerprints(fullId,parsedQuery.typeFingerprint,);if(tfpDist!==null){const in_args=row.type&&row.type.inputs&&checkIfInList(row.type.inputs,elem,row.type.where_clause,null,0);const returned=row.type&&row.type.output&&checkIfInList(row.type.output,elem,row.type.where_clause,null,0);if(in_args){results_in_args.max_dist=Math.max(results_in_args.max_dist||0,tfpDist);const maxDist=results_in_args.sizenormalizedIndex&&normalizedIndex!==-1)){index=normalizedIndex}if(elem.fullPath.length>1){path_dist=checkPath(elem.pathWithoutLast,row);if(path_dist===null){return}}if(parsedQuery.literalSearch){if(row.word===elem.pathLast){addIntoResults(results_others,fullId,pos,index,0,path_dist)}return}const dist=editDistance(row.normalizedName,elem.normalizedPathLast,maxEditDistance);if(index===-1&&dist>maxEditDistance){return}addIntoResults(results_others,fullId,pos,index,dist,path_dist,maxEditDistance)}function handleArgs(row,pos,results){if(!row||(filterCrates!==null&&row.crate!==filterCrates)||!row.type){return}const tfpDist=compareTypeFingerprints(row.id,parsedQuery.typeFingerprint,);if(tfpDist===null){return}if(results.size>=MAX_RESULTS&&tfpDist>results.max_dist){return}if(!unifyFunctionTypes(row.type.inputs,parsedQuery.elems,row.type.where_clause,null,mgens=>{return unifyFunctionTypes(row.type.output,parsedQuery.returned,row.type.where_clause,mgens,null,0,)},0,)){return}results.max_dist=Math.max(results.max_dist||0,tfpDist);addIntoResults(results,row.id,pos,0,tfpDist,0,Number.MAX_VALUE)}const compareTypeFingerprints=(fullId,queryFingerprint)=>{const fh0=this.functionTypeFingerprint[fullId*4];const fh1=this.functionTypeFingerprint[(fullId*4)+1];const fh2=this.functionTypeFingerprint[(fullId*4)+2];const[qh0,qh1,qh2]=queryFingerprint;const[in0,in1,in2]=[fh0&qh0,fh1&qh1,fh2&qh2];if((in0 ^ qh0)||(in1 ^ qh1)||(in2 ^ qh2)){return null}return this.functionTypeFingerprint[(fullId*4)+3]};const innerRunQuery=()=>{const queryLen=parsedQuery.elems.reduce((acc,next)=>acc+next.pathLast.length,0)+parsedQuery.returned.reduce((acc,next)=>acc+next.pathLast.length,0);const maxEditDistance=Math.floor(queryLen/3);const genericSymbols=new Map();const convertNameToId=(elem,isAssocType)=>{const loweredName=elem.pathLast.toLowerCase();if(this.typeNameIdMap.has(loweredName)&&(isAssocType||!this.typeNameIdMap.get(loweredName).assocOnly)){elem.id=this.typeNameIdMap.get(loweredName).id}else if(!parsedQuery.literalSearch){let match=null;let matchDist=maxEditDistance+1;let matchName="";for(const[name,{id,assocOnly}]of this.typeNameIdMap){const dist=Math.min(editDistance(name,loweredName,maxEditDistance),editDistance(name,elem.normalizedPathLast,maxEditDistance),);if(dist<=matchDist&&dist<=maxEditDistance&&(isAssocType||!assocOnly)){if(dist===matchDist&&matchName>name){continue}match=id;matchDist=dist;matchName=name}}if(match!==null){parsedQuery.correction=matchName}elem.id=match}if((elem.id===null&&parsedQuery.totalElems>1&&elem.typeFilter===-1&&elem.generics.length===0&&elem.bindings.size===0)||elem.typeFilter===TY_GENERIC){if(genericSymbols.has(elem.name)){elem.id=genericSymbols.get(elem.name)}else{elem.id=-(genericSymbols.size+1);genericSymbols.set(elem.name,elem.id)}if(elem.typeFilter===-1&&elem.name.length>=3){const maxPartDistance=Math.floor(elem.name.length/3);let matchDist=maxPartDistance+1;let matchName="";for(const name of this.typeNameIdMap.keys()){const dist=editDistance(name,elem.name,maxPartDistance);if(dist<=matchDist&&dist<=maxPartDistance){if(dist===matchDist&&matchName>name){continue}matchDist=dist;matchName=name}}if(matchName!==""){parsedQuery.proposeCorrectionFrom=elem.name;parsedQuery.proposeCorrectionTo=matchName}}elem.typeFilter=TY_GENERIC}if(elem.generics.length>0&&elem.typeFilter===TY_GENERIC){parsedQuery.error=["Generic type parameter ",elem.name," does not accept generic parameters",]}for(const elem2 of elem.generics){convertNameToId(elem2)}elem.bindings=new Map(Array.from(elem.bindings.entries()).map(entry=>{const[name,constraints]=entry;if(!this.typeNameIdMap.has(name)){parsedQuery.error=["Type parameter ",name," does not exist",];return[null,[]]}for(const elem2 of constraints){convertNameToId(elem2)}return[this.typeNameIdMap.get(name).id,constraints]}),)};const fps=new Set();for(const elem of parsedQuery.elems){convertNameToId(elem);this.buildFunctionTypeFingerprint(elem,parsedQuery.typeFingerprint,fps)}for(const elem of parsedQuery.returned){convertNameToId(elem);this.buildFunctionTypeFingerprint(elem,parsedQuery.typeFingerprint,fps)}if(parsedQuery.foundElems===1&&parsedQuery.returned.length===0){if(parsedQuery.elems.length===1){const elem=parsedQuery.elems[0];const length=this.searchIndex.length;for(let i=0,nSearchIndex=length;i0){const sortQ=(a,b)=>{const ag=a.generics.length===0&&a.bindings.size===0;const bg=b.generics.length===0&&b.bindings.size===0;if(ag!==bg){return ag-bg}const ai=a.id>0;const bi=b.id>0;return ai-bi};parsedQuery.elems.sort(sortQ);parsedQuery.returned.sort(sortQ);for(let i=0,nSearchIndex=this.searchIndex.length;i{const descs=await Promise.all(list.map(result=>{return this.searchIndexEmptyDesc.get(result.crate).contains(result.bitIndex)?"":this.searchState.loadDesc(result)}));for(const[i,result]of list.entries()){result.desc=descs[i]}}));if(parsedQuery.error!==null&&ret.others.length!==0){ret.query.error=null}return ret}}let rawSearchIndex;let docSearch;const longItemTypes=["keyword","primitive type","module","extern crate","re-export","struct","enum","function","type alias","static","trait","","trait method","method","struct field","enum variant","macro","assoc type","constant","assoc const","union","foreign type","existential type","attribute macro","derive macro","trait alias",];let currentResults;function printTab(nb){let iter=0;let foundCurrentTab=false;let foundCurrentResultSet=false;onEachLazy(document.getElementById("search-tabs").childNodes,elem=>{if(nb===iter){addClass(elem,"selected");foundCurrentTab=true}else{removeClass(elem,"selected")}iter+=1});const isTypeSearch=(nb>0||iter===1);iter=0;onEachLazy(document.getElementById("results").childNodes,elem=>{if(nb===iter){addClass(elem,"active");foundCurrentResultSet=true}else{removeClass(elem,"active")}iter+=1});if(foundCurrentTab&&foundCurrentResultSet){searchState.currentTab=nb;const correctionsElem=document.getElementsByClassName("search-corrections");if(isTypeSearch){removeClass(correctionsElem[0],"hidden")}else{addClass(correctionsElem[0],"hidden")}}else if(nb!==0){printTab(0)}}function buildUrl(search,filterCrates){let extra="?search="+encodeURIComponent(search);if(filterCrates!==null){extra+="&filter-crate="+encodeURIComponent(filterCrates)}return getNakedUrl()+extra+window.location.hash}function getFilterCrates(){const elem=document.getElementById("crate-search");if(elem&&elem.value!=="all crates"&&window.searchIndex.has(elem.value)){return elem.value}return null}function nextTab(direction){const next=(searchState.currentTab+direction+3)%searchState.focusedByTab.length;searchState.focusedByTab[searchState.currentTab]=document.activeElement;printTab(next);focusSearchResult()}function focusSearchResult(){const target=searchState.focusedByTab[searchState.currentTab]||document.querySelectorAll(".search-results.active a").item(0)||document.querySelectorAll("#search-tabs button").item(searchState.currentTab);searchState.focusedByTab[searchState.currentTab]=null;if(target){target.focus()}}async function addTab(array,query,display){const extraClass=display?" active":"";const output=document.createElement("div");if(array.length>0){output.className="search-results "+extraClass;for(const item of array){const name=item.name;const type=itemTypes[item.ty];const longType=longItemTypes[item.ty];const typeName=longType.length!==0?`${longType}`:"?";const link=document.createElement("a");link.className="result-"+type;link.href=item.href;const resultName=document.createElement("div");resultName.className="result-name";resultName.insertAdjacentHTML("beforeend",`${typeName}`);link.appendChild(resultName);let alias=" ";if(item.is_alias){alias=`
    \ +${item.alias} - see \ +
    `}resultName.insertAdjacentHTML("beforeend",`
    ${alias}\ +${item.displayPath}${name}\ +
    `);const description=document.createElement("div");description.className="desc";description.insertAdjacentHTML("beforeend",item.desc);link.appendChild(description);output.appendChild(link)}}else if(query.error===null){output.className="search-failed"+extraClass;output.innerHTML="No results :(
    "+"Try on DuckDuckGo?

    "+"Or try looking in one of these:"}return[output,array.length]}function makeTabHeader(tabNb,text,nbElems){const fmtNbElems=nbElems<10?`\u{2007}(${nbElems})\u{2007}\u{2007}`:nbElems<100?`\u{2007}(${nbElems})\u{2007}`:`\u{2007}(${nbElems})`;if(searchState.currentTab===tabNb){return""}return""}async function showResults(results,go_to_first,filterCrates){const search=searchState.outputElement();if(go_to_first||(results.others.length===1&&getSettingValue("go-to-only-result")==="true")){window.onunload=()=>{};searchState.removeQueryParameters();const elem=document.createElement("a");elem.href=results.others[0].href;removeClass(elem,"active");document.body.appendChild(elem);elem.click();return}if(results.query===undefined){results.query=DocSearch.parseQuery(searchState.input.value)}currentResults=results.query.userQuery;const[ret_others,ret_in_args,ret_returned]=await Promise.all([addTab(results.others,results.query,true),addTab(results.in_args,results.query,false),addTab(results.returned,results.query,false),]);let currentTab=searchState.currentTab;if((currentTab===0&&ret_others[1]===0)||(currentTab===1&&ret_in_args[1]===0)||(currentTab===2&&ret_returned[1]===0)){if(ret_others[1]!==0){currentTab=0}else if(ret_in_args[1]!==0){currentTab=1}else if(ret_returned[1]!==0){currentTab=2}}let crates="";if(rawSearchIndex.size>1){crates=" in 
    "}let output=`

    Results${crates}

    `;if(results.query.error!==null){const error=results.query.error;error.forEach((value,index)=>{value=value.split("<").join("<").split(">").join(">");if(index%2!==0){error[index]=`${value.replaceAll(" ", " ")}`}else{error[index]=value}});output+=`

    Query parser error: "${error.join("")}".

    `;output+="
    "+makeTabHeader(0,"In Names",ret_others[1])+"
    ";currentTab=0}else if(results.query.foundElems<=1&&results.query.returned.length===0){output+="
    "+makeTabHeader(0,"In Names",ret_others[1])+makeTabHeader(1,"In Parameters",ret_in_args[1])+makeTabHeader(2,"In Return Types",ret_returned[1])+"
    "}else{const signatureTabTitle=results.query.elems.length===0?"In Function Return Types":results.query.returned.length===0?"In Function Parameters":"In Function Signatures";output+="
    "+makeTabHeader(0,signatureTabTitle,ret_others[1])+"
    ";currentTab=0}if(results.query.correction!==null){const orig=results.query.returned.length>0?results.query.returned[0].name:results.query.elems[0].name;output+="

    "+`Type "${orig}" not found. `+"Showing results for closest type name "+`"${results.query.correction}" instead.

    `}if(results.query.proposeCorrectionFrom!==null){const orig=results.query.proposeCorrectionFrom;const targ=results.query.proposeCorrectionTo;output+="

    "+`Type "${orig}" not found and used as generic parameter. `+`Consider searching for "${targ}" instead.

    `}const resultsElem=document.createElement("div");resultsElem.id="results";resultsElem.appendChild(ret_others[0]);resultsElem.appendChild(ret_in_args[0]);resultsElem.appendChild(ret_returned[0]);search.innerHTML=output;const crateSearch=document.getElementById("crate-search");if(crateSearch){crateSearch.addEventListener("input",updateCrate)}search.appendChild(resultsElem);searchState.showResults(search);const elems=document.getElementById("search-tabs").childNodes;searchState.focusedByTab=[];let i=0;for(const elem of elems){const j=i;elem.onclick=()=>printTab(j);searchState.focusedByTab.push(null);i+=1}printTab(currentTab)}function updateSearchHistory(url){if(!browserSupportsHistoryApi()){return}const params=searchState.getQueryStringParams();if(!history.state&&!params.search){history.pushState(null,"",url)}else{history.replaceState(null,"",url)}}async function search(forced){const query=DocSearch.parseQuery(searchState.input.value.trim());let filterCrates=getFilterCrates();if(!forced&&query.userQuery===currentResults){if(query.userQuery.length>0){putBackSearch()}return}searchState.setLoadingSearch();const params=searchState.getQueryStringParams();if(filterCrates===null&¶ms["filter-crate"]!==undefined){filterCrates=params["filter-crate"]}searchState.title="\""+query.original+"\" Search - Rust";updateSearchHistory(buildUrl(query.original,filterCrates));await showResults(await docSearch.execQuery(query,filterCrates,window.currentCrate),params.go_to_first,filterCrates)}function onSearchSubmit(e){e.preventDefault();searchState.clearInputTimeout();search()}function putBackSearch(){const search_input=searchState.input;if(!searchState.input){return}if(search_input.value!==""&&!searchState.isDisplayed()){searchState.showResults();if(browserSupportsHistoryApi()){history.replaceState(null,"",buildUrl(search_input.value,getFilterCrates()))}document.title=searchState.title}}function registerSearchEvents(){const params=searchState.getQueryStringParams();if(searchState.input.value===""){searchState.input.value=params.search||""}const searchAfter500ms=()=>{searchState.clearInputTimeout();if(searchState.input.value.length===0){searchState.hideResults()}else{searchState.timeout=setTimeout(search,500)}};searchState.input.onkeyup=searchAfter500ms;searchState.input.oninput=searchAfter500ms;document.getElementsByClassName("search-form")[0].onsubmit=onSearchSubmit;searchState.input.onchange=e=>{if(e.target!==document.activeElement){return}searchState.clearInputTimeout();setTimeout(search,0)};searchState.input.onpaste=searchState.input.onchange;searchState.outputElement().addEventListener("keydown",e=>{if(e.altKey||e.ctrlKey||e.shiftKey||e.metaKey){return}if(e.which===38){const previous=document.activeElement.previousElementSibling;if(previous){previous.focus()}else{searchState.focus()}e.preventDefault()}else if(e.which===40){const next=document.activeElement.nextElementSibling;if(next){next.focus()}const rect=document.activeElement.getBoundingClientRect();if(window.innerHeight-rect.bottom{if(e.which===40){focusSearchResult();e.preventDefault()}});searchState.input.addEventListener("focus",()=>{putBackSearch()});searchState.input.addEventListener("blur",()=>{searchState.input.placeholder=searchState.input.origPlaceholder});if(browserSupportsHistoryApi()){const previousTitle=document.title;window.addEventListener("popstate",e=>{const params=searchState.getQueryStringParams();document.title=previousTitle;currentResults=null;if(params.search&¶ms.search.length>0){searchState.input.value=params.search;e.preventDefault();search()}else{searchState.input.value="";searchState.hideResults()}})}window.onpageshow=()=>{const qSearch=searchState.getQueryStringParams().search;if(searchState.input.value===""&&qSearch){searchState.input.value=qSearch}search()}}function updateCrate(ev){if(ev.target.value==="all crates"){const query=searchState.input.value.trim();updateSearchHistory(buildUrl(query,null))}currentResults=null;search(true)}function initSearch(searchIndx){rawSearchIndex=searchIndx;if(typeof window!=="undefined"){docSearch=new DocSearch(rawSearchIndex,ROOT_PATH,searchState);registerSearchEvents();if(window.searchState.getQueryStringParams().search){search()}}else if(typeof exports!=="undefined"){docSearch=new DocSearch(rawSearchIndex,ROOT_PATH,searchState);exports.docSearch=docSearch;exports.parseQuery=DocSearch.parseQuery}}if(typeof exports!=="undefined"){exports.initSearch=initSearch}if(typeof window!=="undefined"){window.initSearch=initSearch;if(window.searchIndex!==undefined){initSearch(window.searchIndex)}}else{initSearch(new Map())}})() \ No newline at end of file diff --git a/crates/static.files/search-d234aafac6c221dd.js b/crates/static.files/search-d234aafac6c221dd.js deleted file mode 100644 index 3f587f65..00000000 --- a/crates/static.files/search-d234aafac6c221dd.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";if(!Array.prototype.toSpliced){Array.prototype.toSpliced=function(){const me=this.slice();Array.prototype.splice.apply(me,arguments);return me}}(function(){const itemTypes=["keyword","primitive","mod","externcrate","import","struct","enum","fn","type","static","trait","impl","tymethod","method","structfield","variant","macro","associatedtype","constant","associatedconstant","union","foreigntype","existential","attr","derive","traitalias","generic",];const longItemTypes=["keyword","primitive type","module","extern crate","re-export","struct","enum","function","type alias","static","trait","","trait method","method","struct field","enum variant","macro","assoc type","constant","assoc const","union","foreign type","existential type","attribute macro","derive macro","trait alias",];const TY_GENERIC=itemTypes.indexOf("generic");const TY_IMPORT=itemTypes.indexOf("import");const ROOT_PATH=typeof window!=="undefined"?window.rootPath:"../";const UNBOXING_LIMIT=5;const REGEX_IDENT=/\p{ID_Start}\p{ID_Continue}*|_\p{ID_Continue}+/uy;const REGEX_INVALID_TYPE_FILTER=/[^a-z]/ui;function printTab(nb){let iter=0;let foundCurrentTab=false;let foundCurrentResultSet=false;onEachLazy(document.getElementById("search-tabs").childNodes,elem=>{if(nb===iter){addClass(elem,"selected");foundCurrentTab=true}else{removeClass(elem,"selected")}iter+=1});const isTypeSearch=(nb>0||iter===1);iter=0;onEachLazy(document.getElementById("results").childNodes,elem=>{if(nb===iter){addClass(elem,"active");foundCurrentResultSet=true}else{removeClass(elem,"active")}iter+=1});if(foundCurrentTab&&foundCurrentResultSet){searchState.currentTab=nb;const correctionsElem=document.getElementsByClassName("search-corrections");if(isTypeSearch){removeClass(correctionsElem[0],"hidden")}else{addClass(correctionsElem[0],"hidden")}}else if(nb!==0){printTab(0)}}const editDistanceState={current:[],prev:[],prevPrev:[],calculate:function calculate(a,b,limit){if(a.lengthlimit){return limit+1}while(b.length>0&&b[0]===a[0]){a=a.substring(1);b=b.substring(1)}while(b.length>0&&b[b.length-1]===a[a.length-1]){a=a.substring(0,a.length-1);b=b.substring(0,b.length-1)}if(b.length===0){return minDist}const aLength=a.length;const bLength=b.length;for(let i=0;i<=bLength;++i){this.current[i]=0;this.prev[i]=i;this.prevPrev[i]=Number.MAX_VALUE}for(let i=1;i<=aLength;++i){this.current[0]=i;const aIdx=i-1;for(let j=1;j<=bLength;++j){const bIdx=j-1;const substitutionCost=a[aIdx]===b[bIdx]?0:1;this.current[j]=Math.min(this.prev[j]+1,this.current[j-1]+1,this.prev[j-1]+substitutionCost,);if((i>1)&&(j>1)&&(a[aIdx]===b[bIdx-1])&&(a[aIdx-1]===b[bIdx])){this.current[j]=Math.min(this.current[j],this.prevPrev[j-2]+1,)}}const prevPrevTmp=this.prevPrev;this.prevPrev=this.prev;this.prev=this.current;this.current=prevPrevTmp}const distance=this.prev[bLength];return distance<=limit?distance:(limit+1)},};function editDistance(a,b,limit){return editDistanceState.calculate(a,b,limit)}function initSearch(rawSearchIndex){const MAX_RESULTS=200;const NO_TYPE_FILTER=-1;let searchIndex;let searchIndexDeprecated;let searchIndexEmptyDesc;let functionTypeFingerprint;let currentResults;const typeNameIdMap=new Map();const ALIASES=new Map();const typeNameIdOfArray=buildTypeMapIndex("array");const typeNameIdOfSlice=buildTypeMapIndex("slice");const typeNameIdOfArrayOrSlice=buildTypeMapIndex("[]");const typeNameIdOfTuple=buildTypeMapIndex("tuple");const typeNameIdOfUnit=buildTypeMapIndex("unit");const typeNameIdOfTupleOrUnit=buildTypeMapIndex("()");const typeNameIdOfFn=buildTypeMapIndex("fn");const typeNameIdOfFnMut=buildTypeMapIndex("fnmut");const typeNameIdOfFnOnce=buildTypeMapIndex("fnonce");const typeNameIdOfHof=buildTypeMapIndex("->");function buildTypeMapIndex(name,isAssocType){if(name===""||name===null){return null}if(typeNameIdMap.has(name)){const obj=typeNameIdMap.get(name);obj.assocOnly=isAssocType&&obj.assocOnly;return obj.id}else{const id=typeNameIdMap.size;typeNameIdMap.set(name,{id,assocOnly:isAssocType});return id}}function isSpecialStartCharacter(c){return"<\"".indexOf(c)!==-1}function isEndCharacter(c){return"=,>-])".indexOf(c)!==-1}function itemTypeFromName(typename){const index=itemTypes.findIndex(i=>i===typename);if(index<0){throw["Unknown type filter ",typename]}return index}function getStringElem(query,parserState,isInGenerics){if(isInGenerics){throw["Unexpected ","\""," in generics"]}else if(query.literalSearch){throw["Cannot have more than one literal search element"]}else if(parserState.totalElems-parserState.genericsElems>0){throw["Cannot use literal search when there is more than one element"]}parserState.pos+=1;const start=parserState.pos;const end=getIdentEndPosition(parserState);if(parserState.pos>=parserState.length){throw["Unclosed ","\""]}else if(parserState.userQuery[end]!=="\""){throw["Unexpected ",parserState.userQuery[end]," in a string element"]}else if(start===end){throw["Cannot have empty string element"]}parserState.pos+=1;query.literalSearch=true}function isPathStart(parserState){return parserState.userQuery.slice(parserState.pos,parserState.pos+2)==="::"}function isReturnArrow(parserState){return parserState.userQuery.slice(parserState.pos,parserState.pos+2)==="->"}function consumeIdent(parserState){REGEX_IDENT.lastIndex=parserState.pos;const match=parserState.userQuery.match(REGEX_IDENT);if(match){parserState.pos+=match[0].length;return true}return false}function isSeparatorCharacter(c){return c===","||c==="="}function isPathSeparator(c){return c===":"||c===" "}function prevIs(parserState,lookingFor){let pos=parserState.pos;while(pos>0){const c=parserState.userQuery[pos-1];if(c===lookingFor){return true}else if(c!==" "){break}pos-=1}return false}function isLastElemGeneric(elems,parserState){return(elems.length>0&&elems[elems.length-1].generics.length>0)||prevIs(parserState,">")}function skipWhitespace(parserState){while(parserState.pos0){throw["Cannot have more than one element if you use quotes"]}const typeFilter=parserState.typeFilter;parserState.typeFilter=null;if(name==="!"){if(typeFilter!==null&&typeFilter!=="primitive"){throw["Invalid search type: primitive never type ","!"," and ",typeFilter," both specified",]}if(generics.length!==0){throw["Never type ","!"," does not accept generic parameters",]}const bindingName=parserState.isInBinding;parserState.isInBinding=null;return makePrimitiveElement("never",{bindingName})}const quadcolon=/::\s*::/.exec(path);if(path.startsWith("::")){throw["Paths cannot start with ","::"]}else if(path.endsWith("::")){throw["Paths cannot end with ","::"]}else if(quadcolon!==null){throw["Unexpected ",quadcolon[0]]}const pathSegments=path.split(/(?:::\s*)|(?:\s+(?:::\s*)?)/);if(pathSegments.length===0||(pathSegments.length===1&&pathSegments[0]==="")){if(generics.length>0||prevIs(parserState,">")){throw["Found generics without a path"]}else{throw["Unexpected ",parserState.userQuery[parserState.pos]]}}for(const[i,pathSegment]of pathSegments.entries()){if(pathSegment==="!"){if(i!==0){throw["Never type ","!"," is not associated item"]}pathSegments[i]="never"}}parserState.totalElems+=1;if(isInGenerics){parserState.genericsElems+=1}const bindingName=parserState.isInBinding;parserState.isInBinding=null;const bindings=new Map();const pathLast=pathSegments[pathSegments.length-1];return{name:name.trim(),id:null,fullPath:pathSegments,pathWithoutLast:pathSegments.slice(0,pathSegments.length-1),pathLast,normalizedPathLast:pathLast.replace(/_/g,""),generics:generics.filter(gen=>{if(gen.bindingName!==null){if(gen.name!==null){gen.bindingName.generics.unshift(gen)}bindings.set(gen.bindingName.name,gen.bindingName.generics);return false}return true}),bindings,typeFilter,bindingName,}}function getIdentEndPosition(parserState){let afterIdent=consumeIdent(parserState);let end=parserState.pos;let macroExclamation=-1;while(parserState.pos0){throw["Unexpected ",c," after ",parserState.userQuery[parserState.pos-1]," (not a valid identifier)"]}else{throw["Unexpected ",c," (not a valid identifier)"]}parserState.pos+=1;afterIdent=consumeIdent(parserState);end=parserState.pos}if(macroExclamation!==-1){if(parserState.typeFilter===null){parserState.typeFilter="macro"}else if(parserState.typeFilter!=="macro"){throw["Invalid search type: macro ","!"," and ",parserState.typeFilter," both specified",]}end=macroExclamation}return end}function getFilteredNextElem(query,parserState,elems,isInGenerics){const start=parserState.pos;if(parserState.userQuery[parserState.pos]===":"&&!isPathStart(parserState)){throw["Expected type filter before ",":"]}getNextElem(query,parserState,elems,isInGenerics);if(parserState.userQuery[parserState.pos]===":"&&!isPathStart(parserState)){if(parserState.typeFilter!==null){throw["Unexpected ",":"," (expected path after type filter ",parserState.typeFilter+":",")",]}if(elems.length===0){throw["Expected type filter before ",":"]}else if(query.literalSearch){throw["Cannot use quotes on type filter"]}const typeFilterElem=elems.pop();checkExtraTypeFilterCharacters(start,parserState);parserState.typeFilter=typeFilterElem.name;parserState.pos+=1;parserState.totalElems-=1;query.literalSearch=false;getNextElem(query,parserState,elems,isInGenerics)}}function getNextElem(query,parserState,elems,isInGenerics){const generics=[];skipWhitespace(parserState);let start=parserState.pos;let end;if("[(".indexOf(parserState.userQuery[parserState.pos])!==-1){let endChar=")";let name="()";let friendlyName="tuple";if(parserState.userQuery[parserState.pos]==="["){endChar="]";name="[]";friendlyName="slice"}parserState.pos+=1;const{foundSeparator}=getItemsBefore(query,parserState,generics,endChar);const typeFilter=parserState.typeFilter;const bindingName=parserState.isInBinding;parserState.typeFilter=null;parserState.isInBinding=null;for(const gen of generics){if(gen.bindingName!==null){throw["Type parameter ","=",` cannot be within ${friendlyName} `,name]}}if(name==="()"&&!foundSeparator&&generics.length===1&&typeFilter===null){elems.push(generics[0])}else if(name==="()"&&generics.length===1&&generics[0].name==="->"){generics[0].typeFilter=typeFilter;elems.push(generics[0])}else{if(typeFilter!==null&&typeFilter!=="primitive"){throw["Invalid search type: primitive ",name," and ",typeFilter," both specified",]}parserState.totalElems+=1;if(isInGenerics){parserState.genericsElems+=1}elems.push(makePrimitiveElement(name,{bindingName,generics}))}}else if(parserState.userQuery[parserState.pos]==="&"){if(parserState.typeFilter!==null&&parserState.typeFilter!=="primitive"){throw["Invalid search type: primitive ","&"," and ",parserState.typeFilter," both specified",]}parserState.typeFilter=null;parserState.pos+=1;let c=parserState.userQuery[parserState.pos];while(c===" "&&parserState.pos=end){throw["Found generics without a path"]}parserState.pos+=1;getItemsBefore(query,parserState,generics,">")}else if(parserState.pos=end){throw["Found generics without a path"]}if(parserState.isInBinding){throw["Unexpected ","("," after ","="]}parserState.pos+=1;const typeFilter=parserState.typeFilter;parserState.typeFilter=null;getItemsBefore(query,parserState,generics,")");skipWhitespace(parserState);if(isReturnArrow(parserState)){parserState.pos+=2;skipWhitespace(parserState);getFilteredNextElem(query,parserState,generics,isInGenerics);generics[generics.length-1].bindingName=makePrimitiveElement("output")}else{generics.push(makePrimitiveElement(null,{bindingName:makePrimitiveElement("output"),typeFilter:null,}))}parserState.typeFilter=typeFilter}if(isStringElem){skipWhitespace(parserState)}if(start>=end&&generics.length===0){return}if(parserState.userQuery[parserState.pos]==="="){if(parserState.isInBinding){throw["Cannot write ","="," twice in a binding"]}if(!isInGenerics){throw["Type parameter ","="," must be within generics list"]}const name=parserState.userQuery.slice(start,end).trim();if(name==="!"){throw["Type parameter ","="," key cannot be ","!"," never type"]}if(name.includes("!")){throw["Type parameter ","="," key cannot be ","!"," macro"]}if(name.includes("::")){throw["Type parameter ","="," key cannot contain ","::"," path"]}if(name.includes(":")){throw["Type parameter ","="," key cannot contain ",":"," type"]}parserState.isInBinding={name,generics}}else{elems.push(createQueryElement(query,parserState,parserState.userQuery.slice(start,end),generics,isInGenerics,),)}}}function getItemsBefore(query,parserState,elems,endChar){let foundStopChar=true;let foundSeparator=false;const oldTypeFilter=parserState.typeFilter;parserState.typeFilter=null;const oldIsInBinding=parserState.isInBinding;parserState.isInBinding=null;let hofParameters=null;let extra="";if(endChar===">"){extra="<"}else if(endChar==="]"){extra="["}else if(endChar===")"){extra="("}else if(endChar===""){extra="->"}else{extra=endChar}while(parserState.pos"," after ","="]}hofParameters=[...elems];elems.length=0;parserState.pos+=2;foundStopChar=true;foundSeparator=false;continue}else if(c===" "){parserState.pos+=1;continue}else if(isSeparatorCharacter(c)){parserState.pos+=1;foundStopChar=true;foundSeparator=true;continue}else if(c===":"&&isPathStart(parserState)){throw["Unexpected ","::",": paths cannot start with ","::"]}else if(isEndCharacter(c)){throw["Unexpected ",c," after ",extra]}if(!foundStopChar){let extra=[];if(isLastElemGeneric(query.elems,parserState)){extra=[" after ",">"]}else if(prevIs(parserState,"\"")){throw["Cannot have more than one element if you use quotes"]}if(endChar!==""){throw["Expected ",",",", ","=",", or ",endChar,...extra,", found ",c,]}throw["Expected ",","," or ","=",...extra,", found ",c,]}const posBefore=parserState.pos;getFilteredNextElem(query,parserState,elems,endChar!=="");if(endChar!==""&&parserState.pos>=parserState.length){throw["Unclosed ",extra]}if(posBefore===parserState.pos){parserState.pos+=1}foundStopChar=false}if(parserState.pos>=parserState.length&&endChar!==""){throw["Unclosed ",extra]}parserState.pos+=1;if(hofParameters){foundSeparator=false;if([...elems,...hofParameters].some(x=>x.bindingName)||parserState.isInBinding){throw["Unexpected ","="," within ","->"]}const hofElem=makePrimitiveElement("->",{generics:hofParameters,bindings:new Map([["output",[...elems]]]),typeFilter:null,});elems.length=0;elems[0]=hofElem}parserState.typeFilter=oldTypeFilter;parserState.isInBinding=oldIsInBinding;return{foundSeparator}}function checkExtraTypeFilterCharacters(start,parserState){const query=parserState.userQuery.slice(start,parserState.pos).trim();const match=query.match(REGEX_INVALID_TYPE_FILTER);if(match){throw["Unexpected ",match[0]," in type filter (before ",":",")",]}}function parseInput(query,parserState){let foundStopChar=true;while(parserState.pos"){if(isReturnArrow(parserState)){break}throw["Unexpected ",c," (did you mean ","->","?)"]}else if(parserState.pos>0){throw["Unexpected ",c," after ",parserState.userQuery[parserState.pos-1]]}throw["Unexpected ",c]}else if(c===" "){skipWhitespace(parserState);continue}if(!foundStopChar){let extra="";if(isLastElemGeneric(query.elems,parserState)){extra=[" after ",">"]}else if(prevIs(parserState,"\"")){throw["Cannot have more than one element if you use quotes"]}if(parserState.typeFilter!==null){throw["Expected ",","," or ","->",...extra,", found ",c,]}throw["Expected ",",",", ",":"," or ","->",...extra,", found ",c,]}const before=query.elems.length;getFilteredNextElem(query,parserState,query.elems,false);if(query.elems.length===before){parserState.pos+=1}foundStopChar=false}if(parserState.typeFilter!==null){throw["Unexpected ",":"," (expected path after type filter ",parserState.typeFilter+":",")",]}while(parserState.pos"]}break}else{parserState.pos+=1}}}function newParsedQuery(userQuery){return{original:userQuery,userQuery:userQuery.toLowerCase(),elems:[],returned:[],foundElems:0,totalElems:0,literalSearch:false,error:null,correction:null,proposeCorrectionFrom:null,proposeCorrectionTo:null,typeFingerprint:new Uint32Array(4),}}function buildUrl(search,filterCrates){let extra="?search="+encodeURIComponent(search);if(filterCrates!==null){extra+="&filter-crate="+encodeURIComponent(filterCrates)}return getNakedUrl()+extra+window.location.hash}function getFilterCrates(){const elem=document.getElementById("crate-search");if(elem&&elem.value!=="all crates"&&rawSearchIndex.has(elem.value)){return elem.value}return null}function parseQuery(userQuery){function convertTypeFilterOnElem(elem){if(elem.typeFilter!==null){let typeFilter=elem.typeFilter;if(typeFilter==="const"){typeFilter="constant"}elem.typeFilter=itemTypeFromName(typeFilter)}else{elem.typeFilter=NO_TYPE_FILTER}for(const elem2 of elem.generics){convertTypeFilterOnElem(elem2)}for(const constraints of elem.bindings.values()){for(const constraint of constraints){convertTypeFilterOnElem(constraint)}}}userQuery=userQuery.trim().replace(/\r|\n|\t/g," ");const parserState={length:userQuery.length,pos:0,totalElems:0,genericsElems:0,typeFilter:null,isInBinding:null,userQuery:userQuery.toLowerCase(),};let query=newParsedQuery(userQuery);try{parseInput(query,parserState);for(const elem of query.elems){convertTypeFilterOnElem(elem)}for(const elem of query.returned){convertTypeFilterOnElem(elem)}}catch(err){query=newParsedQuery(userQuery);query.error=err;return query}if(!query.literalSearch){query.literalSearch=parserState.totalElems>1}query.foundElems=query.elems.length+query.returned.length;query.totalElems=parserState.totalElems;return query}function createQueryResults(results_in_args,results_returned,results_others,parsedQuery){return{"in_args":results_in_args,"returned":results_returned,"others":results_others,"query":parsedQuery,}}async function execQuery(parsedQuery,filterCrates,currentCrate){const results_others=new Map(),results_in_args=new Map(),results_returned=new Map();function transformResults(results){const duplicates=new Set();const out=[];for(const result of results){if(result.id!==-1){const obj=searchIndex[result.id];obj.dist=result.dist;const res=buildHrefAndPath(obj);obj.displayPath=pathSplitter(res[0]);obj.fullPath=res[2]+"|"+obj.ty;if(duplicates.has(obj.fullPath)){continue}if(obj.ty===TY_IMPORT&&duplicates.has(res[2])){continue}if(duplicates.has(res[2]+"|"+TY_IMPORT)){continue}duplicates.add(obj.fullPath);duplicates.add(res[2]);obj.href=res[1];out.push(obj);if(out.length>=MAX_RESULTS){break}}}return out}async function sortResults(results,isType,preferredCrate){const userQuery=parsedQuery.userQuery;const result_list=[];for(const result of results.values()){result.item=searchIndex[result.id];result.word=searchIndex[result.id].word;result_list.push(result)}result_list.sort((aaa,bbb)=>{let a,b;a=(aaa.word!==userQuery);b=(bbb.word!==userQuery);if(a!==b){return a-b}a=(aaa.index<0);b=(bbb.index<0);if(a!==b){return a-b}a=aaa.path_dist;b=bbb.path_dist;if(a!==b){return a-b}a=aaa.index;b=bbb.index;if(a!==b){return a-b}a=(aaa.dist);b=(bbb.dist);if(a!==b){return a-b}a=searchIndexDeprecated.get(aaa.item.crate).contains(aaa.item.bitIndex);b=searchIndexDeprecated.get(bbb.item.crate).contains(bbb.item.bitIndex);if(a!==b){return a-b}a=(aaa.item.crate!==preferredCrate);b=(bbb.item.crate!==preferredCrate);if(a!==b){return a-b}a=aaa.word.length;b=bbb.word.length;if(a!==b){return a-b}a=aaa.word;b=bbb.word;if(a!==b){return(a>b?+1:-1)}a=searchIndexEmptyDesc.get(aaa.item.crate).contains(aaa.item.bitIndex);b=searchIndexEmptyDesc.get(bbb.item.crate).contains(bbb.item.bitIndex);if(a!==b){return a-b}a=aaa.item.ty;b=bbb.item.ty;if(a!==b){return a-b}a=aaa.item.path;b=bbb.item.path;if(a!==b){return(a>b?+1:-1)}return 0});return transformResults(result_list)}function unifyFunctionTypes(fnTypesIn,queryElems,whereClause,mgensIn,solutionCb,unboxingDepth,){if(unboxingDepth>=UNBOXING_LIMIT){return false}const mgens=mgensIn===null?null:new Map(mgensIn);if(queryElems.length===0){return!solutionCb||solutionCb(mgens)}if(!fnTypesIn||fnTypesIn.length===0){return false}const ql=queryElems.length;const fl=fnTypesIn.length;if(ql===1&&queryElems[0].generics.length===0&&queryElems[0].bindings.size===0){const queryElem=queryElems[0];for(const fnType of fnTypesIn){if(!unifyFunctionTypeIsMatchCandidate(fnType,queryElem,mgens)){continue}if(fnType.id<0&&queryElem.id<0){if(mgens&&mgens.has(fnType.id)&&mgens.get(fnType.id)!==queryElem.id){continue}const mgensScratch=new Map(mgens);mgensScratch.set(fnType.id,queryElem.id);if(!solutionCb||solutionCb(mgensScratch)){return true}}else if(!solutionCb||solutionCb(mgens?new Map(mgens):null)){return true}}for(const fnType of fnTypesIn){if(!unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens,unboxingDepth+1,)){continue}if(fnType.id<0){if(mgens&&mgens.has(fnType.id)&&mgens.get(fnType.id)!==0){continue}const mgensScratch=new Map(mgens);mgensScratch.set(fnType.id,0);if(unifyFunctionTypes(whereClause[(-fnType.id)-1],queryElems,whereClause,mgensScratch,solutionCb,unboxingDepth+1,)){return true}}else if(unifyFunctionTypes([...fnType.generics,...Array.from(fnType.bindings.values()).flat()],queryElems,whereClause,mgens?new Map(mgens):null,solutionCb,unboxingDepth+1,)){return true}}return false}const fnTypes=fnTypesIn.slice();const flast=fl-1;const qlast=ql-1;const queryElem=queryElems[qlast];let queryElemsTmp=null;for(let i=flast;i>=0;i-=1){const fnType=fnTypes[i];if(!unifyFunctionTypeIsMatchCandidate(fnType,queryElem,mgens)){continue}let mgensScratch;if(fnType.id<0){mgensScratch=new Map(mgens);if(mgensScratch.has(fnType.id)&&mgensScratch.get(fnType.id)!==queryElem.id){continue}mgensScratch.set(fnType.id,queryElem.id)}else{mgensScratch=mgens}fnTypes[i]=fnTypes[flast];fnTypes.length=flast;if(!queryElemsTmp){queryElemsTmp=queryElems.slice(0,qlast)}const passesUnification=unifyFunctionTypes(fnTypes,queryElemsTmp,whereClause,mgensScratch,mgensScratch=>{if(fnType.generics.length===0&&queryElem.generics.length===0&&fnType.bindings.size===0&&queryElem.bindings.size===0){return!solutionCb||solutionCb(mgensScratch)}const solution=unifyFunctionTypeCheckBindings(fnType,queryElem,whereClause,mgensScratch,unboxingDepth,);if(!solution){return false}const simplifiedGenerics=solution.simplifiedGenerics;for(const simplifiedMgens of solution.mgens){const passesUnification=unifyFunctionTypes(simplifiedGenerics,queryElem.generics,whereClause,simplifiedMgens,solutionCb,unboxingDepth,);if(passesUnification){return true}}return false},unboxingDepth,);if(passesUnification){return true}fnTypes[flast]=fnTypes[i];fnTypes[i]=fnType;fnTypes.length=fl}for(let i=flast;i>=0;i-=1){const fnType=fnTypes[i];if(!unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens,unboxingDepth+1,)){continue}let mgensScratch;if(fnType.id<0){mgensScratch=new Map(mgens);if(mgensScratch.has(fnType.id)&&mgensScratch.get(fnType.id)!==0){continue}mgensScratch.set(fnType.id,0)}else{mgensScratch=mgens}const generics=fnType.id<0?whereClause[(-fnType.id)-1]:fnType.generics;const bindings=fnType.bindings?Array.from(fnType.bindings.values()).flat():[];const passesUnification=unifyFunctionTypes(fnTypes.toSpliced(i,1,...generics,...bindings),queryElems,whereClause,mgensScratch,solutionCb,unboxingDepth+1,);if(passesUnification){return true}}return false}function unifyFunctionTypeIsMatchCandidate(fnType,queryElem,mgensIn){if(!typePassesFilter(queryElem.typeFilter,fnType.ty)){return false}if(fnType.id<0&&queryElem.id<0){if(mgensIn){if(mgensIn.has(fnType.id)&&mgensIn.get(fnType.id)!==queryElem.id){return false}for(const[fid,qid]of mgensIn.entries()){if(fnType.id!==fid&&queryElem.id===qid){return false}if(fnType.id===fid&&queryElem.id!==qid){return false}}}return true}else{if(queryElem.id===typeNameIdOfArrayOrSlice&&(fnType.id===typeNameIdOfSlice||fnType.id===typeNameIdOfArray)){}else if(queryElem.id===typeNameIdOfTupleOrUnit&&(fnType.id===typeNameIdOfTuple||fnType.id===typeNameIdOfUnit)){}else if(queryElem.id===typeNameIdOfHof&&(fnType.id===typeNameIdOfFn||fnType.id===typeNameIdOfFnMut||fnType.id===typeNameIdOfFnOnce)){}else if(fnType.id!==queryElem.id||queryElem.id===null){return false}if((fnType.generics.length+fnType.bindings.size)===0&&queryElem.generics.length!==0){return false}if(fnType.bindings.size0){const fnTypePath=fnType.path!==undefined&&fnType.path!==null?fnType.path.split("::"):[];if(queryElemPathLength>fnTypePath.length){return false}let i=0;for(const path of fnTypePath){if(path===queryElem.pathWithoutLast[i]){i+=1;if(i>=queryElemPathLength){break}}}if(i0){let mgensSolutionSet=[mgensIn];for(const[name,constraints]of queryElem.bindings.entries()){if(mgensSolutionSet.length===0){return false}if(!fnType.bindings.has(name)){return false}const fnTypeBindings=fnType.bindings.get(name);mgensSolutionSet=mgensSolutionSet.flatMap(mgens=>{const newSolutions=[];unifyFunctionTypes(fnTypeBindings,constraints,whereClause,mgens,newMgens=>{newSolutions.push(newMgens);return false},unboxingDepth,);return newSolutions})}if(mgensSolutionSet.length===0){return false}const binds=Array.from(fnType.bindings.entries()).flatMap(entry=>{const[name,constraints]=entry;if(queryElem.bindings.has(name)){return[]}else{return constraints}});if(simplifiedGenerics.length>0){simplifiedGenerics=[...simplifiedGenerics,...binds]}else{simplifiedGenerics=binds}return{simplifiedGenerics,mgens:mgensSolutionSet}}return{simplifiedGenerics,mgens:[mgensIn]}}function unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens,unboxingDepth,){if(unboxingDepth>=UNBOXING_LIMIT){return false}if(fnType.id<0&&queryElem.id>=0){if(!whereClause){return false}if(mgens&&mgens.has(fnType.id)&&mgens.get(fnType.id)!==0){return false}const mgensTmp=new Map(mgens);mgensTmp.set(fnType.id,null);return checkIfInList(whereClause[(-fnType.id)-1],queryElem,whereClause,mgensTmp,unboxingDepth,)}else if(fnType.generics.length>0||fnType.bindings.size>0){const simplifiedGenerics=[...fnType.generics,...Array.from(fnType.bindings.values()).flat(),];return checkIfInList(simplifiedGenerics,queryElem,whereClause,mgens,unboxingDepth,)}return false}function checkIfInList(list,elem,whereClause,mgens,unboxingDepth){for(const entry of list){if(checkType(entry,elem,whereClause,mgens,unboxingDepth)){return true}}return false}function checkType(row,elem,whereClause,mgens,unboxingDepth){if(unboxingDepth>=UNBOXING_LIMIT){return false}if(row.bindings.size===0&&elem.bindings.size===0){if(elem.id<0&&mgens===null){return row.id<0||checkIfInList(row.generics,elem,whereClause,mgens,unboxingDepth+1,)}if(row.id>0&&elem.id>0&&elem.pathWithoutLast.length===0&&typePassesFilter(elem.typeFilter,row.ty)&&elem.generics.length===0&&elem.id!==typeNameIdOfArrayOrSlice&&elem.id!==typeNameIdOfTupleOrUnit&&elem.id!==typeNameIdOfHof){return row.id===elem.id||checkIfInList(row.generics,elem,whereClause,mgens,unboxingDepth,)}}return unifyFunctionTypes([row],[elem],whereClause,mgens,null,unboxingDepth)}function checkPath(contains,ty){if(contains.length===0){return 0}const maxPathEditDistance=Math.floor(contains.reduce((acc,next)=>acc+next.length,0)/3,);let ret_dist=maxPathEditDistance+1;const path=ty.path.split("::");if(ty.parent&&ty.parent.name){path.push(ty.parent.name.toLowerCase())}const length=path.length;const clength=contains.length;pathiter:for(let i=length-clength;i>=0;i-=1){let dist_total=0;for(let x=0;xmaxPathEditDistance){continue pathiter}dist_total+=dist}}ret_dist=Math.min(ret_dist,Math.round(dist_total/clength))}return ret_dist>maxPathEditDistance?null:ret_dist}function typePassesFilter(filter,type){if(filter<=NO_TYPE_FILTER||filter===type)return true;const name=itemTypes[type];switch(itemTypes[filter]){case"constant":return name==="associatedconstant";case"fn":return name==="method"||name==="tymethod";case"type":return name==="primitive"||name==="associatedtype";case"trait":return name==="traitalias"}return false}function createAliasFromItem(item){return{crate:item.crate,name:item.name,path:item.path,descShard:item.descShard,descIndex:item.descIndex,exactPath:item.exactPath,ty:item.ty,parent:item.parent,type:item.type,is_alias:true,bitIndex:item.bitIndex,implDisambiguator:item.implDisambiguator,}}async function handleAliases(ret,query,filterCrates,currentCrate){const lowerQuery=query.toLowerCase();const aliases=[];const crateAliases=[];if(filterCrates!==null){if(ALIASES.has(filterCrates)&&ALIASES.get(filterCrates).has(lowerQuery)){const query_aliases=ALIASES.get(filterCrates).get(lowerQuery);for(const alias of query_aliases){aliases.push(createAliasFromItem(searchIndex[alias]))}}}else{for(const[crate,crateAliasesIndex]of ALIASES){if(crateAliasesIndex.has(lowerQuery)){const pushTo=crate===currentCrate?crateAliases:aliases;const query_aliases=crateAliasesIndex.get(lowerQuery);for(const alias of query_aliases){pushTo.push(createAliasFromItem(searchIndex[alias]))}}}}const sortFunc=(aaa,bbb)=>{if(aaa.path{return searchIndexEmptyDesc.get(alias.crate).contains(alias.bitIndex)?"":searchState.loadDesc(alias)};const[crateDescs,descs]=await Promise.all([Promise.all(crateAliases.map(fetchDesc)),Promise.all(aliases.map(fetchDesc)),]);const pushFunc=alias=>{alias.alias=query;const res=buildHrefAndPath(alias);alias.displayPath=pathSplitter(res[0]);alias.fullPath=alias.displayPath+alias.name;alias.href=res[1];ret.others.unshift(alias);if(ret.others.length>MAX_RESULTS){ret.others.pop()}};aliases.forEach((alias,i)=>{alias.desc=descs[i]});aliases.forEach(pushFunc);crateAliases.forEach((alias,i)=>{alias.desc=crateDescs[i]});crateAliases.forEach(pushFunc)}function addIntoResults(results,fullId,id,index,dist,path_dist,maxEditDistance){if(dist<=maxEditDistance||index!==-1){if(results.has(fullId)){const result=results.get(fullId);if(result.dontValidate||result.dist<=dist){return}}results.set(fullId,{id:id,index:index,dontValidate:parsedQuery.literalSearch,dist:dist,path_dist:path_dist,})}}function handleSingleArg(row,pos,elem,results_others,results_in_args,results_returned,maxEditDistance,){if(!row||(filterCrates!==null&&row.crate!==filterCrates)){return}let path_dist=0;const fullId=row.id;const tfpDist=compareTypeFingerprints(fullId,parsedQuery.typeFingerprint,);if(tfpDist!==null){const in_args=row.type&&row.type.inputs&&checkIfInList(row.type.inputs,elem,row.type.where_clause,null,0);const returned=row.type&&row.type.output&&checkIfInList(row.type.output,elem,row.type.where_clause,null,0);if(in_args){results_in_args.max_dist=Math.max(results_in_args.max_dist||0,tfpDist);const maxDist=results_in_args.sizenormalizedIndex&&normalizedIndex!==-1)){index=normalizedIndex}if(elem.fullPath.length>1){path_dist=checkPath(elem.pathWithoutLast,row);if(path_dist===null){return}}if(parsedQuery.literalSearch){if(row.word===elem.pathLast){addIntoResults(results_others,fullId,pos,index,0,path_dist)}return}const dist=editDistance(row.normalizedName,elem.normalizedPathLast,maxEditDistance);if(index===-1&&dist>maxEditDistance){return}addIntoResults(results_others,fullId,pos,index,dist,path_dist,maxEditDistance)}function handleArgs(row,pos,results){if(!row||(filterCrates!==null&&row.crate!==filterCrates)||!row.type){return}const tfpDist=compareTypeFingerprints(row.id,parsedQuery.typeFingerprint,);if(tfpDist===null){return}if(results.size>=MAX_RESULTS&&tfpDist>results.max_dist){return}if(!unifyFunctionTypes(row.type.inputs,parsedQuery.elems,row.type.where_clause,null,mgens=>{return unifyFunctionTypes(row.type.output,parsedQuery.returned,row.type.where_clause,mgens,null,0,)},0,)){return}results.max_dist=Math.max(results.max_dist||0,tfpDist);addIntoResults(results,row.id,pos,0,tfpDist,0,Number.MAX_VALUE)}function innerRunQuery(){const queryLen=parsedQuery.elems.reduce((acc,next)=>acc+next.pathLast.length,0)+parsedQuery.returned.reduce((acc,next)=>acc+next.pathLast.length,0);const maxEditDistance=Math.floor(queryLen/3);const genericSymbols=new Map();function convertNameToId(elem,isAssocType){const loweredName=elem.pathLast.toLowerCase();if(typeNameIdMap.has(loweredName)&&(isAssocType||!typeNameIdMap.get(loweredName).assocOnly)){elem.id=typeNameIdMap.get(loweredName).id}else if(!parsedQuery.literalSearch){let match=null;let matchDist=maxEditDistance+1;let matchName="";for(const[name,{id,assocOnly}]of typeNameIdMap){const dist=Math.min(editDistance(name,loweredName,maxEditDistance),editDistance(name,elem.normalizedPathLast,maxEditDistance),);if(dist<=matchDist&&dist<=maxEditDistance&&(isAssocType||!assocOnly)){if(dist===matchDist&&matchName>name){continue}match=id;matchDist=dist;matchName=name}}if(match!==null){parsedQuery.correction=matchName}elem.id=match}if((elem.id===null&&parsedQuery.totalElems>1&&elem.typeFilter===-1&&elem.generics.length===0&&elem.bindings.size===0)||elem.typeFilter===TY_GENERIC){if(genericSymbols.has(elem.name)){elem.id=genericSymbols.get(elem.name)}else{elem.id=-(genericSymbols.size+1);genericSymbols.set(elem.name,elem.id)}if(elem.typeFilter===-1&&elem.name.length>=3){const maxPartDistance=Math.floor(elem.name.length/3);let matchDist=maxPartDistance+1;let matchName="";for(const name of typeNameIdMap.keys()){const dist=editDistance(name,elem.name,maxPartDistance);if(dist<=matchDist&&dist<=maxPartDistance){if(dist===matchDist&&matchName>name){continue}matchDist=dist;matchName=name}}if(matchName!==""){parsedQuery.proposeCorrectionFrom=elem.name;parsedQuery.proposeCorrectionTo=matchName}}elem.typeFilter=TY_GENERIC}if(elem.generics.length>0&&elem.typeFilter===TY_GENERIC){parsedQuery.error=["Generic type parameter ",elem.name," does not accept generic parameters",]}for(const elem2 of elem.generics){convertNameToId(elem2)}elem.bindings=new Map(Array.from(elem.bindings.entries()).map(entry=>{const[name,constraints]=entry;if(!typeNameIdMap.has(name)){parsedQuery.error=["Type parameter ",name," does not exist",];return[null,[]]}for(const elem2 of constraints){convertNameToId(elem2)}return[typeNameIdMap.get(name).id,constraints]}),)}const fps=new Set();for(const elem of parsedQuery.elems){convertNameToId(elem);buildFunctionTypeFingerprint(elem,parsedQuery.typeFingerprint,fps)}for(const elem of parsedQuery.returned){convertNameToId(elem);buildFunctionTypeFingerprint(elem,parsedQuery.typeFingerprint,fps)}if(parsedQuery.foundElems===1&&parsedQuery.returned.length===0){if(parsedQuery.elems.length===1){const elem=parsedQuery.elems[0];for(let i=0,nSearchIndex=searchIndex.length;i0){const sortQ=(a,b)=>{const ag=a.generics.length===0&&a.bindings.size===0;const bg=b.generics.length===0&&b.bindings.size===0;if(ag!==bg){return ag-bg}const ai=a.id>0;const bi=b.id>0;return ai-bi};parsedQuery.elems.sort(sortQ);parsedQuery.returned.sort(sortQ);for(let i=0,nSearchIndex=searchIndex.length;i{const descs=await Promise.all(list.map(result=>{return searchIndexEmptyDesc.get(result.crate).contains(result.bitIndex)?"":searchState.loadDesc(result)}));for(const[i,result]of list.entries()){result.desc=descs[i]}}));if(parsedQuery.error!==null&&ret.others.length!==0){ret.query.error=null}return ret}function nextTab(direction){const next=(searchState.currentTab+direction+3)%searchState.focusedByTab.length;searchState.focusedByTab[searchState.currentTab]=document.activeElement;printTab(next);focusSearchResult()}function focusSearchResult(){const target=searchState.focusedByTab[searchState.currentTab]||document.querySelectorAll(".search-results.active a").item(0)||document.querySelectorAll("#search-tabs button").item(searchState.currentTab);searchState.focusedByTab[searchState.currentTab]=null;if(target){target.focus()}}function buildHrefAndPath(item){let displayPath;let href;const type=itemTypes[item.ty];const name=item.name;let path=item.path;let exactPath=item.exactPath;if(type==="mod"){displayPath=path+"::";href=ROOT_PATH+path.replace(/::/g,"/")+"/"+name+"/index.html"}else if(type==="import"){displayPath=item.path+"::";href=ROOT_PATH+item.path.replace(/::/g,"/")+"/index.html#reexport."+name}else if(type==="primitive"||type==="keyword"){displayPath="";href=ROOT_PATH+path.replace(/::/g,"/")+"/"+type+"."+name+".html"}else if(type==="externcrate"){displayPath="";href=ROOT_PATH+name+"/index.html"}else if(item.parent!==undefined){const myparent=item.parent;let anchor=type+"."+name;const parentType=itemTypes[myparent.ty];let pageType=parentType;let pageName=myparent.name;exactPath=`${myparent.exactPath}::${myparent.name}`;if(parentType==="primitive"){displayPath=myparent.name+"::"}else if(type==="structfield"&&parentType==="variant"){const enumNameIdx=item.path.lastIndexOf("::");const enumName=item.path.substr(enumNameIdx+2);path=item.path.substr(0,enumNameIdx);displayPath=path+"::"+enumName+"::"+myparent.name+"::";anchor="variant."+myparent.name+".field."+name;pageType="enum";pageName=enumName}else{displayPath=path+"::"+myparent.name+"::"}if(item.implDisambiguator!==null){anchor=item.implDisambiguator+"/"+anchor}href=ROOT_PATH+path.replace(/::/g,"/")+"/"+pageType+"."+pageName+".html#"+anchor}else{displayPath=item.path+"::";href=ROOT_PATH+item.path.replace(/::/g,"/")+"/"+type+"."+name+".html"}return[displayPath,href,`${exactPath}::${name}`]}function pathSplitter(path){const tmp=""+path.replace(/::/g,"::");if(tmp.endsWith("")){return tmp.slice(0,tmp.length-6)}return tmp}async function addTab(array,query,display){const extraClass=display?" active":"";const output=document.createElement("div");if(array.length>0){output.className="search-results "+extraClass;for(const item of array){const name=item.name;const type=itemTypes[item.ty];const longType=longItemTypes[item.ty];const typeName=longType.length!==0?`${longType}`:"?";const link=document.createElement("a");link.className="result-"+type;link.href=item.href;const resultName=document.createElement("div");resultName.className="result-name";resultName.insertAdjacentHTML("beforeend",`${typeName}`);link.appendChild(resultName);let alias=" ";if(item.is_alias){alias=`
    \ -${item.alias} - see \ -
    `}resultName.insertAdjacentHTML("beforeend",`
    ${alias}\ -${item.displayPath}${name}\ -
    `);const description=document.createElement("div");description.className="desc";description.insertAdjacentHTML("beforeend",item.desc);link.appendChild(description);output.appendChild(link)}}else if(query.error===null){output.className="search-failed"+extraClass;output.innerHTML="No results :(
    "+"Try on DuckDuckGo?

    "+"Or try looking in one of these:"}return[output,array.length]}function makeTabHeader(tabNb,text,nbElems){const fmtNbElems=nbElems<10?`\u{2007}(${nbElems})\u{2007}\u{2007}`:nbElems<100?`\u{2007}(${nbElems})\u{2007}`:`\u{2007}(${nbElems})`;if(searchState.currentTab===tabNb){return""}return""}async function showResults(results,go_to_first,filterCrates){const search=searchState.outputElement();if(go_to_first||(results.others.length===1&&getSettingValue("go-to-only-result")==="true")){window.onunload=()=>{};searchState.removeQueryParameters();const elem=document.createElement("a");elem.href=results.others[0].href;removeClass(elem,"active");document.body.appendChild(elem);elem.click();return}if(results.query===undefined){results.query=parseQuery(searchState.input.value)}currentResults=results.query.userQuery;const[ret_others,ret_in_args,ret_returned]=await Promise.all([addTab(results.others,results.query,true),addTab(results.in_args,results.query,false),addTab(results.returned,results.query,false),]);let currentTab=searchState.currentTab;if((currentTab===0&&ret_others[1]===0)||(currentTab===1&&ret_in_args[1]===0)||(currentTab===2&&ret_returned[1]===0)){if(ret_others[1]!==0){currentTab=0}else if(ret_in_args[1]!==0){currentTab=1}else if(ret_returned[1]!==0){currentTab=2}}let crates="";if(rawSearchIndex.size>1){crates=" in 
    "}let output=`

    Results${crates}

    `;if(results.query.error!==null){const error=results.query.error;error.forEach((value,index)=>{value=value.split("<").join("<").split(">").join(">");if(index%2!==0){error[index]=`${value.replaceAll(" ", " ")}`}else{error[index]=value}});output+=`

    Query parser error: "${error.join("")}".

    `;output+="
    "+makeTabHeader(0,"In Names",ret_others[1])+"
    ";currentTab=0}else if(results.query.foundElems<=1&&results.query.returned.length===0){output+="
    "+makeTabHeader(0,"In Names",ret_others[1])+makeTabHeader(1,"In Parameters",ret_in_args[1])+makeTabHeader(2,"In Return Types",ret_returned[1])+"
    "}else{const signatureTabTitle=results.query.elems.length===0?"In Function Return Types":results.query.returned.length===0?"In Function Parameters":"In Function Signatures";output+="
    "+makeTabHeader(0,signatureTabTitle,ret_others[1])+"
    ";currentTab=0}if(results.query.correction!==null){const orig=results.query.returned.length>0?results.query.returned[0].name:results.query.elems[0].name;output+="

    "+`Type "${orig}" not found. `+"Showing results for closest type name "+`"${results.query.correction}" instead.

    `}if(results.query.proposeCorrectionFrom!==null){const orig=results.query.proposeCorrectionFrom;const targ=results.query.proposeCorrectionTo;output+="

    "+`Type "${orig}" not found and used as generic parameter. `+`Consider searching for "${targ}" instead.

    `}const resultsElem=document.createElement("div");resultsElem.id="results";resultsElem.appendChild(ret_others[0]);resultsElem.appendChild(ret_in_args[0]);resultsElem.appendChild(ret_returned[0]);search.innerHTML=output;const crateSearch=document.getElementById("crate-search");if(crateSearch){crateSearch.addEventListener("input",updateCrate)}search.appendChild(resultsElem);searchState.showResults(search);const elems=document.getElementById("search-tabs").childNodes;searchState.focusedByTab=[];let i=0;for(const elem of elems){const j=i;elem.onclick=()=>printTab(j);searchState.focusedByTab.push(null);i+=1}printTab(currentTab)}function updateSearchHistory(url){if(!browserSupportsHistoryApi()){return}const params=searchState.getQueryStringParams();if(!history.state&&!params.search){history.pushState(null,"",url)}else{history.replaceState(null,"",url)}}async function search(forced){const query=parseQuery(searchState.input.value.trim());let filterCrates=getFilterCrates();if(!forced&&query.userQuery===currentResults){if(query.userQuery.length>0){putBackSearch()}return}searchState.setLoadingSearch();const params=searchState.getQueryStringParams();if(filterCrates===null&¶ms["filter-crate"]!==undefined){filterCrates=params["filter-crate"]}searchState.title="Results for "+query.original+" - Rust";updateSearchHistory(buildUrl(query.original,filterCrates));await showResults(await execQuery(query,filterCrates,window.currentCrate),params.go_to_first,filterCrates)}function buildItemSearchTypeAll(types,lowercasePaths){return types.length>0?types.map(type=>buildItemSearchType(type,lowercasePaths)):EMPTY_GENERICS_ARRAY}const EMPTY_BINDINGS_MAP=new Map();const EMPTY_GENERICS_ARRAY=[];let TYPES_POOL=new Map();function buildItemSearchType(type,lowercasePaths,isAssocType){const PATH_INDEX_DATA=0;const GENERICS_DATA=1;const BINDINGS_DATA=2;let pathIndex,generics,bindings;if(typeof type==="number"){pathIndex=type;generics=EMPTY_GENERICS_ARRAY;bindings=EMPTY_BINDINGS_MAP}else{pathIndex=type[PATH_INDEX_DATA];generics=buildItemSearchTypeAll(type[GENERICS_DATA],lowercasePaths,);if(type.length>BINDINGS_DATA&&type[BINDINGS_DATA].length>0){bindings=new Map(type[BINDINGS_DATA].map(binding=>{const[assocType,constraints]=binding;return[buildItemSearchType(assocType,lowercasePaths,true).id,buildItemSearchTypeAll(constraints,lowercasePaths),]}))}else{bindings=EMPTY_BINDINGS_MAP}}let result;if(pathIndex<0){result={id:pathIndex,ty:TY_GENERIC,path:null,exactPath:null,generics,bindings,}}else if(pathIndex===0){result={id:null,ty:null,path:null,exactPath:null,generics,bindings,}}else{const item=lowercasePaths[pathIndex-1];result={id:buildTypeMapIndex(item.name,isAssocType),ty:item.ty,path:item.path,exactPath:item.exactPath,generics,bindings,}}const cr=TYPES_POOL.get(result.id);if(cr){if(cr.generics.length===result.generics.length&&cr.generics!==result.generics&&cr.generics.every((x,i)=>result.generics[i]===x)){result.generics=cr.generics}if(cr.bindings.size===result.bindings.size&&cr.bindings!==result.bindings){let ok=true;for(const[k,v]of cr.bindings.entries()){const v2=result.bindings.get(v);if(!v2){ok=false;break}if(v!==v2&&v.length===v2.length&&v.every((x,i)=>v2[i]===x)){result.bindings.set(k,v)}else if(v!==v2){ok=false;break}}if(ok){result.bindings=cr.bindings}}if(cr.ty===result.ty&&cr.path===result.path&&cr.bindings===result.bindings&&cr.generics===result.generics&&cr.ty===result.ty){return cr}}TYPES_POOL.set(result.id,result);return result}function buildFunctionSearchTypeCallback(lowercasePaths){return functionSearchType=>{if(functionSearchType===0){return null}const INPUTS_DATA=0;const OUTPUT_DATA=1;let inputs,output;if(typeof functionSearchType[INPUTS_DATA]==="number"){inputs=[buildItemSearchType(functionSearchType[INPUTS_DATA],lowercasePaths)]}else{inputs=buildItemSearchTypeAll(functionSearchType[INPUTS_DATA],lowercasePaths,)}if(functionSearchType.length>1){if(typeof functionSearchType[OUTPUT_DATA]==="number"){output=[buildItemSearchType(functionSearchType[OUTPUT_DATA],lowercasePaths)]}else{output=buildItemSearchTypeAll(functionSearchType[OUTPUT_DATA],lowercasePaths,)}}else{output=[]}const where_clause=[];const l=functionSearchType.length;for(let i=2;i{k=(~~k+0x7ed55d16)+(k<<12);k=(k ^ 0xc761c23c)^(k>>>19);k=(~~k+0x165667b1)+(k<<5);k=(~~k+0xd3a2646c)^(k<<9);k=(~~k+0xfd7046c5)+(k<<3);return(k ^ 0xb55a4f09)^(k>>>16)};const hashint2=k=>{k=~k+(k<<15);k ^=k>>>12;k+=k<<2;k ^=k>>>4;k=Math.imul(k,2057);return k ^(k>>16)};if(input!==null){const h0a=hashint1(input);const h0b=hashint2(input);const h1a=~~(h0a+Math.imul(h0b,2));const h1b=~~(h0a+Math.imul(h0b,3));const h2a=~~(h0a+Math.imul(h0b,4));const h2b=~~(h0a+Math.imul(h0b,5));output[0]|=(1<<(h0a%32))|(1<<(h1b%32));output[1]|=(1<<(h1a%32))|(1<<(h2b%32));output[2]|=(1<<(h2a%32))|(1<<(h0b%32));fps.add(input)}for(const g of type.generics){buildFunctionTypeFingerprint(g,output,fps)}const fb={id:null,ty:0,generics:EMPTY_GENERICS_ARRAY,bindings:EMPTY_BINDINGS_MAP,};for(const[k,v]of type.bindings.entries()){fb.id=k;fb.generics=v;buildFunctionTypeFingerprint(fb,output,fps)}output[3]=fps.size}function compareTypeFingerprints(fullId,queryFingerprint){const fh0=functionTypeFingerprint[fullId*4];const fh1=functionTypeFingerprint[(fullId*4)+1];const fh2=functionTypeFingerprint[(fullId*4)+2];const[qh0,qh1,qh2]=queryFingerprint;const[in0,in1,in2]=[fh0&qh0,fh1&qh1,fh2&qh2];if((in0 ^ qh0)||(in1 ^ qh1)||(in2 ^ qh2)){return null}return functionTypeFingerprint[(fullId*4)+3]}class VlqHexDecoder{constructor(string,cons){this.string=string;this.cons=cons;this.offset=0;this.backrefQueue=[]}decodeList(){let c=this.string.charCodeAt(this.offset);const ret=[];while(c!==125){ret.push(this.decode());c=this.string.charCodeAt(this.offset)}this.offset+=1;return ret}decode(){let n=0;let c=this.string.charCodeAt(this.offset);if(c===123){this.offset+=1;return this.decodeList()}while(c<96){n=(n<<4)|(c&0xF);this.offset+=1;c=this.string.charCodeAt(this.offset)}n=(n<<4)|(c&0xF);const[sign,value]=[n&1,n>>1];this.offset+=1;return sign?-value:value}next(){const c=this.string.charCodeAt(this.offset);if(c>=48&&c<64){this.offset+=1;return this.backrefQueue[c-48]}if(c===96){this.offset+=1;return this.cons(0)}const result=this.cons(this.decode());this.backrefQueue.unshift(result);if(this.backrefQueue.length>16){this.backrefQueue.pop()}return result}}class RoaringBitmap{constructor(str){const strdecoded=atob(str);const u8array=new Uint8Array(strdecoded.length);for(let j=0;j=4){offsets=[];for(let j=0;j>3]&(1<<(j&0x7))){const runcount=(u8array[i]|(u8array[i+1]<<8));i+=2;this.containers.push(new RoaringBitmapRun(runcount,u8array.slice(i,i+(runcount*4)),));i+=runcount*4}else if(this.cardinalities[j]>=4096){this.containers.push(new RoaringBitmapBits(u8array.slice(i,i+8192)));i+=8192}else{const end=this.cardinalities[j]*2;this.containers.push(new RoaringBitmapArray(this.cardinalities[j],u8array.slice(i,i+end),));i+=end}}}contains(keyvalue){const key=keyvalue>>16;const value=keyvalue&0xFFFF;for(let i=0;i=start&&value<=(start+lenm1)){return true}}return false}}class RoaringBitmapArray{constructor(cardinality,array){this.cardinality=cardinality;this.array=array}contains(value){const l=this.cardinality*2;for(let i=0;i>3]&(1<<(value&7)))}}function buildIndex(rawSearchIndex){searchIndex=[];searchIndexDeprecated=new Map();searchIndexEmptyDesc=new Map();let currentIndex=0;let id=0;for(const crate of rawSearchIndex.values()){id+=crate.t.length+1}functionTypeFingerprint=new Uint32Array((id+1)*4);id=0;for(const[crate,crateCorpus]of rawSearchIndex){const itemDescShardDecoder=new VlqHexDecoder(crateCorpus.D,noop=>noop);let descShard={crate,shard:0,start:0,len:itemDescShardDecoder.next(),promise:null,resolve:null,};const descShardList=[descShard];searchIndexDeprecated.set(crate,new RoaringBitmap(crateCorpus.c));searchIndexEmptyDesc.set(crate,new RoaringBitmap(crateCorpus.e));let descIndex=0;const crateRow={crate,ty:3,name:crate,path:"",descShard,descIndex,exactPath:"",desc:crateCorpus.doc,parent:undefined,type:null,id,word:crate,normalizedName:crate.indexOf("_")===-1?crate:crate.replace(/_/g,""),bitIndex:0,implDisambiguator:null,};id+=1;searchIndex.push(crateRow);currentIndex+=1;if(!searchIndexEmptyDesc.get(crate).contains(0)){descIndex+=1}const itemTypes=crateCorpus.t;const itemNames=crateCorpus.n;const itemPaths=new Map(crateCorpus.q);const itemReexports=new Map(crateCorpus.r);const itemParentIdxs=crateCorpus.i;const implDisambiguator=new Map(crateCorpus.b);const paths=crateCorpus.p;const aliases=crateCorpus.a;const lowercasePaths=[];const itemFunctionDecoder=new VlqHexDecoder(crateCorpus.f,buildFunctionSearchTypeCallback(lowercasePaths),);let len=paths.length;let lastPath=itemPaths.get(0);for(let i=0;i2){path=itemPaths.has(elem[2])?itemPaths.get(elem[2]):lastPath;lastPath=path}const exactPath=elem.length>3?itemPaths.get(elem[3]):path;lowercasePaths.push({ty,name:name.toLowerCase(),path,exactPath});paths[i]={ty,name,path,exactPath}}lastPath="";len=itemTypes.length;for(let i=0;i=descShard.len&&!searchIndexEmptyDesc.get(crate).contains(bitIndex)){descShard={crate,shard:descShard.shard+1,start:descShard.start+descShard.len,len:itemDescShardDecoder.next(),promise:null,resolve:null,};descIndex=0;descShardList.push(descShard)}let word="";if(typeof itemNames[i]==="string"){word=itemNames[i].toLowerCase()}const path=itemPaths.has(i)?itemPaths.get(i):lastPath;const type=itemFunctionDecoder.next();if(type!==null){if(type){const fp=functionTypeFingerprint.subarray(id*4,(id+1)*4);const fps=new Set();for(const t of type.inputs){buildFunctionTypeFingerprint(t,fp,fps)}for(const t of type.output){buildFunctionTypeFingerprint(t,fp,fps)}for(const w of type.where_clause){for(const t of w){buildFunctionTypeFingerprint(t,fp,fps)}}}}const row={crate,ty:itemTypes.charCodeAt(i)-65,name:itemNames[i],path,descShard,descIndex,exactPath:itemReexports.has(i)?itemPaths.get(itemReexports.get(i)):path,parent:itemParentIdxs[i]>0?paths[itemParentIdxs[i]-1]:undefined,type,id,word,normalizedName:word.indexOf("_")===-1?word:word.replace(/_/g,""),bitIndex,implDisambiguator:implDisambiguator.has(i)?implDisambiguator.get(i):null,};id+=1;searchIndex.push(row);lastPath=row.path;if(!searchIndexEmptyDesc.get(crate).contains(bitIndex)){descIndex+=1}}if(aliases){const currentCrateAliases=new Map();ALIASES.set(crate,currentCrateAliases);for(const alias_name in aliases){if(!Object.prototype.hasOwnProperty.call(aliases,alias_name)){continue}let currentNameAliases;if(currentCrateAliases.has(alias_name)){currentNameAliases=currentCrateAliases.get(alias_name)}else{currentNameAliases=[];currentCrateAliases.set(alias_name,currentNameAliases)}for(const local_alias of aliases[alias_name]){currentNameAliases.push(local_alias+currentIndex)}}}currentIndex+=itemTypes.length;searchState.descShards.set(crate,descShardList)}TYPES_POOL=new Map()}function onSearchSubmit(e){e.preventDefault();searchState.clearInputTimeout();search()}function putBackSearch(){const search_input=searchState.input;if(!searchState.input){return}if(search_input.value!==""&&!searchState.isDisplayed()){searchState.showResults();if(browserSupportsHistoryApi()){history.replaceState(null,"",buildUrl(search_input.value,getFilterCrates()))}document.title=searchState.title}}function registerSearchEvents(){const params=searchState.getQueryStringParams();if(searchState.input.value===""){searchState.input.value=params.search||""}const searchAfter500ms=()=>{searchState.clearInputTimeout();if(searchState.input.value.length===0){searchState.hideResults()}else{searchState.timeout=setTimeout(search,500)}};searchState.input.onkeyup=searchAfter500ms;searchState.input.oninput=searchAfter500ms;document.getElementsByClassName("search-form")[0].onsubmit=onSearchSubmit;searchState.input.onchange=e=>{if(e.target!==document.activeElement){return}searchState.clearInputTimeout();setTimeout(search,0)};searchState.input.onpaste=searchState.input.onchange;searchState.outputElement().addEventListener("keydown",e=>{if(e.altKey||e.ctrlKey||e.shiftKey||e.metaKey){return}if(e.which===38){const previous=document.activeElement.previousElementSibling;if(previous){previous.focus()}else{searchState.focus()}e.preventDefault()}else if(e.which===40){const next=document.activeElement.nextElementSibling;if(next){next.focus()}const rect=document.activeElement.getBoundingClientRect();if(window.innerHeight-rect.bottom{if(e.which===40){focusSearchResult();e.preventDefault()}});searchState.input.addEventListener("focus",()=>{putBackSearch()});searchState.input.addEventListener("blur",()=>{searchState.input.placeholder=searchState.input.origPlaceholder});if(browserSupportsHistoryApi()){const previousTitle=document.title;window.addEventListener("popstate",e=>{const params=searchState.getQueryStringParams();document.title=previousTitle;currentResults=null;if(params.search&¶ms.search.length>0){searchState.input.value=params.search;e.preventDefault();search()}else{searchState.input.value="";searchState.hideResults()}})}window.onpageshow=()=>{const qSearch=searchState.getQueryStringParams().search;if(searchState.input.value===""&&qSearch){searchState.input.value=qSearch}search()}}function updateCrate(ev){if(ev.target.value==="all crates"){const query=searchState.input.value.trim();updateSearchHistory(buildUrl(query,null))}currentResults=null;search(true)}buildIndex(rawSearchIndex);if(typeof window!=="undefined"){registerSearchEvents();if(window.searchState.getQueryStringParams().search){search()}}if(typeof exports!=="undefined"){exports.initSearch=initSearch;exports.execQuery=execQuery;exports.parseQuery=parseQuery}}if(typeof window!=="undefined"){window.initSearch=initSearch;if(window.searchIndex!==undefined){initSearch(window.searchIndex)}}else{initSearch(new Map())}})() \ No newline at end of file diff --git a/crates/tor_interface/all.html b/crates/tor_interface/all.html index 83a65440..2175734f 100644 --- a/crates/tor_interface/all.html +++ b/crates/tor_interface/all.html @@ -1 +1 @@ -List of all items in this crate

    List of all items

    Structs

    Enums

    Traits

    Type Aliases

    Constants

    \ No newline at end of file +List of all items in this crate

    List of all items

    Structs

    Enums

    Traits

    Type Aliases

    Constants

    \ No newline at end of file diff --git a/crates/tor_interface/arti_client_tor_client/enum.Error.html b/crates/tor_interface/arti_client_tor_client/enum.Error.html index 5473cfde..0cfd0134 100644 --- a/crates/tor_interface/arti_client_tor_client/enum.Error.html +++ b/crates/tor_interface/arti_client_tor_client/enum.Error.html @@ -1,10 +1,10 @@ -Error in tor_interface::arti_client_tor_client - Rust

    Enum tor_interface::arti_client_tor_client::Error

    source ·
    pub enum Error {
    +Error in tor_interface::arti_client_tor_client - Rust

    Enum tor_interface::arti_client_tor_client::Error

    source ·
    pub enum Error {
         NotImplemented(),
    -    TcpListenerBindFailed(Error),
    -    TcpListenerLocalAddrFailed(Error),
    -    TcpListenerAcceptFailed(Error),
    -    TcpStreamConnectFailed(Error),
    -    TcpStreamIntoFailed(Error),
    +    TcpListenerBindFailed(Error),
    +    TcpListenerLocalAddrFailed(Error),
    +    TcpListenerAcceptFailed(Error),
    +    TcpStreamConnectFailed(Error),
    +    TcpStreamIntoFailed(Error),
         ArtiClientConfigBuilderError(ConfigBuildError),
         ArtiClientError(Error),
         ArtiClientTorAddrError(TorAddrError),
    @@ -12,128 +12,128 @@
         TorKeyMgrError(Error),
         OnionServiceConfigBuilderError(ConfigBuildError),
     }
    Expand description

    ArtiClientTorClient-specific error type

    -

    Variants§

    §

    NotImplemented()

    §

    TcpListenerBindFailed(Error)

    §

    TcpListenerLocalAddrFailed(Error)

    §

    TcpListenerAcceptFailed(Error)

    §

    TcpStreamConnectFailed(Error)

    §

    TcpStreamIntoFailed(Error)

    §

    ArtiClientConfigBuilderError(ConfigBuildError)

    §

    ArtiClientError(Error)

    §

    ArtiClientTorAddrError(TorAddrError)

    §

    ArtiClientOnionServiceLaunchError(Error)

    §

    TorKeyMgrError(Error)

    §

    OnionServiceConfigBuilderError(ConfigBuildError)

    Trait Implementations§

    source§

    impl Debug for Error

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for Error

    source§

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for Error

    source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    1.0.0 · source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type based access to context intended for error reports. Read more
    source§

    impl From<Error> for Error

    source§

    fn from(error: Error) -> Self

    Converts to this type from the input type.

    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> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where - T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where +

    Variants§

    §

    NotImplemented()

    §

    TcpListenerBindFailed(Error)

    §

    TcpListenerLocalAddrFailed(Error)

    §

    TcpListenerAcceptFailed(Error)

    §

    TcpStreamConnectFailed(Error)

    §

    TcpStreamIntoFailed(Error)

    §

    ArtiClientConfigBuilderError(ConfigBuildError)

    §

    ArtiClientError(Error)

    §

    ArtiClientTorAddrError(TorAddrError)

    §

    ArtiClientOnionServiceLaunchError(Error)

    §

    TorKeyMgrError(Error)

    §

    OnionServiceConfigBuilderError(ConfigBuildError)

    Trait Implementations§

    source§

    impl Debug for Error

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for Error

    source§

    fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for Error

    source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    Returns the lower-level source of this error, if any. Read more
    1.0.0 · source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    1.0.0 · source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type-based access to context intended for error reports. Read more
    source§

    impl From<Error> for Error

    source§

    fn from(error: Error) -> Self

    Converts to this type from the input type.

    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> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where + T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where T: 'a,

    §

    fn implicit( self, class: Class, - constructed: bool, - tag: u32, -) -> TaggedParser<'a, Implicit, Self, E>

    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Conv for T

    §

    fn conv<T>(self) -> T
    where - Self: Into<T>,

    Converts self into T using Into<T>. Read more
    §

    impl<T> Downcast for T
    where - 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 + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Conv for T

    §

    fn conv<T>(self) -> T
    where + Self: Into<T>,

    Converts self into T using Into<T>. Read more
    §

    impl<T> Downcast for T
    where + 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
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
§

impl<E> ErrorReport for E
where - E: Error + 'static,

§

fn report(&self) -> Report<ReportHelper<'_>>

Return an object that displays the error and its causes
§

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 + E: Error + 'static,
§

fn report(&self) -> Report<ReportHelper<'_>>

Return an object that displays the error and its causes
§

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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
source§

impl<T> ToString for T
where - T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> TryIntoSlug for T
where - T: ToString + ?Sized,

§

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 T
where +function.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
source§

impl<T> ToString for T
where + T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> TryIntoSlug for T
where + T: ToString + ?Sized,

§

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 T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T

\ No newline at end of file diff --git a/crates/tor_interface/arti_client_tor_client/index.html b/crates/tor_interface/arti_client_tor_client/index.html index 7409a619..93cd3d76 100644 --- a/crates/tor_interface/arti_client_tor_client/index.html +++ b/crates/tor_interface/arti_client_tor_client/index.html @@ -1,2 +1,2 @@ -tor_interface::arti_client_tor_client - Rust

Module tor_interface::arti_client_tor_client

source ·
Expand description

Implementation of an in-process arti-client-based TorProvider

-

Structs§

Enums§

\ No newline at end of file +tor_interface::arti_client_tor_client - Rust

Module tor_interface::arti_client_tor_client

source ·
Expand description

Implementation of an in-process arti-client-based TorProvider

+

Structs§

Enums§

\ No newline at end of file diff --git a/crates/tor_interface/arti_client_tor_client/struct.ArtiClientTorClient.html b/crates/tor_interface/arti_client_tor_client/struct.ArtiClientTorClient.html index 5efd309c..34d5c913 100644 --- a/crates/tor_interface/arti_client_tor_client/struct.ArtiClientTorClient.html +++ b/crates/tor_interface/arti_client_tor_client/struct.ArtiClientTorClient.html @@ -1,143 +1,143 @@ -ArtiClientTorClient in tor_interface::arti_client_tor_client - Rust
pub struct ArtiClientTorClient { /* private fields */ }
Expand description

The ArtiClientTorClient is an in-process arti-client-based TorProvider.

+ArtiClientTorClient in tor_interface::arti_client_tor_client - Rust
pub struct ArtiClientTorClient { /* private fields */ }
Expand description

The ArtiClientTorClient is an in-process arti-client-based TorProvider.

Implementations§

source§

impl ArtiClientTorClient

source

pub fn new( - tokio_runtime: Arc<Runtime>, - root_data_directory: &Path, -) -> Result<Self, Error>

Construct a new ArtiClientTorClient which uses a Tokio runtime internally for all async operations.

-

Trait Implementations§

source§

impl TorProvider for ArtiClientTorClient

source§

fn update(&mut self) -> Result<Vec<TorEvent>, Error>

Process and return TorEvents handled by this TorProvider.
source§

fn bootstrap(&mut self) -> Result<(), Error>

Begin connecting to the Tor Network.
source§

fn add_client_auth( + tokio_runtime: Arc<Runtime>, + root_data_directory: &Path, +) -> Result<Self, Error>

Construct a new ArtiClientTorClient which uses a Tokio runtime internally for all async operations.

+

Trait Implementations§

source§

impl TorProvider for ArtiClientTorClient

source§

fn update(&mut self) -> Result<Vec<TorEvent>, Error>

Process and return TorEvents handled by this TorProvider.
source§

fn bootstrap(&mut self) -> Result<(), Error>

Begin connecting to the Tor Network.
source§

fn add_client_auth( &mut self, service_id: &V3OnionServiceId, client_auth: &X25519PrivateKey, -) -> Result<(), Error>

Add v3 onion-service authorisation credentials, allowing this TorProvider to connect to an onion-service whose service-descriptor is encrypted using the assocciated x25519 public key.
source§

fn remove_client_auth( +) -> Result<(), Error>

Add v3 onion-service authorisation credentials, allowing this TorProvider to connect to an onion-service whose service-descriptor is encrypted using the assocciated x25519 public key.
source§

fn remove_client_auth( &mut self, service_id: &V3OnionServiceId, -) -> Result<(), Error>

Remove a previously added client authorisation credential. This TorProvider will be unable to connect to the onion-service associated with the removed credentail.
source§

fn connect( +) -> Result<(), Error>

Remove a previously added client authorisation credential. This TorProvider will be unable to connect to the onion-service associated with the removed credentail.
source§

fn connect( &mut self, target: TargetAddr, - circuit: Option<CircuitToken>, -) -> Result<OnionStream, Error>

Anonymously connect to the address specified by target over the Tor Network and return the associated OnionStream. Read more
source§

fn listener( + circuit: Option<CircuitToken>, +) -> Result<OnionStream, Error>

Anonymously connect to the address specified by target over the Tor Network and return the associated OnionStream. Read more
source§

fn listener( &mut self, private_key: &Ed25519PrivateKey, - virt_port: u16, - authorized_clients: Option<&[X25519PublicKey]>, -) -> Result<OnionListener, Error>

Anonymously start an onion-service and return the associated OnionListener. Read more
source§

fn generate_token(&mut self) -> CircuitToken

Create a new CircuitToken.
source§

fn release_token(&mut self, _token: CircuitToken)

Releaes a previously generated CircuitToken.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where - T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where + virt_port: u16, + authorized_clients: Option<&[X25519PublicKey]>, +) -> Result<OnionListener, Error>

Anonymously start an onion-service and return the associated OnionListener. Read more
source§

fn generate_token(&mut self) -> CircuitToken

Create a new CircuitToken.
source§

fn release_token(&mut self, _token: CircuitToken)

Releaes a previously generated CircuitToken.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, - constructed: bool, - tag: u32, -) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where - 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 + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where + 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
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
§

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 + 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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +function.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T

\ No newline at end of file diff --git a/crates/tor_interface/censorship_circumvention/enum.BridgeLineError.html b/crates/tor_interface/censorship_circumvention/enum.BridgeLineError.html index 12d6d65c..555155d5 100644 --- a/crates/tor_interface/censorship_circumvention/enum.BridgeLineError.html +++ b/crates/tor_interface/censorship_circumvention/enum.BridgeLineError.html @@ -1,143 +1,143 @@ -BridgeLineError in tor_interface::censorship_circumvention - Rust
pub enum BridgeLineError {
-    TransportMissing(String),
-    AddressMissing(String),
-    FingerprintMissing(String),
-    TransportNameInvalid(String),
-    AddressParseFailed(String),
-    KeyValueInvalid(String),
+BridgeLineError in tor_interface::censorship_circumvention - Rust
pub enum BridgeLineError {
+    TransportMissing(String),
+    AddressMissing(String),
+    FingerprintMissing(String),
+    TransportNameInvalid(String),
+    AddressParseFailed(String),
+    KeyValueInvalid(String),
     AddressPortInvalid,
-    FingerprintInvalid(String),
+    FingerprintInvalid(String),
 }
Expand description

Error returned on failure to construct a BridgeLine

-

Variants§

§

TransportMissing(String)

Provided bridge line missing transport

-
§

AddressMissing(String)

Provided bridge line missing address

-
§

FingerprintMissing(String)

Provided bridge line missing fingerprint

-
§

TransportNameInvalid(String)

Invalid transport name (must be a valid C identifier)

-
§

AddressParseFailed(String)

Provided bridge line’s address not parseable

-
§

KeyValueInvalid(String)

A key/value pair in invalid format

+

Variants§

§

TransportMissing(String)

Provided bridge line missing transport

+
§

AddressMissing(String)

Provided bridge line missing address

+
§

FingerprintMissing(String)

Provided bridge line missing fingerprint

+
§

TransportNameInvalid(String)

Invalid transport name (must be a valid C identifier)

+
§

AddressParseFailed(String)

Provided bridge line’s address not parseable

+
§

KeyValueInvalid(String)

A key/value pair in invalid format

§

AddressPortInvalid

Invalid bridge address port

-
§

FingerprintInvalid(String)

Fingerprint is not parseable (must be length 40 base16 string)

-

Trait Implementations§

source§

impl Debug for BridgeLineError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for BridgeLineError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for BridgeLineError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where - T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where +
§

FingerprintInvalid(String)

Fingerprint is not parseable (must be length 40 base16 string)

+

Trait Implementations§

source§

impl Debug for BridgeLineError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for BridgeLineError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for BridgeLineError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, - constructed: bool, - tag: u32, -) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where - 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 + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where + 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
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
§

impl<E> ErrorReport for E
where - E: Error + 'static,

§

fn report(&self) -> Report<ReportHelper<'_>>

Return an object that displays the error and its causes
§

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 + E: Error + 'static,
§

fn report(&self) -> Report<ReportHelper<'_>>

Return an object that displays the error and its causes
§

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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
source§

impl<T> ToString for T
where - T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> TryIntoSlug for T
where - T: ToString + ?Sized,

§

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 T
where +function.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
source§

impl<T> ToString for T
where + T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> TryIntoSlug for T
where + T: ToString + ?Sized,

§

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 T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T

\ No newline at end of file diff --git a/crates/tor_interface/censorship_circumvention/enum.PluggableTransportConfigError.html b/crates/tor_interface/censorship_circumvention/enum.PluggableTransportConfigError.html index 00a711c4..5cda63f1 100644 --- a/crates/tor_interface/censorship_circumvention/enum.PluggableTransportConfigError.html +++ b/crates/tor_interface/censorship_circumvention/enum.PluggableTransportConfigError.html @@ -1,131 +1,131 @@ -PluggableTransportConfigError in tor_interface::censorship_circumvention - Rust
pub enum PluggableTransportConfigError {
-    TransportNameInvalid(String),
-    BinaryPathInvalid(String, String),
+PluggableTransportConfigError in tor_interface::censorship_circumvention - Rust
pub enum PluggableTransportConfigError {
+    TransportNameInvalid(String),
+    BinaryPathInvalid(String, String),
 }
Expand description

Error returned on failure to construct a PluggableTransportConfig

-

Variants§

§

TransportNameInvalid(String)

transport names must be a valid C identifier

-
§

BinaryPathInvalid(String, String)

configuration only allows aboslute paths to binaries

-

Trait Implementations§

source§

impl Debug for PluggableTransportConfigError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for PluggableTransportConfigError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for PluggableTransportConfigError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where - T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where +

Variants§

§

TransportNameInvalid(String)

transport names must be a valid C identifier

+
§

BinaryPathInvalid(String, String)

configuration only allows aboslute paths to binaries

+

Trait Implementations§

source§

impl Debug for PluggableTransportConfigError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for PluggableTransportConfigError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for PluggableTransportConfigError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, - constructed: bool, - tag: u32, -) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where - 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 + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where + 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
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
§

impl<E> ErrorReport for E
where - E: Error + 'static,

§

fn report(&self) -> Report<ReportHelper<'_>>

Return an object that displays the error and its causes
§

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 + E: Error + 'static,
§

fn report(&self) -> Report<ReportHelper<'_>>

Return an object that displays the error and its causes
§

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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
source§

impl<T> ToString for T
where - T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> TryIntoSlug for T
where - T: ToString + ?Sized,

§

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 T
where +function.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
source§

impl<T> ToString for T
where + T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> TryIntoSlug for T
where + T: ToString + ?Sized,

§

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 T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T

\ No newline at end of file diff --git a/crates/tor_interface/censorship_circumvention/index.html b/crates/tor_interface/censorship_circumvention/index.html index 67f22756..14845055 100644 --- a/crates/tor_interface/censorship_circumvention/index.html +++ b/crates/tor_interface/censorship_circumvention/index.html @@ -1,2 +1,2 @@ -tor_interface::censorship_circumvention - Rust

Module tor_interface::censorship_circumvention

source ·
Expand description

Censorship circumvention configuration for pluggable-transports and bridge settings

-

Structs§

Enums§

\ No newline at end of file +tor_interface::censorship_circumvention - Rust

Module tor_interface::censorship_circumvention

source ·
Expand description

Censorship circumvention configuration for pluggable-transports and bridge settings

+

Structs§

Enums§

\ No newline at end of file diff --git a/crates/tor_interface/censorship_circumvention/struct.BridgeLine.html b/crates/tor_interface/censorship_circumvention/struct.BridgeLine.html index 727137c3..91bde306 100644 --- a/crates/tor_interface/censorship_circumvention/struct.BridgeLine.html +++ b/crates/tor_interface/censorship_circumvention/struct.BridgeLine.html @@ -1,142 +1,142 @@ -BridgeLine in tor_interface::censorship_circumvention - Rust
pub struct BridgeLine { /* private fields */ }
Expand description

Configuration for a bridge line to be used with a pluggable-transport

+BridgeLine in tor_interface::censorship_circumvention - Rust
pub struct BridgeLine { /* private fields */ }
Expand description

Configuration for a bridge line to be used with a pluggable-transport

Implementations§

source§

impl BridgeLine

A BridgeLine contains the information required to connect to a bridge through the means of a particular pluggable-transport (defined in a PluggableTransportConfi). For more information, see:

source

pub fn new( - transport: String, - address: SocketAddr, - fingerprint: String, - keyvalues: Vec<(String, String)>, -) -> Result<BridgeLine, BridgeLineError>

Construct a new BridgeLine from its constiuent parts. The transport argument must be a valid C identifier and must have an associated transport defined in an associated PluggableTransportConfig. The address must have a non-zero port. The fingerprint is a length 40 base16-encoded string. Finally, the keys in the keyvalues list must not contain space ( ) or equal (=) characters.

+ transport: String, + address: SocketAddr, + fingerprint: String, + keyvalues: Vec<(String, String)>, +) -> Result<BridgeLine, BridgeLineError>

Construct a new BridgeLine from its constiuent parts. The transport argument must be a valid C identifier and must have an associated transport defined in an associated PluggableTransportConfig. The address must have a non-zero port. The fingerprint is a length 40 base16-encoded string. Finally, the keys in the keyvalues list must not contain space ( ) or equal (=) characters.

In practice, bridge lines are distributed as entire strings so most consumers of these APIs are not likely to need this particular function.

-
source

pub fn transport(&self) -> &String

Get a reference to this BridgeLine’s transport field.

-
source

pub fn address(&self) -> &SocketAddr

Get a reference to this BridgeLine’s address field.

-
source

pub fn fingerprint(&self) -> &String

Get a reference to this BridgeLine’s fingerprint field.

-
source

pub fn keyvalues(&self) -> &Vec<(String, String)>

Get a reference to this BridgeLine’s key/values field.

-
source

pub fn as_legacy_tor_setconf_value(&self) -> String

Serialise this BridgeLine to the value set via SETCONF Bridge... legacy c-tor control-port command.

-

Trait Implementations§

source§

impl Clone for BridgeLine

source§

fn clone(&self) -> BridgeLine

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for BridgeLine

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl FromStr for BridgeLine

§

type Err = BridgeLineError

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where - T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where +

source

pub fn transport(&self) -> &String

Get a reference to this BridgeLine’s transport field.

+
source

pub fn address(&self) -> &SocketAddr

Get a reference to this BridgeLine’s address field.

+
source

pub fn fingerprint(&self) -> &String

Get a reference to this BridgeLine’s fingerprint field.

+
source

pub fn keyvalues(&self) -> &Vec<(String, String)>

Get a reference to this BridgeLine’s key/values field.

+
source

pub fn as_legacy_tor_setconf_value(&self) -> String

Serialise this BridgeLine to the value set via SETCONF Bridge... legacy c-tor control-port command.

+

Trait Implementations§

source§

impl Clone for BridgeLine

source§

fn clone(&self) -> BridgeLine

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for BridgeLine

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl FromStr for BridgeLine

source§

type Err = BridgeLineError

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, - constructed: bool, - tag: u32, -) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where - T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where - 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 + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where + 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
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

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 + T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +function.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
source§

impl<T> ToOwned for T
where + T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T

\ No newline at end of file diff --git a/crates/tor_interface/censorship_circumvention/struct.PluggableTransportConfig.html b/crates/tor_interface/censorship_circumvention/struct.PluggableTransportConfig.html index 8abdb1a5..5e95c4f3 100644 --- a/crates/tor_interface/censorship_circumvention/struct.PluggableTransportConfig.html +++ b/crates/tor_interface/censorship_circumvention/struct.PluggableTransportConfig.html @@ -1,135 +1,135 @@ -PluggableTransportConfig in tor_interface::censorship_circumvention - Rust
pub struct PluggableTransportConfig { /* private fields */ }
Expand description

Configuration for a pluggable-transport

+PluggableTransportConfig in tor_interface::censorship_circumvention - Rust
pub struct PluggableTransportConfig { /* private fields */ }
Expand description

Configuration for a pluggable-transport

Implementations§

source§

impl PluggableTransportConfig

Configuration struct for a pluggable-transport which conforms to the v1.0 pluggable-transport specification

source

pub fn new( - transports: Vec<String>, - path_to_binary: PathBuf, -) -> Result<Self, PluggableTransportConfigError>

Construct a new PluggableTransportConfig. Each transport string must be a valid C identifier while path_to_binary must be an absolute path.

-
source

pub fn transports(&self) -> &Vec<String>

Get a reference to this PluggableTransportConfig’s list of transports.

-
source

pub fn path_to_binary(&self) -> &PathBuf

Get a reference to this PluggableTransportConfig’s PathBuf containing the absolute path to the pluggable-transport binary.

-
source

pub fn options(&self) -> &Vec<String>

Get a reference to this PluggableTransportConfig’s list of command-line options

-
source

pub fn add_option(&mut self, arg: String)

Add a command-line option used to invoke this pluggable-transport.

-

Trait Implementations§

source§

impl Clone for PluggableTransportConfig

source§

fn clone(&self) -> PluggableTransportConfig

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for PluggableTransportConfig

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where - T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where + transports: Vec<String>, + path_to_binary: PathBuf, +) -> Result<Self, PluggableTransportConfigError>

Construct a new PluggableTransportConfig. Each transport string must be a valid C identifier while path_to_binary must be an absolute path.

+
source

pub fn transports(&self) -> &Vec<String>

Get a reference to this PluggableTransportConfig’s list of transports.

+
source

pub fn path_to_binary(&self) -> &PathBuf

Get a reference to this PluggableTransportConfig’s PathBuf containing the absolute path to the pluggable-transport binary.

+
source

pub fn options(&self) -> &Vec<String>

Get a reference to this PluggableTransportConfig’s list of command-line options

+
source

pub fn add_option(&mut self, arg: String)

Add a command-line option used to invoke this pluggable-transport.

+

Trait Implementations§

source§

impl Clone for PluggableTransportConfig

source§

fn clone(&self) -> PluggableTransportConfig

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for PluggableTransportConfig

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, - constructed: bool, - tag: u32, -) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where - T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where - 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 + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where + 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
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

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 + T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +function.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
source§

impl<T> ToOwned for T
where + T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T

\ No newline at end of file diff --git a/crates/tor_interface/index.html b/crates/tor_interface/index.html index e1d4842d..ef3d31eb 100644 --- a/crates/tor_interface/index.html +++ b/crates/tor_interface/index.html @@ -1,4 +1,4 @@ -tor_interface - Rust

Crate tor_interface

source ·
Expand description

§Tor-Interface

+tor_interface - Rust

Crate tor_interface

source ·
Expand description

§Tor-Interface

Developer-friendly crate providing connectivity to the Tor Network and functionality for interacting with Tor-specific cryptographic types.

This crate is not meant to be a general purpose Tor Controller nor does it aim to expose all of the functionality of the underlying Tor implementations. This crate also does not implement any of the Tor Network functionality itself, instead wrapping lower-level implementations.

§Overview

@@ -48,4 +48,4 @@

§Usage

let mut stream: OnionStream = tor_client.connect(target_addr, None).unwrap(); // and convert to a std::net::TcpStream let stream: TcpStream = stream.into();
-

Modules§

\ No newline at end of file +

Modules§

\ No newline at end of file diff --git a/crates/tor_interface/legacy_tor_client/enum.Error.html b/crates/tor_interface/legacy_tor_client/enum.Error.html index 8cc73cda..8dd42d18 100644 --- a/crates/tor_interface/legacy_tor_client/enum.Error.html +++ b/crates/tor_interface/legacy_tor_client/enum.Error.html @@ -1,10 +1,10 @@ -Error in tor_interface::legacy_tor_client - Rust

Enum tor_interface::legacy_tor_client::Error

source ·
pub enum Error {
+Error in tor_interface::legacy_tor_client - Rust

Enum tor_interface::legacy_tor_client::Error

source ·
pub enum Error {
 
Show 30 variants LegacyTorProcessCreationFailed(Error), LegacyControlStreamCreationFailed(Error), LegacyTorControllerCreationFailed(Error), LegacyTorProcessAuthenticationFailed(Error), GetInfoVersionFailed(Error), - LegacyTorProcessTooOld(String, String), + LegacyTorProcessTooOld(String, String), SetEventsFailed(Error), DelOnionFailed(Error), WaitAsyncEventsFailed(Error), @@ -15,143 +15,143 @@ GetInfoNetListenersSocksFailed(Error), NoSocksListenersFound(), CircuitTokenInvalid(), - Socks5ConnectionFailed(Error), - TcpListenerBindFailed(Error), - TcpListenerLocalAddrFailed(Error), + Socks5ConnectionFailed(Error), + TcpListenerBindFailed(Error), + TcpListenerLocalAddrFailed(Error), AddOnionFailed(Error), LegacyTorNotBootstrapped(), - PluggableTransportConfigDirectoryCreationFailed(Error), - PluggableTransportDirectoryNameCollision(PathBuf), - PluggableTransportSymlinkRemovalFailed(Error), - PluggableTransportSymlinkCreationFailed(Error), - PluggableTransportBinaryNameNotUtf8Representnable(OsString), + PluggableTransportConfigDirectoryCreationFailed(Error), + PluggableTransportDirectoryNameCollision(PathBuf), + PluggableTransportSymlinkRemovalFailed(Error), + PluggableTransportSymlinkCreationFailed(Error), + PluggableTransportBinaryNameNotUtf8Representnable(OsString), PluggableTransportConfigError(PluggableTransportConfigError), - BridgeTransportTypeMultiplyDefined(String), - BridgeTransportNotSupported(String), + BridgeTransportTypeMultiplyDefined(String), + BridgeTransportNotSupported(String), NotImplemented(),
}
Expand description

LegacyTorClient-specific error type

-

Variants§

§

LegacyTorProcessCreationFailed(Error)

§

LegacyControlStreamCreationFailed(Error)

§

LegacyTorControllerCreationFailed(Error)

§

LegacyTorProcessAuthenticationFailed(Error)

§

GetInfoVersionFailed(Error)

§

LegacyTorProcessTooOld(String, String)

§

SetEventsFailed(Error)

§

DelOnionFailed(Error)

§

WaitAsyncEventsFailed(Error)

§

SetConfDisableNetwork0Failed(Error)

§

SetConfFailed(Error)

§

OnionClientAuthAddFailed(Error)

§

OnionClientAuthRemoveFailed(Error)

§

GetInfoNetListenersSocksFailed(Error)

§

NoSocksListenersFound()

§

CircuitTokenInvalid()

§

Socks5ConnectionFailed(Error)

§

TcpListenerBindFailed(Error)

§

TcpListenerLocalAddrFailed(Error)

§

AddOnionFailed(Error)

§

LegacyTorNotBootstrapped()

§

PluggableTransportConfigDirectoryCreationFailed(Error)

§

PluggableTransportDirectoryNameCollision(PathBuf)

§

PluggableTransportSymlinkRemovalFailed(Error)

§

PluggableTransportSymlinkCreationFailed(Error)

§

PluggableTransportBinaryNameNotUtf8Representnable(OsString)

§

PluggableTransportConfigError(PluggableTransportConfigError)

§

BridgeTransportTypeMultiplyDefined(String)

§

BridgeTransportNotSupported(String)

§

NotImplemented()

Trait Implementations§

source§

impl Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Error

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for Error

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Error> for Error

source§

fn from(error: Error) -> Self

Converts to this type from the input type.

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> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where - T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where +

Variants§

§

LegacyTorProcessCreationFailed(Error)

§

LegacyControlStreamCreationFailed(Error)

§

LegacyTorControllerCreationFailed(Error)

§

LegacyTorProcessAuthenticationFailed(Error)

§

GetInfoVersionFailed(Error)

§

LegacyTorProcessTooOld(String, String)

§

SetEventsFailed(Error)

§

DelOnionFailed(Error)

§

WaitAsyncEventsFailed(Error)

§

SetConfDisableNetwork0Failed(Error)

§

SetConfFailed(Error)

§

OnionClientAuthAddFailed(Error)

§

OnionClientAuthRemoveFailed(Error)

§

GetInfoNetListenersSocksFailed(Error)

§

NoSocksListenersFound()

§

CircuitTokenInvalid()

§

Socks5ConnectionFailed(Error)

§

TcpListenerBindFailed(Error)

§

TcpListenerLocalAddrFailed(Error)

§

AddOnionFailed(Error)

§

LegacyTorNotBootstrapped()

§

PluggableTransportConfigDirectoryCreationFailed(Error)

§

PluggableTransportDirectoryNameCollision(PathBuf)

§

PluggableTransportSymlinkRemovalFailed(Error)

§

PluggableTransportSymlinkCreationFailed(Error)

§

PluggableTransportBinaryNameNotUtf8Representnable(OsString)

§

PluggableTransportConfigError(PluggableTransportConfigError)

§

BridgeTransportTypeMultiplyDefined(String)

§

BridgeTransportNotSupported(String)

§

NotImplemented()

Trait Implementations§

source§

impl Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Error

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for Error

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
source§

impl From<Error> for Error

source§

fn from(error: Error) -> Self

Converts to this type from the input type.

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> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, - constructed: bool, - tag: u32, -) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where - 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 + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where + 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
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
§

impl<E> ErrorReport for E
where - E: Error + 'static,

§

fn report(&self) -> Report<ReportHelper<'_>>

Return an object that displays the error and its causes
§

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 + E: Error + 'static,
§

fn report(&self) -> Report<ReportHelper<'_>>

Return an object that displays the error and its causes
§

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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
source§

impl<T> ToString for T
where - T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> TryIntoSlug for T
where - T: ToString + ?Sized,

§

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 T
where +function.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
source§

impl<T> ToString for T
where + T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> TryIntoSlug for T
where + T: ToString + ?Sized,

§

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 T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T

\ No newline at end of file diff --git a/crates/tor_interface/legacy_tor_client/enum.LegacyTorClientConfig.html b/crates/tor_interface/legacy_tor_client/enum.LegacyTorClientConfig.html index b95a8843..380e37f5 100644 --- a/crates/tor_interface/legacy_tor_client/enum.LegacyTorClientConfig.html +++ b/crates/tor_interface/legacy_tor_client/enum.LegacyTorClientConfig.html @@ -1,139 +1,139 @@ -LegacyTorClientConfig in tor_interface::legacy_tor_client - Rust
pub enum LegacyTorClientConfig {
+LegacyTorClientConfig in tor_interface::legacy_tor_client - Rust
pub enum LegacyTorClientConfig {
     BundledTor {
-        tor_bin_path: PathBuf,
-        data_directory: PathBuf,
-        proxy_settings: Option<ProxyConfig>,
-        allowed_ports: Option<Vec<u16>>,
-        pluggable_transports: Option<Vec<PluggableTransportConfig>>,
-        bridge_lines: Option<Vec<BridgeLine>>,
+        tor_bin_path: PathBuf,
+        data_directory: PathBuf,
+        proxy_settings: Option<ProxyConfig>,
+        allowed_ports: Option<Vec<u16>>,
+        pluggable_transports: Option<Vec<PluggableTransportConfig>>,
+        bridge_lines: Option<Vec<BridgeLine>>,
     },
     SystemTor {
-        tor_socks_addr: SocketAddr,
-        tor_control_addr: SocketAddr,
-        tor_control_passwd: String,
+        tor_socks_addr: SocketAddr,
+        tor_control_addr: SocketAddr,
+        tor_control_passwd: String,
     },
-}

Variants§

§

BundledTor

Fields

§tor_bin_path: PathBuf
§data_directory: PathBuf
§proxy_settings: Option<ProxyConfig>
§allowed_ports: Option<Vec<u16>>
§pluggable_transports: Option<Vec<PluggableTransportConfig>>
§bridge_lines: Option<Vec<BridgeLine>>
§

SystemTor

Fields

§tor_socks_addr: SocketAddr
§tor_control_addr: SocketAddr
§tor_control_passwd: String

Trait Implementations§

source§

impl Clone for LegacyTorClientConfig

source§

fn clone(&self) -> LegacyTorClientConfig

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for LegacyTorClientConfig

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where - T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where +}

Variants§

§

BundledTor

Fields

§tor_bin_path: PathBuf
§data_directory: PathBuf
§proxy_settings: Option<ProxyConfig>
§allowed_ports: Option<Vec<u16>>
§pluggable_transports: Option<Vec<PluggableTransportConfig>>
§bridge_lines: Option<Vec<BridgeLine>>
§

SystemTor

Fields

§tor_socks_addr: SocketAddr
§tor_control_addr: SocketAddr
§tor_control_passwd: String

Trait Implementations§

source§

impl Clone for LegacyTorClientConfig

source§

fn clone(&self) -> LegacyTorClientConfig

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for LegacyTorClientConfig

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, - constructed: bool, - tag: u32, -) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where - T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where - 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 + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where + 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
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

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 + T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +function.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
source§

impl<T> ToOwned for T
where + T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T

\ No newline at end of file diff --git a/crates/tor_interface/legacy_tor_client/index.html b/crates/tor_interface/legacy_tor_client/index.html index eca20fee..4166f7c8 100644 --- a/crates/tor_interface/legacy_tor_client/index.html +++ b/crates/tor_interface/legacy_tor_client/index.html @@ -1,2 +1,2 @@ -tor_interface::legacy_tor_client - Rust

Module tor_interface::legacy_tor_client

source ·
Expand description

Implementation of an out-of-process legacy c-tor daemon-based TorProvider

-

Structs§

Enums§

\ No newline at end of file +tor_interface::legacy_tor_client - Rust

Module tor_interface::legacy_tor_client

source ·
Expand description

Implementation of an out-of-process legacy c-tor daemon-based TorProvider

+

Structs§

Enums§

\ No newline at end of file diff --git a/crates/tor_interface/legacy_tor_client/struct.LegacyTorClient.html b/crates/tor_interface/legacy_tor_client/struct.LegacyTorClient.html index 8cd60a5d..ee63b4e1 100644 --- a/crates/tor_interface/legacy_tor_client/struct.LegacyTorClient.html +++ b/crates/tor_interface/legacy_tor_client/struct.LegacyTorClient.html @@ -1,143 +1,143 @@ -LegacyTorClient in tor_interface::legacy_tor_client - Rust

Struct tor_interface::legacy_tor_client::LegacyTorClient

source ·
pub struct LegacyTorClient { /* private fields */ }
Expand description

A LegacyTorClient implements the TorProvider trait using a legacy c-tor daemon backend.

+LegacyTorClient in tor_interface::legacy_tor_client - Rust

Struct tor_interface::legacy_tor_client::LegacyTorClient

source ·
pub struct LegacyTorClient { /* private fields */ }
Expand description

A LegacyTorClient implements the TorProvider trait using a legacy c-tor daemon backend.

The tor process can either be launched and owned by LegacyTorClient, or it can use an already running tor-daemon. When using an already runnng tor-daemon, the TorProvider::bootstrap() automatically succeeds, presuming the connected tor-daemon has successfully bootstrapped.

The minimum supported c-tor is version 0.4.6.1.

-

Implementations§

source§

impl LegacyTorClient

source

pub fn new(config: LegacyTorClientConfig) -> Result<LegacyTorClient, Error>

Construct a new LegacyTorClient from a LegacyTorClientConfig.

+

Implementations§

source§

impl LegacyTorClient

source

pub fn new(config: LegacyTorClientConfig) -> Result<LegacyTorClient, Error>

Construct a new LegacyTorClient from a LegacyTorClientConfig.

source

pub fn version(&mut self) -> LegacyTorVersion

Get the version of the connected c-tor daemon.

-

Trait Implementations§

source§

impl TorProvider for LegacyTorClient

source§

fn update(&mut self) -> Result<Vec<TorEvent>, Error>

Process and return TorEvents handled by this TorProvider.
source§

fn bootstrap(&mut self) -> Result<(), Error>

Begin connecting to the Tor Network.
source§

fn add_client_auth( +

Trait Implementations§

source§

impl TorProvider for LegacyTorClient

source§

fn update(&mut self) -> Result<Vec<TorEvent>, Error>

Process and return TorEvents handled by this TorProvider.
source§

fn bootstrap(&mut self) -> Result<(), Error>

Begin connecting to the Tor Network.
source§

fn add_client_auth( &mut self, service_id: &V3OnionServiceId, client_auth: &X25519PrivateKey, -) -> Result<(), Error>

Add v3 onion-service authorisation credentials, allowing this TorProvider to connect to an onion-service whose service-descriptor is encrypted using the assocciated x25519 public key.
source§

fn remove_client_auth( +) -> Result<(), Error>

Add v3 onion-service authorisation credentials, allowing this TorProvider to connect to an onion-service whose service-descriptor is encrypted using the assocciated x25519 public key.
source§

fn remove_client_auth( &mut self, service_id: &V3OnionServiceId, -) -> Result<(), Error>

Remove a previously added client authorisation credential. This TorProvider will be unable to connect to the onion-service associated with the removed credentail.
source§

fn connect( +) -> Result<(), Error>

Remove a previously added client authorisation credential. This TorProvider will be unable to connect to the onion-service associated with the removed credentail.
source§

fn connect( &mut self, target: TargetAddr, - circuit: Option<CircuitToken>, -) -> Result<OnionStream, Error>

Anonymously connect to the address specified by target over the Tor Network and return the associated OnionStream. Read more
source§

fn listener( + circuit: Option<CircuitToken>, +) -> Result<OnionStream, Error>

Anonymously connect to the address specified by target over the Tor Network and return the associated OnionStream. Read more
source§

fn listener( &mut self, private_key: &Ed25519PrivateKey, - virt_port: u16, - authorized_clients: Option<&[X25519PublicKey]>, -) -> Result<OnionListener, Error>

Anonymously start an onion-service and return the associated OnionListener. Read more
source§

fn generate_token(&mut self) -> CircuitToken

Create a new CircuitToken.
source§

fn release_token(&mut self, circuit_token: CircuitToken)

Releaes a previously generated CircuitToken.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where - T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where + virt_port: u16, + authorized_clients: Option<&[X25519PublicKey]>, +) -> Result<OnionListener, Error>

Anonymously start an onion-service and return the associated OnionListener. Read more
source§

fn generate_token(&mut self) -> CircuitToken

Create a new CircuitToken.
source§

fn release_token(&mut self, circuit_token: CircuitToken)

Releaes a previously generated CircuitToken.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, - constructed: bool, - tag: u32, -) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where - 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 + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where + 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
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
§

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 + 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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +function.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T

\ No newline at end of file diff --git a/crates/tor_interface/legacy_tor_version/enum.Error.html b/crates/tor_interface/legacy_tor_version/enum.Error.html index b1f634a3..011955b9 100644 --- a/crates/tor_interface/legacy_tor_version/enum.Error.html +++ b/crates/tor_interface/legacy_tor_version/enum.Error.html @@ -1,128 +1,128 @@ -Error in tor_interface::legacy_tor_version - Rust

Enum tor_interface::legacy_tor_version::Error

source ·
pub enum Error {
-    ParseError(String),
+Error in tor_interface::legacy_tor_version - Rust

Enum tor_interface::legacy_tor_version::Error

source ·
pub enum Error {
+    ParseError(String),
 }
Expand description

LegacyTorVersion-specific error type

-

Variants§

§

ParseError(String)

Trait Implementations§

source§

impl Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Error

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for Error

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more

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> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where - T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where +

Variants§

§

ParseError(String)

Trait Implementations§

source§

impl Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Error

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for Error

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more

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> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, - constructed: bool, - tag: u32, -) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where - 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 + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where + 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
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
§

impl<E> ErrorReport for E
where - E: Error + 'static,

§

fn report(&self) -> Report<ReportHelper<'_>>

Return an object that displays the error and its causes
§

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 + E: Error + 'static,
§

fn report(&self) -> Report<ReportHelper<'_>>

Return an object that displays the error and its causes
§

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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
source§

impl<T> ToString for T
where - T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> TryIntoSlug for T
where - T: ToString + ?Sized,

§

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 T
where +function.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
source§

impl<T> ToString for T
where + T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> TryIntoSlug for T
where + T: ToString + ?Sized,

§

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 T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T

\ No newline at end of file diff --git a/crates/tor_interface/legacy_tor_version/index.html b/crates/tor_interface/legacy_tor_version/index.html index f0e80f57..ffc94684 100644 --- a/crates/tor_interface/legacy_tor_version/index.html +++ b/crates/tor_interface/legacy_tor_version/index.html @@ -1,2 +1,2 @@ -tor_interface::legacy_tor_version - Rust

Module tor_interface::legacy_tor_version

source ·
Expand description

Legacy c-tor daemon version.

-

Structs§

Enums§

  • LegacyTorVersion-specific error type
\ No newline at end of file +tor_interface::legacy_tor_version - Rust

Module tor_interface::legacy_tor_version

source ·
Expand description

Legacy c-tor daemon version.

+

Structs§

Enums§

  • LegacyTorVersion-specific error type
\ No newline at end of file diff --git a/crates/tor_interface/legacy_tor_version/struct.LegacyTorVersion.html b/crates/tor_interface/legacy_tor_version/struct.LegacyTorVersion.html index b4581560..4aaf5774 100644 --- a/crates/tor_interface/legacy_tor_version/struct.LegacyTorVersion.html +++ b/crates/tor_interface/legacy_tor_version/struct.LegacyTorVersion.html @@ -1,138 +1,138 @@ -LegacyTorVersion in tor_interface::legacy_tor_version - Rust
pub struct LegacyTorVersion { /* private fields */ }
Expand description

Type representing a legacy c-tor daemon’s version number. This version conforms c-tor’s version-spec.

+LegacyTorVersion in tor_interface::legacy_tor_version - Rust
pub struct LegacyTorVersion { /* private fields */ }
Expand description

Type representing a legacy c-tor daemon’s version number. This version conforms c-tor’s version-spec.

Implementations§

source§

impl LegacyTorVersion

source

pub fn new( - major: u32, - minor: u32, - micro: u32, - patch_level: Option<u32>, - status_tag: Option<&str>, -) -> Result<LegacyTorVersion, Error>

Construct a new LegacyTorVersion object.

-

Trait Implementations§

source§

impl Clone for LegacyTorVersion

source§

fn clone(&self) -> LegacyTorVersion

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl FromStr for LegacyTorVersion

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<LegacyTorVersion, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl PartialEq for LegacyTorVersion

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for LegacyTorVersion

source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= -operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl ToString for LegacyTorVersion

source§

fn to_string(&self) -> String

Converts the given value to a String. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where - T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where + major: u32, + minor: u32, + micro: u32, + patch_level: Option<u32>, + status_tag: Option<&str>, +) -> Result<LegacyTorVersion, Error>

Construct a new LegacyTorVersion object.

+

Trait Implementations§

source§

impl Clone for LegacyTorVersion

source§

fn clone(&self) -> LegacyTorVersion

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl FromStr for LegacyTorVersion

source§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<LegacyTorVersion, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl PartialEq for LegacyTorVersion

source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
source§

impl PartialOrd for LegacyTorVersion

source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the +<= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > +operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by +the >= operator. Read more
source§

impl ToString for LegacyTorVersion

source§

fn to_string(&self) -> String

Converts the given value to a String. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, - constructed: bool, - tag: u32, -) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where - T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where - 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 + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where + 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
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

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 + T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> TryIntoSlug for T
where - T: ToString + ?Sized,

§

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 T
where +function.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
source§

impl<T> ToOwned for T
where + T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> TryIntoSlug for T
where + T: ToString + ?Sized,

§

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 T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T

\ No newline at end of file diff --git a/crates/tor_interface/mock_tor_client/enum.Error.html b/crates/tor_interface/mock_tor_client/enum.Error.html index 8f1a9db9..42a1d44d 100644 --- a/crates/tor_interface/mock_tor_client/enum.Error.html +++ b/crates/tor_interface/mock_tor_client/enum.Error.html @@ -1,137 +1,137 @@ -Error in tor_interface::mock_tor_client - Rust

Enum tor_interface::mock_tor_client::Error

source ·
pub enum Error {
+Error in tor_interface::mock_tor_client - Rust

Enum tor_interface::mock_tor_client::Error

source ·
pub enum Error {
     ClientNotBootstrapped(),
     ClientAlreadyBootstrapped(),
     OnionServiceNotFound(OnionAddr),
     OnionServiceNotPublished(OnionAddr),
     OnionServiceRequiresOnionAuth(),
     OnionServiceAuthInvalid(),
-    TcpListenerBindFailed(Error),
-    TcpListenerLocalAddrFailed(Error),
+    TcpListenerBindFailed(Error),
+    TcpListenerLocalAddrFailed(Error),
     ConnectFailed(TargetAddr),
     NotImplemented(),
 }
Expand description

MockTorClient-specific error type

-

Variants§

§

ClientNotBootstrapped()

§

ClientAlreadyBootstrapped()

§

OnionServiceNotFound(OnionAddr)

§

OnionServiceNotPublished(OnionAddr)

§

OnionServiceRequiresOnionAuth()

§

OnionServiceAuthInvalid()

§

TcpListenerBindFailed(Error)

§

TcpListenerLocalAddrFailed(Error)

§

ConnectFailed(TargetAddr)

§

NotImplemented()

Trait Implementations§

source§

impl Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Error

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for Error

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Error> for Error

source§

fn from(error: Error) -> Self

Converts to this type from the input type.

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> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where - T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where +

Variants§

§

ClientNotBootstrapped()

§

ClientAlreadyBootstrapped()

§

OnionServiceNotFound(OnionAddr)

§

OnionServiceNotPublished(OnionAddr)

§

OnionServiceRequiresOnionAuth()

§

OnionServiceAuthInvalid()

§

TcpListenerBindFailed(Error)

§

TcpListenerLocalAddrFailed(Error)

§

ConnectFailed(TargetAddr)

§

NotImplemented()

Trait Implementations§

source§

impl Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Error

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for Error

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
source§

impl From<Error> for Error

source§

fn from(error: Error) -> Self

Converts to this type from the input type.

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> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, - constructed: bool, - tag: u32, -) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where - 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 + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where + 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
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
§

impl<E> ErrorReport for E
where - E: Error + 'static,

§

fn report(&self) -> Report<ReportHelper<'_>>

Return an object that displays the error and its causes
§

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 + E: Error + 'static,
§

fn report(&self) -> Report<ReportHelper<'_>>

Return an object that displays the error and its causes
§

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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
source§

impl<T> ToString for T
where - T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> TryIntoSlug for T
where - T: ToString + ?Sized,

§

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 T
where +function.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
source§

impl<T> ToString for T
where + T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> TryIntoSlug for T
where + T: ToString + ?Sized,

§

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 T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T

\ No newline at end of file diff --git a/crates/tor_interface/mock_tor_client/index.html b/crates/tor_interface/mock_tor_client/index.html index 7c98b6ae..98aadfd4 100644 --- a/crates/tor_interface/mock_tor_client/index.html +++ b/crates/tor_interface/mock_tor_client/index.html @@ -1,2 +1,2 @@ -tor_interface::mock_tor_client - Rust

Module tor_interface::mock_tor_client

source ·
Expand description

Implementation of a local, in-process, mock TorProvider for testing.

-

Structs§

Enums§

\ No newline at end of file +tor_interface::mock_tor_client - Rust

Module tor_interface::mock_tor_client

source ·
Expand description

Implementation of a local, in-process, mock TorProvider for testing.

+

Structs§

Enums§

\ No newline at end of file diff --git a/crates/tor_interface/mock_tor_client/struct.MockTorClient.html b/crates/tor_interface/mock_tor_client/struct.MockTorClient.html index aab34483..6367c94f 100644 --- a/crates/tor_interface/mock_tor_client/struct.MockTorClient.html +++ b/crates/tor_interface/mock_tor_client/struct.MockTorClient.html @@ -1,142 +1,142 @@ -MockTorClient in tor_interface::mock_tor_client - Rust

Struct tor_interface::mock_tor_client::MockTorClient

source ·
pub struct MockTorClient { /* private fields */ }
Expand description

A mock TorProvider implementation for testing.

+MockTorClient in tor_interface::mock_tor_client - Rust

Struct tor_interface::mock_tor_client::MockTorClient

source ·
pub struct MockTorClient { /* private fields */ }
Expand description

A mock TorProvider implementation for testing.

MockTorClient implements the TorProvider trait. It creates a fake, in-process Tor Network using local socekts and listeners. No actual traffic ever leaves the local host.

Mock onion-services can be created, connected to, and communiccated with. Connecting to clearnet targets always succeeds by connecting to single local endpoint, but will never send any traffic to connecting clients.

Implementations§

source§

impl MockTorClient

source

pub fn new() -> MockTorClient

Construt a new MockTorClient.

-

Trait Implementations§

source§

impl Default for MockTorClient

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl Drop for MockTorClient

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl TorProvider for MockTorClient

source§

fn update(&mut self) -> Result<Vec<TorEvent>, Error>

Process and return TorEvents handled by this TorProvider.
source§

fn bootstrap(&mut self) -> Result<(), Error>

Begin connecting to the Tor Network.
source§

fn add_client_auth( +

Trait Implementations§

source§

impl Default for MockTorClient

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl Drop for MockTorClient

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl TorProvider for MockTorClient

source§

fn update(&mut self) -> Result<Vec<TorEvent>, Error>

Process and return TorEvents handled by this TorProvider.
source§

fn bootstrap(&mut self) -> Result<(), Error>

Begin connecting to the Tor Network.
source§

fn add_client_auth( &mut self, service_id: &V3OnionServiceId, client_auth: &X25519PrivateKey, -) -> Result<(), Error>

Add v3 onion-service authorisation credentials, allowing this TorProvider to connect to an onion-service whose service-descriptor is encrypted using the assocciated x25519 public key.
source§

fn remove_client_auth( +) -> Result<(), Error>

Add v3 onion-service authorisation credentials, allowing this TorProvider to connect to an onion-service whose service-descriptor is encrypted using the assocciated x25519 public key.
source§

fn remove_client_auth( &mut self, service_id: &V3OnionServiceId, -) -> Result<(), Error>

Remove a previously added client authorisation credential. This TorProvider will be unable to connect to the onion-service associated with the removed credentail.
source§

fn connect( +) -> Result<(), Error>

Remove a previously added client authorisation credential. This TorProvider will be unable to connect to the onion-service associated with the removed credentail.
source§

fn connect( &mut self, target: TargetAddr, - _circuit: Option<CircuitToken>, -) -> Result<OnionStream, Error>

Anonymously connect to the address specified by target over the Tor Network and return the associated OnionStream. Read more
source§

fn listener( + _circuit: Option<CircuitToken>, +) -> Result<OnionStream, Error>

Anonymously connect to the address specified by target over the Tor Network and return the associated OnionStream. Read more
source§

fn listener( &mut self, private_key: &Ed25519PrivateKey, - virt_port: u16, - authorized_clients: Option<&[X25519PublicKey]>, -) -> Result<OnionListener, Error>

Anonymously start an onion-service and return the associated OnionListener. Read more
source§

fn generate_token(&mut self) -> CircuitToken

Create a new CircuitToken.
source§

fn release_token(&mut self, _token: CircuitToken)

Releaes a previously generated CircuitToken.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where - T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where + virt_port: u16, + authorized_clients: Option<&[X25519PublicKey]>, +) -> Result<OnionListener, Error>

Anonymously start an onion-service and return the associated OnionListener. Read more
source§

fn generate_token(&mut self) -> CircuitToken

Create a new CircuitToken.
source§

fn release_token(&mut self, _token: CircuitToken)

Releaes a previously generated CircuitToken.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, - constructed: bool, - tag: u32, -) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where - 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 + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where + 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
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
§

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 + 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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +function.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T

\ No newline at end of file diff --git a/crates/tor_interface/proxy/enum.ProxyConfig.html b/crates/tor_interface/proxy/enum.ProxyConfig.html index 98ef216f..1b3c74ef 100644 --- a/crates/tor_interface/proxy/enum.ProxyConfig.html +++ b/crates/tor_interface/proxy/enum.ProxyConfig.html @@ -1,4 +1,4 @@ -ProxyConfig in tor_interface::proxy - Rust

Enum tor_interface::proxy::ProxyConfig

source ·
pub enum ProxyConfig {
+ProxyConfig in tor_interface::proxy - Rust

Enum tor_interface::proxy::ProxyConfig

source ·
pub enum ProxyConfig {
     Socks4(Socks4ProxyConfig),
     Socks5(Socks5ProxyConfig),
     Https(HttpsProxyConfig),
@@ -6,128 +6,128 @@
 

Variants§

§

Socks4(Socks4ProxyConfig)

A SOCKS4 proxy

§

Socks5(Socks5ProxyConfig)

A SOCKS5 proxy

§

Https(HttpsProxyConfig)

An HTTP CONNECT proxy

-

Trait Implementations§

source§

impl Clone for ProxyConfig

source§

fn clone(&self) -> ProxyConfig

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ProxyConfig

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<HttpsProxyConfig> for ProxyConfig

source§

fn from(config: HttpsProxyConfig) -> Self

Converts to this type from the input type.
source§

impl From<Socks4ProxyConfig> for ProxyConfig

source§

fn from(config: Socks4ProxyConfig) -> Self

Converts to this type from the input type.
source§

impl From<Socks5ProxyConfig> for ProxyConfig

source§

fn from(config: Socks5ProxyConfig) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where - T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where +

Trait Implementations§

source§

impl Clone for ProxyConfig

source§

fn clone(&self) -> ProxyConfig

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ProxyConfig

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<HttpsProxyConfig> for ProxyConfig

source§

fn from(config: HttpsProxyConfig) -> Self

Converts to this type from the input type.
source§

impl From<Socks4ProxyConfig> for ProxyConfig

source§

fn from(config: Socks4ProxyConfig) -> Self

Converts to this type from the input type.
source§

impl From<Socks5ProxyConfig> for ProxyConfig

source§

fn from(config: Socks5ProxyConfig) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, - constructed: bool, - tag: u32, -) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where - T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where - 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 + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where + 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
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

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 + T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +function.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
source§

impl<T> ToOwned for T
where + T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T

\ No newline at end of file diff --git a/crates/tor_interface/proxy/enum.ProxyConfigError.html b/crates/tor_interface/proxy/enum.ProxyConfigError.html index b61a46da..d727c8a5 100644 --- a/crates/tor_interface/proxy/enum.ProxyConfigError.html +++ b/crates/tor_interface/proxy/enum.ProxyConfigError.html @@ -1,129 +1,129 @@ -ProxyConfigError in tor_interface::proxy - Rust

Enum tor_interface::proxy::ProxyConfigError

source ·
pub enum ProxyConfigError {
-    Generic(String),
+ProxyConfigError in tor_interface::proxy - Rust

Enum tor_interface::proxy::ProxyConfigError

source ·
pub enum ProxyConfigError {
+    Generic(String),
 }
Expand description

Error type for the proxy module

-

Variants§

§

Generic(String)

An error returned when constructing a proxy configuration with invalid parameters

-

Trait Implementations§

source§

impl Debug for ProxyConfigError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for ProxyConfigError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for ProxyConfigError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where - T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where +

Variants§

§

Generic(String)

An error returned when constructing a proxy configuration with invalid parameters

+

Trait Implementations§

source§

impl Debug for ProxyConfigError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for ProxyConfigError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for ProxyConfigError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, - constructed: bool, - tag: u32, -) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where - 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 + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where + 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
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
§

impl<E> ErrorReport for E
where - E: Error + 'static,

§

fn report(&self) -> Report<ReportHelper<'_>>

Return an object that displays the error and its causes
§

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 + E: Error + 'static,
§

fn report(&self) -> Report<ReportHelper<'_>>

Return an object that displays the error and its causes
§

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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
source§

impl<T> ToString for T
where - T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> TryIntoSlug for T
where - T: ToString + ?Sized,

§

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 T
where +function.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
source§

impl<T> ToString for T
where + T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> TryIntoSlug for T
where + T: ToString + ?Sized,

§

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 T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T

\ No newline at end of file diff --git a/crates/tor_interface/proxy/index.html b/crates/tor_interface/proxy/index.html index a75ce0f7..6d6a93e4 100644 --- a/crates/tor_interface/proxy/index.html +++ b/crates/tor_interface/proxy/index.html @@ -1,2 +1,2 @@ -tor_interface::proxy - Rust

Module tor_interface::proxy

source ·
Expand description

Proxy settings

-

Structs§

Enums§

  • An enum representing a possible proxy server configuration with address and possible credentials.
  • Error type for the proxy module
\ No newline at end of file +tor_interface::proxy - Rust

Module tor_interface::proxy

source ·
Expand description

Proxy settings

+

Structs§

Enums§

  • An enum representing a possible proxy server configuration with address and possible credentials.
  • Error type for the proxy module
\ No newline at end of file diff --git a/crates/tor_interface/proxy/struct.HttpsProxyConfig.html b/crates/tor_interface/proxy/struct.HttpsProxyConfig.html index eb54b0e2..431ca369 100644 --- a/crates/tor_interface/proxy/struct.HttpsProxyConfig.html +++ b/crates/tor_interface/proxy/struct.HttpsProxyConfig.html @@ -1,131 +1,131 @@ -HttpsProxyConfig in tor_interface::proxy - Rust

Struct tor_interface::proxy::HttpsProxyConfig

source ·
pub struct HttpsProxyConfig { /* private fields */ }
Expand description

Configuration for an HTTP CONNECT proxy (HTTPSProxy in c-tor torrc configuration)

+HttpsProxyConfig in tor_interface::proxy - Rust

Struct tor_interface::proxy::HttpsProxyConfig

source ·
pub struct HttpsProxyConfig { /* private fields */ }
Expand description

Configuration for an HTTP CONNECT proxy (HTTPSProxy in c-tor torrc configuration)

Implementations§

source§

impl HttpsProxyConfig

source

pub fn new( address: TargetAddr, - username: Option<String>, - password: Option<String>, -) -> Result<Self, ProxyConfigError>

Construct a new HttpsProxyConfig. The address argument must not be a crate::tor_provider::TargetAddr::OnionService and its port must not be 0. The username argument, if present, must not contain the : (colon) character.

-

Trait Implementations§

source§

impl Clone for HttpsProxyConfig

source§

fn clone(&self) -> HttpsProxyConfig

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for HttpsProxyConfig

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<HttpsProxyConfig> for ProxyConfig

source§

fn from(config: HttpsProxyConfig) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where - T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where + username: Option<String>, + password: Option<String>, +) -> Result<Self, ProxyConfigError>

Construct a new HttpsProxyConfig. The address argument must not be a crate::tor_provider::TargetAddr::OnionService and its port must not be 0. The username argument, if present, must not contain the : (colon) character.

+

Trait Implementations§

source§

impl Clone for HttpsProxyConfig

source§

fn clone(&self) -> HttpsProxyConfig

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for HttpsProxyConfig

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<HttpsProxyConfig> for ProxyConfig

source§

fn from(config: HttpsProxyConfig) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, - constructed: bool, - tag: u32, -) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where - T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where - 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 + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where + 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
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

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 + T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +function.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
source§

impl<T> ToOwned for T
where + T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T

\ No newline at end of file diff --git a/crates/tor_interface/proxy/struct.Socks4ProxyConfig.html b/crates/tor_interface/proxy/struct.Socks4ProxyConfig.html index 0c9adc3f..86509971 100644 --- a/crates/tor_interface/proxy/struct.Socks4ProxyConfig.html +++ b/crates/tor_interface/proxy/struct.Socks4ProxyConfig.html @@ -1,127 +1,127 @@ -Socks4ProxyConfig in tor_interface::proxy - Rust

Struct tor_interface::proxy::Socks4ProxyConfig

source ·
pub struct Socks4ProxyConfig { /* private fields */ }
Expand description

Configuration for a SOCKS4 proxy

-

Implementations§

source§

impl Socks4ProxyConfig

source

pub fn new(address: TargetAddr) -> Result<Self, ProxyConfigError>

Construct a new Socks4ProxyConfig. The address argument must not be a crate::tor_provider::TargetAddr::OnionService and its port must not be 0.

-

Trait Implementations§

source§

impl Clone for Socks4ProxyConfig

source§

fn clone(&self) -> Socks4ProxyConfig

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Socks4ProxyConfig

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<Socks4ProxyConfig> for ProxyConfig

source§

fn from(config: Socks4ProxyConfig) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where - T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where +Socks4ProxyConfig in tor_interface::proxy - Rust

Struct tor_interface::proxy::Socks4ProxyConfig

source ·
pub struct Socks4ProxyConfig { /* private fields */ }
Expand description

Configuration for a SOCKS4 proxy

+

Implementations§

source§

impl Socks4ProxyConfig

source

pub fn new(address: TargetAddr) -> Result<Self, ProxyConfigError>

Construct a new Socks4ProxyConfig. The address argument must not be a crate::tor_provider::TargetAddr::OnionService and its port must not be 0.

+

Trait Implementations§

source§

impl Clone for Socks4ProxyConfig

source§

fn clone(&self) -> Socks4ProxyConfig

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Socks4ProxyConfig

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<Socks4ProxyConfig> for ProxyConfig

source§

fn from(config: Socks4ProxyConfig) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, - constructed: bool, - tag: u32, -) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where - T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where - 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 + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where + 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
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

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 + T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +function.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
source§

impl<T> ToOwned for T
where + T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T

\ No newline at end of file diff --git a/crates/tor_interface/proxy/struct.Socks5ProxyConfig.html b/crates/tor_interface/proxy/struct.Socks5ProxyConfig.html index 7f44baec..9bdf48bb 100644 --- a/crates/tor_interface/proxy/struct.Socks5ProxyConfig.html +++ b/crates/tor_interface/proxy/struct.Socks5ProxyConfig.html @@ -1,131 +1,131 @@ -Socks5ProxyConfig in tor_interface::proxy - Rust

Struct tor_interface::proxy::Socks5ProxyConfig

source ·
pub struct Socks5ProxyConfig { /* private fields */ }
Expand description

Configuration for a SOCKS5 proxy

+Socks5ProxyConfig in tor_interface::proxy - Rust

Struct tor_interface::proxy::Socks5ProxyConfig

source ·
pub struct Socks5ProxyConfig { /* private fields */ }
Expand description

Configuration for a SOCKS5 proxy

Implementations§

source§

impl Socks5ProxyConfig

source

pub fn new( address: TargetAddr, - username: Option<String>, - password: Option<String>, -) -> Result<Self, ProxyConfigError>

Construct a new Socks5ProxyConfig. The address argument must not be a crate::tor_provider::TargetAddr::OnionService and its port must not be 0. The username and password arguments, if present, must each be less than 256 bytes long.

-

Trait Implementations§

source§

impl Clone for Socks5ProxyConfig

source§

fn clone(&self) -> Socks5ProxyConfig

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Socks5ProxyConfig

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<Socks5ProxyConfig> for ProxyConfig

source§

fn from(config: Socks5ProxyConfig) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where - T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where + username: Option<String>, + password: Option<String>, +) -> Result<Self, ProxyConfigError>

Construct a new Socks5ProxyConfig. The address argument must not be a crate::tor_provider::TargetAddr::OnionService and its port must not be 0. The username and password arguments, if present, must each be less than 256 bytes long.

+

Trait Implementations§

source§

impl Clone for Socks5ProxyConfig

source§

fn clone(&self) -> Socks5ProxyConfig

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Socks5ProxyConfig

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<Socks5ProxyConfig> for ProxyConfig

source§

fn from(config: Socks5ProxyConfig) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, - constructed: bool, - tag: u32, -) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where - T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where - 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 + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where + 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
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

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 + T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +function.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
source§

impl<T> ToOwned for T
where + T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T

\ No newline at end of file diff --git a/crates/tor_interface/tor_crypto/constant.ED25519_PRIVATE_KEYBLOB_BASE64_LENGTH.html b/crates/tor_interface/tor_crypto/constant.ED25519_PRIVATE_KEYBLOB_BASE64_LENGTH.html index 746d3085..ec8c4097 100644 --- a/crates/tor_interface/tor_crypto/constant.ED25519_PRIVATE_KEYBLOB_BASE64_LENGTH.html +++ b/crates/tor_interface/tor_crypto/constant.ED25519_PRIVATE_KEYBLOB_BASE64_LENGTH.html @@ -1,2 +1,2 @@ -ED25519_PRIVATE_KEYBLOB_BASE64_LENGTH in tor_interface::tor_crypto - Rust
pub const ED25519_PRIVATE_KEYBLOB_BASE64_LENGTH: usize = 88;
Expand description

The number of bytes needed to store base64 encoded ed25519 private key as an ASCII c-string (not including null-terminator)

+ED25519_PRIVATE_KEYBLOB_BASE64_LENGTH in tor_interface::tor_crypto - Rust
pub const ED25519_PRIVATE_KEYBLOB_BASE64_LENGTH: usize = 88;
Expand description

The number of bytes needed to store base64 encoded ed25519 private key as an ASCII c-string (not including null-terminator)

\ No newline at end of file diff --git a/crates/tor_interface/tor_crypto/constant.ED25519_PRIVATE_KEY_KEYBLOB_HEADER_LENGTH.html b/crates/tor_interface/tor_crypto/constant.ED25519_PRIVATE_KEY_KEYBLOB_HEADER_LENGTH.html index 5c466d42..a5c072c0 100644 --- a/crates/tor_interface/tor_crypto/constant.ED25519_PRIVATE_KEY_KEYBLOB_HEADER_LENGTH.html +++ b/crates/tor_interface/tor_crypto/constant.ED25519_PRIVATE_KEY_KEYBLOB_HEADER_LENGTH.html @@ -1,2 +1,2 @@ -ED25519_PRIVATE_KEY_KEYBLOB_HEADER_LENGTH in tor_interface::tor_crypto - Rust
pub const ED25519_PRIVATE_KEY_KEYBLOB_HEADER_LENGTH: usize = 11;
Expand description

The number of bytes needed to store the keyblob header

+ED25519_PRIVATE_KEY_KEYBLOB_HEADER_LENGTH in tor_interface::tor_crypto - Rust
pub const ED25519_PRIVATE_KEY_KEYBLOB_HEADER_LENGTH: usize = 11;
Expand description

The number of bytes needed to store the keyblob header

\ No newline at end of file diff --git a/crates/tor_interface/tor_crypto/constant.ED25519_PRIVATE_KEY_KEYBLOB_LENGTH.html b/crates/tor_interface/tor_crypto/constant.ED25519_PRIVATE_KEY_KEYBLOB_LENGTH.html index 0c7702ab..02d1dc66 100644 --- a/crates/tor_interface/tor_crypto/constant.ED25519_PRIVATE_KEY_KEYBLOB_LENGTH.html +++ b/crates/tor_interface/tor_crypto/constant.ED25519_PRIVATE_KEY_KEYBLOB_LENGTH.html @@ -1,2 +1,2 @@ -ED25519_PRIVATE_KEY_KEYBLOB_LENGTH in tor_interface::tor_crypto - Rust
pub const ED25519_PRIVATE_KEY_KEYBLOB_LENGTH: usize = 99;
Expand description

The number of bytes needed to store ed25519 private keyblob as an ASCII c-string (not including a null terminator)

+ED25519_PRIVATE_KEY_KEYBLOB_LENGTH in tor_interface::tor_crypto - Rust
pub const ED25519_PRIVATE_KEY_KEYBLOB_LENGTH: usize = 99;
Expand description

The number of bytes needed to store ed25519 private keyblob as an ASCII c-string (not including a null terminator)

\ No newline at end of file diff --git a/crates/tor_interface/tor_crypto/constant.ED25519_PRIVATE_KEY_KEYBLOB_SIZE.html b/crates/tor_interface/tor_crypto/constant.ED25519_PRIVATE_KEY_KEYBLOB_SIZE.html index e6e5324d..c201ef91 100644 --- a/crates/tor_interface/tor_crypto/constant.ED25519_PRIVATE_KEY_KEYBLOB_SIZE.html +++ b/crates/tor_interface/tor_crypto/constant.ED25519_PRIVATE_KEY_KEYBLOB_SIZE.html @@ -1,2 +1,2 @@ -ED25519_PRIVATE_KEY_KEYBLOB_SIZE in tor_interface::tor_crypto - Rust
pub const ED25519_PRIVATE_KEY_KEYBLOB_SIZE: usize = 100;
Expand description

The number of bytes needed to store ed25519 private keyblob as an ASCII c-string (including a null terminator)

+ED25519_PRIVATE_KEY_KEYBLOB_SIZE in tor_interface::tor_crypto - Rust
pub const ED25519_PRIVATE_KEY_KEYBLOB_SIZE: usize = 100;
Expand description

The number of bytes needed to store ed25519 private keyblob as an ASCII c-string (including a null terminator)

\ No newline at end of file diff --git a/crates/tor_interface/tor_crypto/constant.ED25519_PRIVATE_KEY_SIZE.html b/crates/tor_interface/tor_crypto/constant.ED25519_PRIVATE_KEY_SIZE.html index 52a4cd1b..4d754864 100644 --- a/crates/tor_interface/tor_crypto/constant.ED25519_PRIVATE_KEY_SIZE.html +++ b/crates/tor_interface/tor_crypto/constant.ED25519_PRIVATE_KEY_SIZE.html @@ -1,3 +1,3 @@ -ED25519_PRIVATE_KEY_SIZE in tor_interface::tor_crypto - Rust

Constant tor_interface::tor_crypto::ED25519_PRIVATE_KEY_SIZE

source ·
pub const ED25519_PRIVATE_KEY_SIZE: usize = 64;
Expand description

The number of bytes in an ed25519 secret key +ED25519_PRIVATE_KEY_SIZE in tor_interface::tor_crypto - Rust

Constant tor_interface::tor_crypto::ED25519_PRIVATE_KEY_SIZE

source ·
pub const ED25519_PRIVATE_KEY_SIZE: usize = 64;
Expand description

The number of bytes in an ed25519 secret key cbindgen:ignore

\ No newline at end of file diff --git a/crates/tor_interface/tor_crypto/constant.ED25519_PUBLIC_KEY_SIZE.html b/crates/tor_interface/tor_crypto/constant.ED25519_PUBLIC_KEY_SIZE.html index d504938c..e8af9246 100644 --- a/crates/tor_interface/tor_crypto/constant.ED25519_PUBLIC_KEY_SIZE.html +++ b/crates/tor_interface/tor_crypto/constant.ED25519_PUBLIC_KEY_SIZE.html @@ -1,3 +1,3 @@ -ED25519_PUBLIC_KEY_SIZE in tor_interface::tor_crypto - Rust

Constant tor_interface::tor_crypto::ED25519_PUBLIC_KEY_SIZE

source ·
pub const ED25519_PUBLIC_KEY_SIZE: usize = 32;
Expand description

The number of bytes in an ed25519 public key +ED25519_PUBLIC_KEY_SIZE in tor_interface::tor_crypto - Rust

Constant tor_interface::tor_crypto::ED25519_PUBLIC_KEY_SIZE

source ·
pub const ED25519_PUBLIC_KEY_SIZE: usize = 32;
Expand description

The number of bytes in an ed25519 public key cbindgen:ignore

\ No newline at end of file diff --git a/crates/tor_interface/tor_crypto/constant.ED25519_SIGNATURE_SIZE.html b/crates/tor_interface/tor_crypto/constant.ED25519_SIGNATURE_SIZE.html index 8b5840cf..91d56b4b 100644 --- a/crates/tor_interface/tor_crypto/constant.ED25519_SIGNATURE_SIZE.html +++ b/crates/tor_interface/tor_crypto/constant.ED25519_SIGNATURE_SIZE.html @@ -1,3 +1,3 @@ -ED25519_SIGNATURE_SIZE in tor_interface::tor_crypto - Rust

Constant tor_interface::tor_crypto::ED25519_SIGNATURE_SIZE

source ·
pub const ED25519_SIGNATURE_SIZE: usize = 64;
Expand description

The number of bytes in an ed25519 signature +ED25519_SIGNATURE_SIZE in tor_interface::tor_crypto - Rust

Constant tor_interface::tor_crypto::ED25519_SIGNATURE_SIZE

source ·
pub const ED25519_SIGNATURE_SIZE: usize = 64;
Expand description

The number of bytes in an ed25519 signature cbindgen:ignore

\ No newline at end of file diff --git a/crates/tor_interface/tor_crypto/constant.V3_ONION_SERVICE_ID_STRING_LENGTH.html b/crates/tor_interface/tor_crypto/constant.V3_ONION_SERVICE_ID_STRING_LENGTH.html index 72819d2b..68b867f0 100644 --- a/crates/tor_interface/tor_crypto/constant.V3_ONION_SERVICE_ID_STRING_LENGTH.html +++ b/crates/tor_interface/tor_crypto/constant.V3_ONION_SERVICE_ID_STRING_LENGTH.html @@ -1,2 +1,2 @@ -V3_ONION_SERVICE_ID_STRING_LENGTH in tor_interface::tor_crypto - Rust
pub const V3_ONION_SERVICE_ID_STRING_LENGTH: usize = 56;
Expand description

The number of bytes needed to store onion service id as an ASCII c-string (not including null-terminator)

+V3_ONION_SERVICE_ID_STRING_LENGTH in tor_interface::tor_crypto - Rust
pub const V3_ONION_SERVICE_ID_STRING_LENGTH: usize = 56;
Expand description

The number of bytes needed to store onion service id as an ASCII c-string (not including null-terminator)

\ No newline at end of file diff --git a/crates/tor_interface/tor_crypto/constant.V3_ONION_SERVICE_ID_STRING_SIZE.html b/crates/tor_interface/tor_crypto/constant.V3_ONION_SERVICE_ID_STRING_SIZE.html index b297b302..2c1cd1f8 100644 --- a/crates/tor_interface/tor_crypto/constant.V3_ONION_SERVICE_ID_STRING_SIZE.html +++ b/crates/tor_interface/tor_crypto/constant.V3_ONION_SERVICE_ID_STRING_SIZE.html @@ -1,2 +1,2 @@ -V3_ONION_SERVICE_ID_STRING_SIZE in tor_interface::tor_crypto - Rust
pub const V3_ONION_SERVICE_ID_STRING_SIZE: usize = 57;
Expand description

The number of bytes needed to store onion service id as an ASCII c-string (including null-terminator)

+V3_ONION_SERVICE_ID_STRING_SIZE in tor_interface::tor_crypto - Rust
pub const V3_ONION_SERVICE_ID_STRING_SIZE: usize = 57;
Expand description

The number of bytes needed to store onion service id as an ASCII c-string (including null-terminator)

\ No newline at end of file diff --git a/crates/tor_interface/tor_crypto/constant.X25519_PRIVATE_KEY_BASE64_LENGTH.html b/crates/tor_interface/tor_crypto/constant.X25519_PRIVATE_KEY_BASE64_LENGTH.html index 105bbd0e..5a4427d9 100644 --- a/crates/tor_interface/tor_crypto/constant.X25519_PRIVATE_KEY_BASE64_LENGTH.html +++ b/crates/tor_interface/tor_crypto/constant.X25519_PRIVATE_KEY_BASE64_LENGTH.html @@ -1,2 +1,2 @@ -X25519_PRIVATE_KEY_BASE64_LENGTH in tor_interface::tor_crypto - Rust
pub const X25519_PRIVATE_KEY_BASE64_LENGTH: usize = 44;
Expand description

The number of bytes needed to store base64 encoded x25519 private key as an ASCII c-string (not including null-terminator)

+X25519_PRIVATE_KEY_BASE64_LENGTH in tor_interface::tor_crypto - Rust
pub const X25519_PRIVATE_KEY_BASE64_LENGTH: usize = 44;
Expand description

The number of bytes needed to store base64 encoded x25519 private key as an ASCII c-string (not including null-terminator)

\ No newline at end of file diff --git a/crates/tor_interface/tor_crypto/constant.X25519_PRIVATE_KEY_BASE64_SIZE.html b/crates/tor_interface/tor_crypto/constant.X25519_PRIVATE_KEY_BASE64_SIZE.html index 3ac02d16..edbc328c 100644 --- a/crates/tor_interface/tor_crypto/constant.X25519_PRIVATE_KEY_BASE64_SIZE.html +++ b/crates/tor_interface/tor_crypto/constant.X25519_PRIVATE_KEY_BASE64_SIZE.html @@ -1,2 +1,2 @@ -X25519_PRIVATE_KEY_BASE64_SIZE in tor_interface::tor_crypto - Rust
pub const X25519_PRIVATE_KEY_BASE64_SIZE: usize = 45;
Expand description

The number of bytes needed to store base64 encoded x25519 private key as an ASCII c-string (including a null terminator)

+X25519_PRIVATE_KEY_BASE64_SIZE in tor_interface::tor_crypto - Rust
pub const X25519_PRIVATE_KEY_BASE64_SIZE: usize = 45;
Expand description

The number of bytes needed to store base64 encoded x25519 private key as an ASCII c-string (including a null terminator)

\ No newline at end of file diff --git a/crates/tor_interface/tor_crypto/constant.X25519_PRIVATE_KEY_SIZE.html b/crates/tor_interface/tor_crypto/constant.X25519_PRIVATE_KEY_SIZE.html index 6b471298..a45b418c 100644 --- a/crates/tor_interface/tor_crypto/constant.X25519_PRIVATE_KEY_SIZE.html +++ b/crates/tor_interface/tor_crypto/constant.X25519_PRIVATE_KEY_SIZE.html @@ -1,3 +1,3 @@ -X25519_PRIVATE_KEY_SIZE in tor_interface::tor_crypto - Rust

Constant tor_interface::tor_crypto::X25519_PRIVATE_KEY_SIZE

source ·
pub const X25519_PRIVATE_KEY_SIZE: usize = 32;
Expand description

The number of bytes in an x25519 private key +X25519_PRIVATE_KEY_SIZE in tor_interface::tor_crypto - Rust

Constant tor_interface::tor_crypto::X25519_PRIVATE_KEY_SIZE

source ·
pub const X25519_PRIVATE_KEY_SIZE: usize = 32;
Expand description

The number of bytes in an x25519 private key cbindgen:ignore

\ No newline at end of file diff --git a/crates/tor_interface/tor_crypto/constant.X25519_PUBLIC_KEY_BASE32_LENGTH.html b/crates/tor_interface/tor_crypto/constant.X25519_PUBLIC_KEY_BASE32_LENGTH.html index 27de32d6..9326fe76 100644 --- a/crates/tor_interface/tor_crypto/constant.X25519_PUBLIC_KEY_BASE32_LENGTH.html +++ b/crates/tor_interface/tor_crypto/constant.X25519_PUBLIC_KEY_BASE32_LENGTH.html @@ -1,2 +1,2 @@ -X25519_PUBLIC_KEY_BASE32_LENGTH in tor_interface::tor_crypto - Rust
pub const X25519_PUBLIC_KEY_BASE32_LENGTH: usize = 52;
Expand description

The number of bytes needed to store base32 encoded x25519 public key as an ASCII c-string (not including null-terminator)

+X25519_PUBLIC_KEY_BASE32_LENGTH in tor_interface::tor_crypto - Rust
pub const X25519_PUBLIC_KEY_BASE32_LENGTH: usize = 52;
Expand description

The number of bytes needed to store base32 encoded x25519 public key as an ASCII c-string (not including null-terminator)

\ No newline at end of file diff --git a/crates/tor_interface/tor_crypto/constant.X25519_PUBLIC_KEY_BASE32_SIZE.html b/crates/tor_interface/tor_crypto/constant.X25519_PUBLIC_KEY_BASE32_SIZE.html index 1ca0e284..f063c6d7 100644 --- a/crates/tor_interface/tor_crypto/constant.X25519_PUBLIC_KEY_BASE32_SIZE.html +++ b/crates/tor_interface/tor_crypto/constant.X25519_PUBLIC_KEY_BASE32_SIZE.html @@ -1,2 +1,2 @@ -X25519_PUBLIC_KEY_BASE32_SIZE in tor_interface::tor_crypto - Rust
pub const X25519_PUBLIC_KEY_BASE32_SIZE: usize = 53;
Expand description

The number of bytes needed to store base32 encoded x25519 public key as an ASCII c-string (including a null terminator)

+X25519_PUBLIC_KEY_BASE32_SIZE in tor_interface::tor_crypto - Rust
pub const X25519_PUBLIC_KEY_BASE32_SIZE: usize = 53;
Expand description

The number of bytes needed to store base32 encoded x25519 public key as an ASCII c-string (including a null terminator)

\ No newline at end of file diff --git a/crates/tor_interface/tor_crypto/constant.X25519_PUBLIC_KEY_SIZE.html b/crates/tor_interface/tor_crypto/constant.X25519_PUBLIC_KEY_SIZE.html index d70cea52..a81e0230 100644 --- a/crates/tor_interface/tor_crypto/constant.X25519_PUBLIC_KEY_SIZE.html +++ b/crates/tor_interface/tor_crypto/constant.X25519_PUBLIC_KEY_SIZE.html @@ -1,3 +1,3 @@ -X25519_PUBLIC_KEY_SIZE in tor_interface::tor_crypto - Rust

Constant tor_interface::tor_crypto::X25519_PUBLIC_KEY_SIZE

source ·
pub const X25519_PUBLIC_KEY_SIZE: usize = 32;
Expand description

The number of bytes in an x25519 publickey +X25519_PUBLIC_KEY_SIZE in tor_interface::tor_crypto - Rust

Constant tor_interface::tor_crypto::X25519_PUBLIC_KEY_SIZE

source ·
pub const X25519_PUBLIC_KEY_SIZE: usize = 32;
Expand description

The number of bytes in an x25519 publickey cbindgen:ignore

\ No newline at end of file diff --git a/crates/tor_interface/tor_crypto/enum.Error.html b/crates/tor_interface/tor_crypto/enum.Error.html index 68c7010e..cdbd2068 100644 --- a/crates/tor_interface/tor_crypto/enum.Error.html +++ b/crates/tor_interface/tor_crypto/enum.Error.html @@ -1,133 +1,133 @@ -Error in tor_interface::tor_crypto - Rust

Enum tor_interface::tor_crypto::Error

source ·
pub enum Error {
-    ParseError(String),
-    ConversionError(String),
+Error in tor_interface::tor_crypto - Rust

Enum tor_interface::tor_crypto::Error

source ·
pub enum Error {
+    ParseError(String),
+    ConversionError(String),
     KeyInvalid,
 }
Expand description

Represents various errors that can occur in the tor_crypto module.

-

Variants§

§

ParseError(String)

A error encountered converting a String to a tor_crypto type

-
§

ConversionError(String)

An error encountered converting between tor_crypto types

+

Variants§

§

ParseError(String)

A error encountered converting a String to a tor_crypto type

+
§

ConversionError(String)

An error encountered converting between tor_crypto types

§

KeyInvalid

An error encountered converting from a raw byte representation

-

Trait Implementations§

source§

impl Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Error

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for Error

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more

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> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where - T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where +

Trait Implementations§

source§

impl Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Error

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for Error

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more

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> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, - constructed: bool, - tag: u32, -) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where - 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 + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where + 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
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
§

impl<E> ErrorReport for E
where - E: Error + 'static,

§

fn report(&self) -> Report<ReportHelper<'_>>

Return an object that displays the error and its causes
§

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 + E: Error + 'static,
§

fn report(&self) -> Report<ReportHelper<'_>>

Return an object that displays the error and its causes
§

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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
source§

impl<T> ToString for T
where - T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> TryIntoSlug for T
where - T: ToString + ?Sized,

§

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 T
where +function.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
source§

impl<T> ToString for T
where + T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> TryIntoSlug for T
where + T: ToString + ?Sized,

§

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 T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T

\ No newline at end of file diff --git a/crates/tor_interface/tor_crypto/enum.SignBit.html b/crates/tor_interface/tor_crypto/enum.SignBit.html index 46527642..9d7d7b8f 100644 --- a/crates/tor_interface/tor_crypto/enum.SignBit.html +++ b/crates/tor_interface/tor_crypto/enum.SignBit.html @@ -1,130 +1,129 @@ -SignBit in tor_interface::tor_crypto - Rust

Enum tor_interface::tor_crypto::SignBit

source ·
pub enum SignBit {
+SignBit in tor_interface::tor_crypto - Rust

Enum tor_interface::tor_crypto::SignBit

source ·
pub enum SignBit {
     Zero,
     One,
 }
Expand description

An enum representing a single bit

-

Variants§

§

Zero

§

One

Trait Implementations§

source§

impl Clone for SignBit

source§

fn clone(&self) -> SignBit

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl From<SignBit> for bool

source§

fn from(signbit: SignBit) -> Self

Converts to this type from the input type.
source§

impl From<SignBit> for u8

source§

fn from(signbit: SignBit) -> Self

Converts to this type from the input type.
source§

impl From<bool> for SignBit

source§

fn from(signbit: bool) -> Self

Converts to this type from the input type.
source§

impl Copy for SignBit

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where - T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where +

Variants§

§

Zero

§

One

Trait Implementations§

source§

impl Clone for SignBit

source§

fn clone(&self) -> SignBit

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl From<SignBit> for bool

source§

fn from(signbit: SignBit) -> Self

Converts to this type from the input type.
source§

impl From<SignBit> for u8

source§

fn from(signbit: SignBit) -> Self

Converts to this type from the input type.
source§

impl From<bool> for SignBit

source§

fn from(signbit: bool) -> Self

Converts to this type from the input type.
source§

impl Copy for SignBit

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, - constructed: bool, - tag: u32, -) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where - T: Copy,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> CloneToUninit for T
where - T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where - 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 + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where + 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
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

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 + T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +function.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
source§

impl<T> ToOwned for T
where + T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T

\ No newline at end of file diff --git a/crates/tor_interface/tor_crypto/index.html b/crates/tor_interface/tor_crypto/index.html index f39b4ae7..84fdb336 100644 --- a/crates/tor_interface/tor_crypto/index.html +++ b/crates/tor_interface/tor_crypto/index.html @@ -1,7 +1,7 @@ -tor_interface::tor_crypto - Rust

Module tor_interface::tor_crypto

source ·
Expand description

Tor-specific cryptographic primitives, operations, and conversion functions.

-

Structs§

Enums§

  • Represents various errors that can occur in the tor_crypto module.
  • An enum representing a single bit

Constants§

Trait Implementations§

source§

impl Clone for Ed25519PrivateKey

source§

fn clone(&self) -> Ed25519PrivateKey

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Ed25519PrivateKey

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for Ed25519PrivateKey

source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, - constructed: bool, - tag: u32, -) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where - T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where - 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 + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where + 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
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

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 + T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +function.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
source§

impl<T> ToOwned for T
where + T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T

\ No newline at end of file diff --git a/crates/tor_interface/tor_crypto/struct.Ed25519PublicKey.html b/crates/tor_interface/tor_crypto/struct.Ed25519PublicKey.html index 1f26f461..9c12f01d 100644 --- a/crates/tor_interface/tor_crypto/struct.Ed25519PublicKey.html +++ b/crates/tor_interface/tor_crypto/struct.Ed25519PublicKey.html @@ -1,136 +1,135 @@ -Ed25519PublicKey in tor_interface::tor_crypto - Rust

Struct tor_interface::tor_crypto::Ed25519PublicKey

source ·
pub struct Ed25519PublicKey { /* private fields */ }
Expand description

An ed25519 public key.

+Ed25519PublicKey in tor_interface::tor_crypto - Rust

Struct tor_interface::tor_crypto::Ed25519PublicKey

source ·
pub struct Ed25519PublicKey { /* private fields */ }
Expand description

An ed25519 public key.

This key type is derived from Ed25519PrivateKey and can be converted to a V3OnionServiceId. It can also be used to verify a Ed25519Signature.

Implementations§

source§

impl Ed25519PublicKey

A wrapper around tor_llcrypto::pk::ed25519::PublicKey

-
source

pub fn from_raw(raw: &[u8; 32]) -> Result<Ed25519PublicKey, Error>

Construct an Ed25519PublicKey from an array of bytes. Not all byte buffers of the required size can create a valid Ed25519PublicKey. Only buffers derived from Ed25519PublicKey::as_bytes() are required to convert correctly.

+
source

pub fn from_raw(raw: &[u8; 32]) -> Result<Ed25519PublicKey, Error>

Construct an Ed25519PublicKey from an array of bytes. Not all byte buffers of the required size can create a valid Ed25519PublicKey. Only buffers derived from Ed25519PublicKey::as_bytes() are required to convert correctly.

source

pub fn from_service_id( service_id: &V3OnionServiceId, -) -> Result<Ed25519PublicKey, Error>

Construct an Ed25519PublicKey from a V3OnionServiceId.

+) -> Result<Ed25519PublicKey, Error>

Construct an Ed25519PublicKey from a V3OnionServiceId.

source

pub fn from_private_key(private_key: &Ed25519PrivateKey) -> Ed25519PublicKey

Construct an Ed25519PublicKey from an Ed25519PrivateKey.

-
source

pub fn as_bytes(&self) -> &[u8; 32]

View this public key as an array of bytes

-

Trait Implementations§

source§

impl Clone for Ed25519PublicKey

source§

fn clone(&self) -> Ed25519PublicKey

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Ed25519PublicKey

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for Ed25519PublicKey

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where - T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where +

source

pub fn as_bytes(&self) -> &[u8; 32]

View this public key as an array of bytes

+

Trait Implementations§

source§

impl Clone for Ed25519PublicKey

source§

fn clone(&self) -> Ed25519PublicKey

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Ed25519PublicKey

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for Ed25519PublicKey

source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, - constructed: bool, - tag: u32, -) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where - T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where - 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 + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where + 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
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

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 + T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +function.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
source§

impl<T> ToOwned for T
where + T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T

\ No newline at end of file diff --git a/crates/tor_interface/tor_crypto/struct.Ed25519Signature.html b/crates/tor_interface/tor_crypto/struct.Ed25519Signature.html index 8a788b6b..c0d62921 100644 --- a/crates/tor_interface/tor_crypto/struct.Ed25519Signature.html +++ b/crates/tor_interface/tor_crypto/struct.Ed25519Signature.html @@ -1,138 +1,137 @@ -Ed25519Signature in tor_interface::tor_crypto - Rust

Struct tor_interface::tor_crypto::Ed25519Signature

source ·
pub struct Ed25519Signature { /* private fields */ }
Expand description

An ed25519 cryptographic signature

+Ed25519Signature in tor_interface::tor_crypto - Rust

Struct tor_interface::tor_crypto::Ed25519Signature

source ·
pub struct Ed25519Signature { /* private fields */ }
Expand description

An ed25519 cryptographic signature

Implementations§

source§

impl Ed25519Signature

A wrapper around tor_llcrypto::pk::ed25519::Signature

-
source

pub fn from_raw(raw: &[u8; 64]) -> Result<Ed25519Signature, Error>

Construct an Ed25519Signature from an array of bytes.

-
source

pub fn verify(&self, message: &[u8], public_key: &Ed25519PublicKey) -> bool

Verify this Ed25519Signature for the given message and Ed25519PublicKey.

+
source

pub fn from_raw(raw: &[u8; 64]) -> Result<Ed25519Signature, Error>

Construct an Ed25519Signature from an array of bytes.

+
source

pub fn verify(&self, message: &[u8], public_key: &Ed25519PublicKey) -> bool

Verify this Ed25519Signature for the given message and Ed25519PublicKey.

source

pub fn verify_x25519( &self, - message: &[u8], + message: &[u8], public_key: &X25519PublicKey, signbit: SignBit, -) -> bool

Verify this Ed25519Signature for the given message, X25519PublicKey, and SignBit. This signature must have been created by first converting an X25519PrivateKey to a Ed25519PrivateKey and SignBit, and then signing the message using this Ed25519PrivateKey. This method verifies the signature using the Ed25519PublicKey derived from the provided X25519PublicKey and SignBit.

-
source

pub fn to_bytes(&self) -> [u8; 64]

Convert this signature to an array of bytes

-

Trait Implementations§

source§

impl Clone for Ed25519Signature

source§

fn clone(&self) -> Ed25519Signature

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Ed25519Signature

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for Ed25519Signature

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where - T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where +) -> bool

Verify this Ed25519Signature for the given message, X25519PublicKey, and SignBit. This signature must have been created by first converting an X25519PrivateKey to a Ed25519PrivateKey and SignBit, and then signing the message using this Ed25519PrivateKey. This method verifies the signature using the Ed25519PublicKey derived from the provided X25519PublicKey and SignBit.

+
source

pub fn to_bytes(&self) -> [u8; 64]

Convert this signature to an array of bytes

+

Trait Implementations§

source§

impl Clone for Ed25519Signature

source§

fn clone(&self) -> Ed25519Signature

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Ed25519Signature

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for Ed25519Signature

source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, - constructed: bool, - tag: u32, -) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where - T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where - 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 + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where + 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
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

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 + T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +function.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
source§

impl<T> ToOwned for T
where + T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T

\ No newline at end of file diff --git a/crates/tor_interface/tor_crypto/struct.V3OnionServiceId.html b/crates/tor_interface/tor_crypto/struct.V3OnionServiceId.html index d7f04cb7..74d7570f 100644 --- a/crates/tor_interface/tor_crypto/struct.V3OnionServiceId.html +++ b/crates/tor_interface/tor_crypto/struct.V3OnionServiceId.html @@ -1,6 +1,6 @@ -V3OnionServiceId in tor_interface::tor_crypto - Rust

Struct tor_interface::tor_crypto::V3OnionServiceId

source ·
pub struct V3OnionServiceId { /* private fields */ }
Expand description

A v3 onion-service id

+V3OnionServiceId in tor_interface::tor_crypto - Rust

Struct tor_interface::tor_crypto::V3OnionServiceId

source ·
pub struct V3OnionServiceId { /* private fields */ }
Expand description

A v3 onion-service id

Implementations§

source§

impl V3OnionServiceId

Strongly-typed representation of a v3 onion-service id

-
source

pub fn from_string(service_id: &str) -> Result<V3OnionServiceId, Error>

Create a V3OnionServiceId from a String in the version 3 onion service digest format. From the tor address specification:

+
source

pub fn from_string(service_id: &str) -> Result<V3OnionServiceId, Error>

Create a V3OnionServiceId from a String in the version 3 onion service digest format. From the tor address specification:

onion_address = base32(PUBKEY | CHECKSUM | VERSION)
 CHECKSUM = H(".onion checksum" | PUBKEY | VERSION)[:2]
@@ -14,147 +14,147 @@
 
source

pub fn from_public_key(public_key: &Ed25519PublicKey) -> V3OnionServiceId

Create a V3OnionServiceId from an Ed25519PublicKey.

source

pub fn from_private_key(private_key: &Ed25519PrivateKey) -> V3OnionServiceId

Create a V3OnionServiceId from an Ed25519PrivateKey.

-
source

pub fn is_valid(service_id: &str) -> bool

Determine if the provided string is a valid representation of a V3OnionServiceId

-
source

pub fn as_bytes(&self) -> &[u8; 56]

View this service id as an array of bytes

-

Trait Implementations§

source§

impl Clone for V3OnionServiceId

source§

fn clone(&self) -> V3OnionServiceId

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for V3OnionServiceId

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for V3OnionServiceId

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Hash for V3OnionServiceId

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where - H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for V3OnionServiceId

source§

fn cmp(&self, other: &V3OnionServiceId) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where - Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for V3OnionServiceId

source§

fn eq(&self, other: &V3OnionServiceId) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for V3OnionServiceId

source§

fn partial_cmp(&self, other: &V3OnionServiceId) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= -operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl Eq for V3OnionServiceId

source§

impl StructuralPartialEq for V3OnionServiceId

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where - T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where +

source

pub fn is_valid(service_id: &str) -> bool

Determine if the provided string is a valid representation of a V3OnionServiceId

+
source

pub fn as_bytes(&self) -> &[u8; 56]

View this service id as an array of bytes

+

Trait Implementations§

source§

impl Clone for V3OnionServiceId

source§

fn clone(&self) -> V3OnionServiceId

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for V3OnionServiceId

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for V3OnionServiceId

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Hash for V3OnionServiceId

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where + H: Hasher, + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for V3OnionServiceId

source§

fn cmp(&self, other: &V3OnionServiceId) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where + Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for V3OnionServiceId

source§

fn eq(&self, other: &V3OnionServiceId) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
source§

impl PartialOrd for V3OnionServiceId

source§

fn partial_cmp(&self, other: &V3OnionServiceId) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the +<= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > +operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by +the >= operator. Read more
source§

impl Eq for V3OnionServiceId

source§

impl StructuralPartialEq for V3OnionServiceId

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, - constructed: bool, - tag: u32, -) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where - T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<Q, K> Comparable<K> for Q
where - Q: Ord + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn compare(&self, key: &K) -> Ordering

Compare self to key and return their ordering.
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where - 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 + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<Q, K> Comparable<K> for Q
where + Q: Ord + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn compare(&self, key: &K) -> Ordering

Compare self to key and return their ordering.
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where + 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
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

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
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

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 + T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

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
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where - T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> TryIntoSlug for T
where - T: ToString + ?Sized,

§

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 T
where +function.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
source§

impl<T> ToOwned for T
where + T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where + T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> TryIntoSlug for T
where + T: ToString + ?Sized,

§

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 T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T

\ No newline at end of file diff --git a/crates/tor_interface/tor_crypto/struct.X25519PrivateKey.html b/crates/tor_interface/tor_crypto/struct.X25519PrivateKey.html index d13c9708..97704f17 100644 --- a/crates/tor_interface/tor_crypto/struct.X25519PrivateKey.html +++ b/crates/tor_interface/tor_crypto/struct.X25519PrivateKey.html @@ -1,146 +1,145 @@ -X25519PrivateKey in tor_interface::tor_crypto - Rust

Struct tor_interface::tor_crypto::X25519PrivateKey

source ·
pub struct X25519PrivateKey { /* private fields */ }
Expand description

An x25519 private key

+X25519PrivateKey in tor_interface::tor_crypto - Rust

Struct tor_interface::tor_crypto::X25519PrivateKey

source ·
pub struct X25519PrivateKey { /* private fields */ }
Expand description

An x25519 private key

Implementations§

source§

impl X25519PrivateKey

A wrapper around tor_llcrypto::pk::curve25519::StaticSecret

source

pub fn generate() -> X25519PrivateKey

Securely generate a new X25519PrivateKey

-
source

pub fn from_raw(raw: &[u8; 32]) -> Result<X25519PrivateKey, Error>

Attempt to create an X25519PrivateKey from an array of bytes. Not all byte buffers of the required size can create a valid X25519PrivateKey. Only buffers derived from X25519PrivateKey::to_bytes() are required to convert correctly.

+
source

pub fn from_raw(raw: &[u8; 32]) -> Result<X25519PrivateKey, Error>

Attempt to create an X25519PrivateKey from an array of bytes. Not all byte buffers of the required size can create a valid X25519PrivateKey. Only buffers derived from X25519PrivateKey::to_bytes() are required to convert correctly.

To securely generate a valid X25519PrivateKey, use X25519PrivateKey::generate().

-
source

pub fn from_base64(base64: &str) -> Result<X25519PrivateKey, Error>

Create an X25519PrivateKey from a String in the legacy c-tor daemon key blob format used in the ONION_CLIENT_AUTH_ADD control-port command. From the c-tor control specification:

+
source

pub fn from_base64(base64: &str) -> Result<X25519PrivateKey, Error>

Create an X25519PrivateKey from a String in the legacy c-tor daemon key blob format used in the ONION_CLIENT_AUTH_ADD control-port command. From the c-tor control specification:

PrivateKeyBlob = base64 encoding of x25519 key
 

Only key blob strings derived from X25519PrivateKey::to_base64() are required to convert correctly.

source

pub fn sign_message( &self, - message: &[u8], -) -> Result<(Ed25519Signature, SignBit), Error>

Sign the provided message and return an Ed25519Signature and SignBit.

+ message: &[u8], +) -> Result<(Ed25519Signature, SignBit), Error>

Sign the provided message and return an Ed25519Signature and SignBit.

This method first converts this X25519PrivateKey to an Ed25519PrivateKey and SignBit. Then, the message is signed using the derived Ed25519PrivateKey. To verify the signature, both the X25519PublicKey and this calculated SignBit are required.

§⚠ Warning ⚠

Only ever sign messages the private key owner controls the contents of!

-
source

pub fn to_base64(&self) -> String

Write X25519PrivateKey to a base64 encocded String.

-
source

pub fn to_bytes(&self) -> [u8; 32]

Convert this private key to an array of bytes.

-

Trait Implementations§

source§

impl Clone for X25519PrivateKey

source§

fn clone(&self) -> X25519PrivateKey

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for X25519PrivateKey

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for X25519PrivateKey

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where - T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where +

source

pub fn to_base64(&self) -> String

Write X25519PrivateKey to a base64 encocded String.

+
source

pub fn to_bytes(&self) -> [u8; 32]

Convert this private key to an array of bytes.

+

Trait Implementations§

source§

impl Clone for X25519PrivateKey

source§

fn clone(&self) -> X25519PrivateKey

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for X25519PrivateKey

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for X25519PrivateKey

source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, - constructed: bool, - tag: u32, -) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where - T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where - 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 + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where + 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
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

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 + T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +function.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
source§

impl<T> ToOwned for T
where + T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T

\ No newline at end of file diff --git a/crates/tor_interface/tor_crypto/struct.X25519PublicKey.html b/crates/tor_interface/tor_crypto/struct.X25519PublicKey.html index 046f2ac5..0a0d5a65 100644 --- a/crates/tor_interface/tor_crypto/struct.X25519PublicKey.html +++ b/crates/tor_interface/tor_crypto/struct.X25519PublicKey.html @@ -1,145 +1,144 @@ -X25519PublicKey in tor_interface::tor_crypto - Rust

Struct tor_interface::tor_crypto::X25519PublicKey

source ·
pub struct X25519PublicKey { /* private fields */ }
Expand description

An x25519 public key

+X25519PublicKey in tor_interface::tor_crypto - Rust

Struct tor_interface::tor_crypto::X25519PublicKey

source ·
pub struct X25519PublicKey { /* private fields */ }
Expand description

An x25519 public key

Implementations§

source§

impl X25519PublicKey

A wrapper around tor_llcrypto::pk::curve25519::PublicKey

source

pub fn from_private_key(private_key: &X25519PrivateKey) -> X25519PublicKey

Construct an X25519PublicKey from an X25519PrivateKey.

-
source

pub fn from_raw(raw: &[u8; 32]) -> X25519PublicKey

Construct an X25519PublicKey from an array of bytes.

-
source

pub fn from_base32(base32: &str) -> Result<X25519PublicKey, Error>

Create an X25519PublicKey from a String in the legacy c-tor daemon key base32 format used in the ADD_ONION control-port command. From the c-tor control specification:

+
source

pub fn from_raw(raw: &[u8; 32]) -> X25519PublicKey

Construct an X25519PublicKey from an array of bytes.

+
source

pub fn from_base32(base32: &str) -> Result<X25519PublicKey, Error>

Create an X25519PublicKey from a String in the legacy c-tor daemon key base32 format used in the ADD_ONION control-port command. From the c-tor control specification:

V3Key = The client's base32-encoded x25519 public key, using only the key
         part of rend-spec-v3.txt section G.1.2 (v3 only).
 

Only key base32 strings derived from X25519PublicKey::to_base32() are required to convert correctly.

-
source

pub fn to_base32(&self) -> String

Write X25519PublicKey to a base32 encocded String.

-
source

pub fn as_bytes(&self) -> &[u8; 32]

View this public key as an array of bytes

-

Trait Implementations§

source§

impl Clone for X25519PublicKey

source§

fn clone(&self) -> X25519PublicKey

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for X25519PublicKey

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Hash for X25519PublicKey

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where - H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for X25519PublicKey

source§

fn eq(&self, other: &X25519PublicKey) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl Eq for X25519PublicKey

source§

impl StructuralPartialEq for X25519PublicKey

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where - T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where +

source

pub fn to_base32(&self) -> String

Write X25519PublicKey to a base32 encocded String.

+
source

pub fn as_bytes(&self) -> &[u8; 32]

View this public key as an array of bytes

+

Trait Implementations§

source§

impl Clone for X25519PublicKey

source§

fn clone(&self) -> X25519PublicKey

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for X25519PublicKey

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Hash for X25519PublicKey

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where + H: Hasher, + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for X25519PublicKey

source§

fn eq(&self, other: &X25519PublicKey) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
source§

impl Eq for X25519PublicKey

source§

impl StructuralPartialEq for X25519PublicKey

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, - constructed: bool, - tag: u32, -) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where - T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where - 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 + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where + 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
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

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
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

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 + T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

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
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +function.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
source§

impl<T> ToOwned for T
where + T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T

\ No newline at end of file diff --git a/crates/tor_interface/tor_provider/enum.Error.html b/crates/tor_interface/tor_provider/enum.Error.html index 05ffe6cd..66072c1f 100644 --- a/crates/tor_interface/tor_provider/enum.Error.html +++ b/crates/tor_interface/tor_provider/enum.Error.html @@ -1,131 +1,131 @@ -Error in tor_interface::tor_provider - Rust

Enum tor_interface::tor_provider::Error

source ·
pub enum Error {
-    ParseFailure(String, String),
-    Generic(String),
+Error in tor_interface::tor_provider - Rust

Enum tor_interface::tor_provider::Error

source ·
pub enum Error {
+    ParseFailure(String, String),
+    Generic(String),
 }
Expand description

Various tor_provider errors.

-

Variants§

§

ParseFailure(String, String)

Failure parsing some string into a type

-
§

Generic(String)

Other miscellaneous error

-

Trait Implementations§

source§

impl Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Error

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for Error

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<Error> for Error

source§

fn from(error: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(error: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(error: Error) -> Self

Converts to this type from the input type.

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> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where - T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where +

Variants§

§

ParseFailure(String, String)

Failure parsing some string into a type

+
§

Generic(String)

Other miscellaneous error

+

Trait Implementations§

source§

impl Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Error

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for Error

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
source§

impl From<Error> for Error

source§

fn from(error: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(error: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(error: Error) -> Self

Converts to this type from the input type.

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> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, - constructed: bool, - tag: u32, -) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where - 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 + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where + 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
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
§

impl<E> ErrorReport for E
where - E: Error + 'static,

§

fn report(&self) -> Report<ReportHelper<'_>>

Return an object that displays the error and its causes
§

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 + E: Error + 'static,
§

fn report(&self) -> Report<ReportHelper<'_>>

Return an object that displays the error and its causes
§

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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
source§

impl<T> ToString for T
where - T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> TryIntoSlug for T
where - T: ToString + ?Sized,

§

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 T
where +function.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
source§

impl<T> ToString for T
where + T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> TryIntoSlug for T
where + T: ToString + ?Sized,

§

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 T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T

\ No newline at end of file diff --git a/crates/tor_interface/tor_provider/enum.OnionAddr.html b/crates/tor_interface/tor_provider/enum.OnionAddr.html index 212631b0..438f6250 100644 --- a/crates/tor_interface/tor_provider/enum.OnionAddr.html +++ b/crates/tor_interface/tor_provider/enum.OnionAddr.html @@ -1,145 +1,145 @@ -OnionAddr in tor_interface::tor_provider - Rust

Enum tor_interface::tor_provider::OnionAddr

source ·
pub enum OnionAddr {
+OnionAddr in tor_interface::tor_provider - Rust

Enum tor_interface::tor_provider::OnionAddr

source ·
pub enum OnionAddr {
     V3(OnionAddrV3),
-}
Expand description

An onion service address analog to std::net::SocketAddr

-

Variants§

Trait Implementations§

source§

impl Clone for OnionAddr

source§

fn clone(&self) -> OnionAddr

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for OnionAddr

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for OnionAddr

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl FromStr for OnionAddr

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl Hash for OnionAddr

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where - H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for OnionAddr

source§

fn cmp(&self, other: &OnionAddr) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where - Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for OnionAddr

source§

fn eq(&self, other: &OnionAddr) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for OnionAddr

source§

fn partial_cmp(&self, other: &OnionAddr) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= -operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl Eq for OnionAddr

source§

impl StructuralPartialEq for OnionAddr

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where - T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where +}

Expand description

An onion service address analog to std::net::SocketAddr

+

Variants§

Trait Implementations§

source§

impl Clone for OnionAddr

source§

fn clone(&self) -> OnionAddr

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for OnionAddr

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for OnionAddr

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl FromStr for OnionAddr

source§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl Hash for OnionAddr

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where + H: Hasher, + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for OnionAddr

source§

fn cmp(&self, other: &OnionAddr) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where + Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for OnionAddr

source§

fn eq(&self, other: &OnionAddr) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
source§

impl PartialOrd for OnionAddr

source§

fn partial_cmp(&self, other: &OnionAddr) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the +<= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > +operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by +the >= operator. Read more
source§

impl Eq for OnionAddr

source§

impl StructuralPartialEq for OnionAddr

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, - constructed: bool, - tag: u32, -) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where - T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<Q, K> Comparable<K> for Q
where - Q: Ord + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn compare(&self, key: &K) -> Ordering

Compare self to key and return their ordering.
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where - 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 + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<Q, K> Comparable<K> for Q
where + Q: Ord + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn compare(&self, key: &K) -> Ordering

Compare self to key and return their ordering.
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where + 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
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

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
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

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 + T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

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
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where - T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> TryIntoSlug for T
where - T: ToString + ?Sized,

§

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 T
where +function.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
source§

impl<T> ToOwned for T
where + T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where + T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> TryIntoSlug for T
where + T: ToString + ?Sized,

§

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 T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T

\ No newline at end of file diff --git a/crates/tor_interface/tor_provider/enum.TargetAddr.html b/crates/tor_interface/tor_provider/enum.TargetAddr.html index 7d044934..1fc97cf8 100644 --- a/crates/tor_interface/tor_provider/enum.TargetAddr.html +++ b/crates/tor_interface/tor_provider/enum.TargetAddr.html @@ -1,135 +1,135 @@ -TargetAddr in tor_interface::tor_provider - Rust

Enum tor_interface::tor_provider::TargetAddr

source ·
pub enum TargetAddr {
-    Socket(SocketAddr),
+TargetAddr in tor_interface::tor_provider - Rust

Enum tor_interface::tor_provider::TargetAddr

source ·
pub enum TargetAddr {
+    Socket(SocketAddr),
     OnionService(OnionAddr),
     Domain(DomainAddr),
 }
Expand description

An enum representing the various types of addresses a TorProvider implementation may connect to.

-

Variants§

§

Socket(SocketAddr)

An ip address and port

+

Variants§

§

Socket(SocketAddr)

An ip address and port

§

OnionService(OnionAddr)

An onion-service id and virtual port

§

Domain(DomainAddr)

A domain name and port

-

Trait Implementations§

source§

impl Clone for TargetAddr

source§

fn clone(&self) -> TargetAddr

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for TargetAddr

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for TargetAddr

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<(V3OnionServiceId, u16)> for TargetAddr

source§

fn from(target_tuple: (V3OnionServiceId, u16)) -> Self

Converts to this type from the input type.
source§

impl FromStr for TargetAddr

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where - T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where +

Trait Implementations§

source§

impl Clone for TargetAddr

source§

fn clone(&self) -> TargetAddr

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for TargetAddr

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for TargetAddr

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<(V3OnionServiceId, u16)> for TargetAddr

source§

fn from(target_tuple: (V3OnionServiceId, u16)) -> Self

Converts to this type from the input type.
source§

impl FromStr for TargetAddr

source§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, - constructed: bool, - tag: u32, -) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where - T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where - 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 + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where + 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
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

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 + T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where - T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> TryIntoSlug for T
where - T: ToString + ?Sized,

§

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 T
where +function.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
source§

impl<T> ToOwned for T
where + T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where + T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> TryIntoSlug for T
where + T: ToString + ?Sized,

§

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 T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T

\ No newline at end of file diff --git a/crates/tor_interface/tor_provider/enum.TorEvent.html b/crates/tor_interface/tor_provider/enum.TorEvent.html index 2cca81b3..364da44e 100644 --- a/crates/tor_interface/tor_provider/enum.TorEvent.html +++ b/crates/tor_interface/tor_provider/enum.TorEvent.html @@ -1,145 +1,145 @@ -TorEvent in tor_interface::tor_provider - Rust

Enum tor_interface::tor_provider::TorEvent

source ·
pub enum TorEvent {
+TorEvent in tor_interface::tor_provider - Rust

Enum tor_interface::tor_provider::TorEvent

source ·
pub enum TorEvent {
     BootstrapStatus {
-        progress: u32,
-        tag: String,
-        summary: String,
+        progress: u32,
+        tag: String,
+        summary: String,
     },
     BootstrapComplete,
     LogReceived {
-        line: String,
+        line: String,
     },
     OnionServicePublished {
         service_id: V3OnionServiceId,
     },
 }
Expand description

Various events possibly returned by a TorProvider implementation’s update() method.

Variants§

§

BootstrapStatus

A status update received connecting to the Tor Network.

-

Fields

§progress: u32

A number from 0 to 100 for how through the bootstrap process the TorProvider is.

-
§tag: String

A short string to identify the current phase of the bootstrap process.

-
§summary: String

A longer string with a summary of the current phase of the bootstrap process.

+

Fields

§progress: u32

A number from 0 to 100 for how through the bootstrap process the TorProvider is.

+
§tag: String

A short string to identify the current phase of the bootstrap process.

+
§summary: String

A longer string with a summary of the current phase of the bootstrap process.

§

BootstrapComplete

Indicates successful connection to the Tor Network. The TorProvider::connect() and TorProvider::listener() methods may now be used.

§

LogReceived

Messages which may be useful for troubleshooting.

-

Fields

§line: String

A message

+

Fields

§line: String

A message

§

OnionServicePublished

An onion-service has been published to the Tor Network and may now be reachable by clients.

Fields

§service_id: V3OnionServiceId

The service-id of the onion-service which has been published.

-

Trait Implementations§

source§

impl Debug for TorEvent

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where - T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where +

Trait Implementations§

source§

impl Debug for TorEvent

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, - constructed: bool, - tag: u32, -) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where - 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 + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where + 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
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
§

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 + 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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +function.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T

\ No newline at end of file diff --git a/crates/tor_interface/tor_provider/index.html b/crates/tor_interface/tor_provider/index.html index eb5a9dc2..4a81816d 100644 --- a/crates/tor_interface/tor_provider/index.html +++ b/crates/tor_interface/tor_provider/index.html @@ -1,2 +1,2 @@ -tor_interface::tor_provider - Rust

Module tor_interface::tor_provider

source ·
Expand description

Traits and types for connecting to the Tor Network.

-

Structs§

Enums§

Traits§

  • The TorProvider trait allows for high-level Tor Network functionality. Implementations ay connect to the Tor Network, anonymously connect to both clearnet and onion-service endpoints, and host onion-services.

Type Aliases§

  • A CircuitToken is used to specify circuits used to connect to clearnet services.
\ No newline at end of file +tor_interface::tor_provider - Rust

Module tor_interface::tor_provider

source ·
Expand description

Traits and types for connecting to the Tor Network.

+

Structs§

Enums§

Traits§

  • The TorProvider trait allows for high-level Tor Network functionality. Implementations ay connect to the Tor Network, anonymously connect to both clearnet and onion-service endpoints, and host onion-services.

Type Aliases§

  • A CircuitToken is used to specify circuits used to connect to clearnet services.
\ No newline at end of file diff --git a/crates/tor_interface/tor_provider/struct.DomainAddr.html b/crates/tor_interface/tor_provider/struct.DomainAddr.html index c541ef98..19e4e6f0 100644 --- a/crates/tor_interface/tor_provider/struct.DomainAddr.html +++ b/crates/tor_interface/tor_provider/struct.DomainAddr.html @@ -1,147 +1,147 @@ -DomainAddr in tor_interface::tor_provider - Rust

Struct tor_interface::tor_provider::DomainAddr

source ·
pub struct DomainAddr { /* private fields */ }
Expand description

A domain name analog to std::net::SocketAddr

+DomainAddr in tor_interface::tor_provider - Rust

Struct tor_interface::tor_provider::DomainAddr

source ·
pub struct DomainAddr { /* private fields */ }
Expand description

A domain name analog to std::net::SocketAddr

A DomainAddr must not end in “.onion”

Implementations§

source§

impl DomainAddr

A DomainAddr has a domain name (scuh as www.example.com) and a port

-
source

pub fn domain(&self) -> &str

Returns the domain name associated with this domain address.

-
source

pub fn port(&self) -> u16

Returns the port number associated with this domain address.

-

Trait Implementations§

source§

impl Clone for DomainAddr

source§

fn clone(&self) -> DomainAddr

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for DomainAddr

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for DomainAddr

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl FromStr for DomainAddr

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl Hash for DomainAddr

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where - H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for DomainAddr

source§

fn cmp(&self, other: &DomainAddr) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where - Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for DomainAddr

source§

fn eq(&self, other: &DomainAddr) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for DomainAddr

source§

fn partial_cmp(&self, other: &DomainAddr) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= -operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl TryFrom<(String, u16)> for DomainAddr

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(value: (String, u16)) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl Eq for DomainAddr

source§

impl StructuralPartialEq for DomainAddr

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where - T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where +
source

pub fn domain(&self) -> &str

Returns the domain name associated with this domain address.

+
source

pub fn port(&self) -> u16

Returns the port number associated with this domain address.

+

Trait Implementations§

source§

impl Clone for DomainAddr

source§

fn clone(&self) -> DomainAddr

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for DomainAddr

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for DomainAddr

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl FromStr for DomainAddr

source§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl Hash for DomainAddr

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where + H: Hasher, + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for DomainAddr

source§

fn cmp(&self, other: &DomainAddr) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where + Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for DomainAddr

source§

fn eq(&self, other: &DomainAddr) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
source§

impl PartialOrd for DomainAddr

source§

fn partial_cmp(&self, other: &DomainAddr) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the +<= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > +operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by +the >= operator. Read more
source§

impl TryFrom<(String, u16)> for DomainAddr

source§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(value: (String, u16)) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl Eq for DomainAddr

source§

impl StructuralPartialEq for DomainAddr

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, - constructed: bool, - tag: u32, -) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where - T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<Q, K> Comparable<K> for Q
where - Q: Ord + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn compare(&self, key: &K) -> Ordering

Compare self to key and return their ordering.
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where - 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 + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<Q, K> Comparable<K> for Q
where + Q: Ord + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn compare(&self, key: &K) -> Ordering

Compare self to key and return their ordering.
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where + 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
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

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
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

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 + T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

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
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where - T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> TryIntoSlug for T
where - T: ToString + ?Sized,

§

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 T
where +function.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
source§

impl<T> ToOwned for T
where + T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where + T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> TryIntoSlug for T
where + T: ToString + ?Sized,

§

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 T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T

\ No newline at end of file diff --git a/crates/tor_interface/tor_provider/struct.OnionAddrV3.html b/crates/tor_interface/tor_provider/struct.OnionAddrV3.html index 8f040b31..7591f003 100644 --- a/crates/tor_interface/tor_provider/struct.OnionAddrV3.html +++ b/crates/tor_interface/tor_provider/struct.OnionAddrV3.html @@ -1,147 +1,147 @@ -OnionAddrV3 in tor_interface::tor_provider - Rust

Struct tor_interface::tor_provider::OnionAddrV3

source ·
pub struct OnionAddrV3 { /* private fields */ }
Expand description

A version 3 onion service address.

+OnionAddrV3 in tor_interface::tor_provider - Rust

Struct tor_interface::tor_provider::OnionAddrV3

source ·
pub struct OnionAddrV3 { /* private fields */ }
Expand description

A version 3 onion service address.

Version 3 Onion Service addresses const of a crate::tor_crypto::V3OnionServiceId and a 16-bit port number.

-

Implementations§

source§

impl OnionAddrV3

source

pub fn new(service_id: V3OnionServiceId, virt_port: u16) -> OnionAddrV3

Create a new OnionAddrV3 from a crate::tor_crypto::V3OnionServiceId and port number.

+

Implementations§

source§

impl OnionAddrV3

source

pub fn new(service_id: V3OnionServiceId, virt_port: u16) -> OnionAddrV3

Create a new OnionAddrV3 from a crate::tor_crypto::V3OnionServiceId and port number.

source

pub fn service_id(&self) -> &V3OnionServiceId

Return the service id associated with this onion address.

-
source

pub fn virt_port(&self) -> u16

Return the port numebr associated with this onion address.

-

Trait Implementations§

source§

impl Clone for OnionAddrV3

source§

fn clone(&self) -> OnionAddrV3

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for OnionAddrV3

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for OnionAddrV3

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Hash for OnionAddrV3

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where - H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for OnionAddrV3

source§

fn cmp(&self, other: &OnionAddrV3) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where - Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for OnionAddrV3

source§

fn eq(&self, other: &OnionAddrV3) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for OnionAddrV3

source§

fn partial_cmp(&self, other: &OnionAddrV3) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= -operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl Eq for OnionAddrV3

source§

impl StructuralPartialEq for OnionAddrV3

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where - T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where +

source

pub fn virt_port(&self) -> u16

Return the port numebr associated with this onion address.

+

Trait Implementations§

source§

impl Clone for OnionAddrV3

source§

fn clone(&self) -> OnionAddrV3

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for OnionAddrV3

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for OnionAddrV3

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Hash for OnionAddrV3

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where + H: Hasher, + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for OnionAddrV3

source§

fn cmp(&self, other: &OnionAddrV3) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where + Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for OnionAddrV3

source§

fn eq(&self, other: &OnionAddrV3) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
source§

impl PartialOrd for OnionAddrV3

source§

fn partial_cmp(&self, other: &OnionAddrV3) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the +<= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > +operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by +the >= operator. Read more
source§

impl Eq for OnionAddrV3

source§

impl StructuralPartialEq for OnionAddrV3

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, - constructed: bool, - tag: u32, -) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where - T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<Q, K> Comparable<K> for Q
where - Q: Ord + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn compare(&self, key: &K) -> Ordering

Compare self to key and return their ordering.
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where - 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 + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<Q, K> Comparable<K> for Q
where + Q: Ord + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn compare(&self, key: &K) -> Ordering

Compare self to key and return their ordering.
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where + 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
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

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
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

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 + T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

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
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where - T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> TryIntoSlug for T
where - T: ToString + ?Sized,

§

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 T
where +function.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
source§

impl<T> ToOwned for T
where + T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where + T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> TryIntoSlug for T
where + T: ToString + ?Sized,

§

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 T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T

\ No newline at end of file diff --git a/crates/tor_interface/tor_provider/struct.OnionListener.html b/crates/tor_interface/tor_provider/struct.OnionListener.html index 3298e076..abccfca0 100644 --- a/crates/tor_interface/tor_provider/struct.OnionListener.html +++ b/crates/tor_interface/tor_provider/struct.OnionListener.html @@ -1,124 +1,124 @@ -OnionListener in tor_interface::tor_provider - Rust

Struct tor_interface::tor_provider::OnionListener

source ·
pub struct OnionListener { /* private fields */ }
Expand description

A wrapper around a std::net::TcpListener with some Tor-specific customisations.

+OnionListener in tor_interface::tor_provider - Rust

Struct tor_interface::tor_provider::OnionListener

source ·
pub struct OnionListener { /* private fields */ }
Expand description

A wrapper around a std::net::TcpListener with some Tor-specific customisations.

An onion-listener can be constructed using the TorProvider::listener() method.

-

Implementations§

source§

impl OnionListener

source

pub fn set_nonblocking(&self, nonblocking: bool) -> Result<(), Error>

Moves the underlying TcpListener into or out of nonblocking mode.

-
source

pub fn accept(&self) -> Result<Option<OnionStream>, Error>

Accept a new incoming connection from this listener.

-

Trait Implementations§

source§

impl Drop for OnionListener

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where - T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where +

Implementations§

source§

impl OnionListener

source

pub fn set_nonblocking(&self, nonblocking: bool) -> Result<(), Error>

Moves the underlying TcpListener into or out of nonblocking mode.

+
source

pub fn accept(&self) -> Result<Option<OnionStream>, Error>

Accept a new incoming connection from this listener.

+

Trait Implementations§

source§

impl Drop for OnionListener

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, - constructed: bool, - tag: u32, -) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where - 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 + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where + 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 Display implementation when + 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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe -function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +function.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T

\ No newline at end of file diff --git a/crates/tor_interface/tor_provider/struct.OnionStream.html b/crates/tor_interface/tor_provider/struct.OnionStream.html index 49fced6b..f0b06017 100644 --- a/crates/tor_interface/tor_provider/struct.OnionStream.html +++ b/crates/tor_interface/tor_provider/struct.OnionStream.html @@ -1,9 +1,9 @@ -OnionStream in tor_interface::tor_provider - Rust

Struct tor_interface::tor_provider::OnionStream

source ·
pub struct OnionStream { /* private fields */ }
Expand description

A wrapper around a std::net::TcpStream with some Tor-specific customisations

+OnionStream in tor_interface::tor_provider - Rust

Struct tor_interface::tor_provider::OnionStream

source ·
pub struct OnionStream { /* private fields */ }
Expand description

A wrapper around a std::net::TcpStream with some Tor-specific customisations

An onion-listener can be constructed using the TorProvider::connect() method.

-

Implementations§

source§

impl OnionStream

source

pub fn peer_addr(&self) -> Option<TargetAddr>

Returns the target address of the remote peer of this onion connection.

-
source

pub fn local_addr(&self) -> Option<OnionAddr>

Returns the onion address of the local connection for an incoming onion-service connection. Returns None for outgoing connections.

-
source

pub fn try_clone(&self) -> Result<Self, Error>

Tries to clone the underlying connection and data. A simple pass-through to std::net::TcpStream::try_clone().

-

Methods from Deref<Target = TcpStream>§

1.0.0 · source

pub fn peer_addr(&self) -> Result<SocketAddr, Error>

Returns the socket address of the remote peer of this TCP connection.

+

Implementations§

source§

impl OnionStream

source

pub fn peer_addr(&self) -> Option<TargetAddr>

Returns the target address of the remote peer of this onion connection.

+
source

pub fn local_addr(&self) -> Option<OnionAddr>

Returns the onion address of the local connection for an incoming onion-service connection. Returns None for outgoing connections.

+
source

pub fn try_clone(&self) -> Result<Self, Error>

Tries to clone the underlying connection and data. A simple pass-through to std::net::TcpStream::try_clone().

+

Methods from Deref<Target = TcpStream>§

1.0.0 · source

pub fn peer_addr(&self) -> Result<SocketAddr, Error>

Returns the socket address of the remote peer of this TCP connection.

§Examples
use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4, TcpStream};
 
@@ -11,7 +11,7 @@ 
§Examples
.expect("Couldn't connect to the server..."); assert_eq!(stream.peer_addr().unwrap(), SocketAddr::V4(SocketAddrV4::new(Ipv4Addr::new(127, 0, 0, 1), 8080)));
-
1.0.0 · source

pub fn local_addr(&self) -> Result<SocketAddr, Error>

Returns the socket address of the local half of this TCP connection.

+
1.0.0 · source

pub fn local_addr(&self) -> Result<SocketAddr, Error>

Returns the socket address of the local half of this TCP connection.

§Examples
use std::net::{IpAddr, Ipv4Addr, TcpStream};
 
@@ -19,10 +19,10 @@ 
§Examples
.expect("Couldn't connect to the server..."); assert_eq!(stream.local_addr().unwrap().ip(), IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)));
-
1.0.0 · source

pub fn shutdown(&self, how: Shutdown) -> Result<(), Error>

Shuts down the read, write, or both halves of this connection.

+
1.0.0 · source

pub fn shutdown(&self, how: Shutdown) -> Result<(), Error>

Shuts down the read, write, or both halves of this connection.

This function will cause all pending and future I/O on the specified portions to return immediately with an appropriate value (see the -documentation of Shutdown).

+documentation of Shutdown).

§Platform-specific behavior

Calling this function multiple times may result in different behavior, depending on the operating system. On Linux, the second call will @@ -34,7 +34,7 @@

§Examples
let stream = TcpStream::connect("127.0.0.1:8080") .expect("Couldn't connect to the server..."); stream.shutdown(Shutdown::Both).expect("shutdown call failed");
-
1.0.0 · source

pub fn try_clone(&self) -> Result<TcpStream, Error>

Creates a new independently owned handle to the underlying socket.

+
1.0.0 · source

pub fn try_clone(&self) -> Result<TcpStream, Error>

Creates a new independently owned handle to the underlying socket.

The returned TcpStream is a reference to the same stream that this object references. Both handles will read and write the same stream of data, and options set on one stream will be propagated to the other @@ -45,21 +45,21 @@

§Examples
let stream = TcpStream::connect("127.0.0.1:8080") .expect("Couldn't connect to the server..."); let stream_clone = stream.try_clone().expect("clone failed...");
-
1.4.0 · source

pub fn set_read_timeout(&self, dur: Option<Duration>) -> Result<(), Error>

Sets the read timeout to the timeout specified.

-

If the value specified is None, then read calls will block -indefinitely. An Err is returned if the zero Duration is +

1.4.0 · source

pub fn set_read_timeout(&self, dur: Option<Duration>) -> Result<(), Error>

Sets the read timeout to the timeout specified.

+

If the value specified is None, then read calls will block +indefinitely. An Err is returned if the zero Duration is passed to this method.

§Platform-specific behavior

Platforms may return a different error code whenever a read times out as a result of setting this option. For example Unix typically returns an -error of the kind WouldBlock, but Windows may return TimedOut.

+error of the kind WouldBlock, but Windows may return TimedOut.

§Examples
use std::net::TcpStream;
 
 let stream = TcpStream::connect("127.0.0.1:8080")
                        .expect("Couldn't connect to the server...");
 stream.set_read_timeout(None).expect("set_read_timeout call failed");
-

An Err is returned if the zero Duration is passed to this +

An Err is returned if the zero Duration is passed to this method:

use std::io;
@@ -70,21 +70,21 @@ 
§Examples
let result = stream.set_read_timeout(Some(Duration::new(0, 0))); let err = result.unwrap_err(); assert_eq!(err.kind(), io::ErrorKind::InvalidInput)
-
1.4.0 · source

pub fn set_write_timeout(&self, dur: Option<Duration>) -> Result<(), Error>

Sets the write timeout to the timeout specified.

-

If the value specified is None, then write calls will block -indefinitely. An Err is returned if the zero Duration is +

1.4.0 · source

pub fn set_write_timeout(&self, dur: Option<Duration>) -> Result<(), Error>

Sets the write timeout to the timeout specified.

+

If the value specified is None, then write calls will block +indefinitely. An Err is returned if the zero Duration is passed to this method.

§Platform-specific behavior

Platforms may return a different error code whenever a write times out as a result of setting this option. For example Unix typically returns -an error of the kind WouldBlock, but Windows may return TimedOut.

+an error of the kind WouldBlock, but Windows may return TimedOut.

§Examples
use std::net::TcpStream;
 
 let stream = TcpStream::connect("127.0.0.1:8080")
                        .expect("Couldn't connect to the server...");
 stream.set_write_timeout(None).expect("set_write_timeout call failed");
-

An Err is returned if the zero Duration is passed to this +

An Err is returned if the zero Duration is passed to this method:

use std::io;
@@ -95,8 +95,8 @@ 
§Examples
let result = stream.set_write_timeout(Some(Duration::new(0, 0))); let err = result.unwrap_err(); assert_eq!(err.kind(), io::ErrorKind::InvalidInput)
-
1.4.0 · source

pub fn read_timeout(&self) -> Result<Option<Duration>, Error>

Returns the read timeout of this socket.

-

If the timeout is None, then read calls will block indefinitely.

+
1.4.0 · source

pub fn read_timeout(&self) -> Result<Option<Duration>, Error>

Returns the read timeout of this socket.

+

If the timeout is None, then read calls will block indefinitely.

§Platform-specific behavior

Some platforms do not provide access to the current timeout.

§Examples
@@ -106,8 +106,8 @@
§Examples
.expect("Couldn't connect to the server..."); stream.set_read_timeout(None).expect("set_read_timeout call failed"); assert_eq!(stream.read_timeout().unwrap(), None);
-
1.4.0 · source

pub fn write_timeout(&self) -> Result<Option<Duration>, Error>

Returns the write timeout of this socket.

-

If the timeout is None, then write calls will block indefinitely.

+
1.4.0 · source

pub fn write_timeout(&self) -> Result<Option<Duration>, Error>

Returns the write timeout of this socket.

+

If the timeout is None, then write calls will block indefinitely.

§Platform-specific behavior

Some platforms do not provide access to the current timeout.

§Examples
@@ -117,7 +117,7 @@
§Examples
.expect("Couldn't connect to the server..."); stream.set_write_timeout(None).expect("set_write_timeout call failed"); assert_eq!(stream.write_timeout().unwrap(), None);
-
1.18.0 · source

pub fn peek(&self, buf: &mut [u8]) -> Result<usize, Error>

Receives data on the socket from the remote address to which it is +

1.18.0 · source

pub fn peek(&self, buf: &mut [u8]) -> Result<usize, Error>

Receives data on the socket from the remote address to which it is connected, without removing that data from the queue. On success, returns the number of bytes peeked.

Successive calls return the same data. This is accomplished by passing @@ -129,7 +129,7 @@

§Examples
.expect("Couldn't connect to the server..."); let mut buf = [0; 10]; let len = stream.peek(&mut buf).expect("peek failed");
-
source

pub fn set_linger(&self, linger: Option<Duration>) -> Result<(), Error>

🔬This is a nightly-only experimental API. (tcp_linger)

Sets the value of the SO_LINGER option on this socket.

+
source

pub fn set_linger(&self, linger: Option<Duration>) -> Result<(), Error>

🔬This is a nightly-only experimental API. (tcp_linger)

Sets the value of the SO_LINGER option on this socket.

This value controls how the socket is closed when data remains to be sent. If SO_LINGER is set, the socket will remain open for the specified duration as the system attempts to send pending data. @@ -144,8 +144,8 @@

§Examples
let stream = TcpStream::connect("127.0.0.1:8080") .expect("Couldn't connect to the server..."); stream.set_linger(Some(Duration::from_secs(0))).expect("set_linger call failed");
-
source

pub fn linger(&self) -> Result<Option<Duration>, Error>

🔬This is a nightly-only experimental API. (tcp_linger)

Gets the value of the SO_LINGER option on this socket.

-

For more information about this option, see TcpStream::set_linger.

+
source

pub fn linger(&self) -> Result<Option<Duration>, Error>

🔬This is a nightly-only experimental API. (tcp_linger)

Gets the value of the SO_LINGER option on this socket.

+

For more information about this option, see TcpStream::set_linger.

§Examples
#![feature(tcp_linger)]
 
@@ -156,7 +156,7 @@ 
§Examples"Couldn't connect to the server..."); stream.set_linger(Some(Duration::from_secs(0))).expect("set_linger call failed"); assert_eq!(stream.linger().unwrap(), Some(Duration::from_secs(0)));
-
1.9.0 · source

pub fn set_nodelay(&self, nodelay: bool) -> Result<(), Error>

Sets the value of the TCP_NODELAY option on this socket.

+
1.9.0 · source

pub fn set_nodelay(&self, nodelay: bool) -> Result<(), Error>

Sets the value of the TCP_NODELAY option on this socket.

If set, this option disables the Nagle algorithm. This means that segments are always sent as soon as possible, even if there is only a small amount of data. When not set, data is buffered until there is a @@ -168,8 +168,8 @@

§Exampleslet stream = TcpStream::connect("127.0.0.1:8080") .expect("Couldn't connect to the server..."); stream.set_nodelay(true).expect("set_nodelay call failed");
-
1.9.0 · source

pub fn nodelay(&self) -> Result<bool, Error>

Gets the value of the TCP_NODELAY option on this socket.

-

For more information about this option, see TcpStream::set_nodelay.

+
1.9.0 · source

pub fn nodelay(&self) -> Result<bool, Error>

Gets the value of the TCP_NODELAY option on this socket.

+

For more information about this option, see TcpStream::set_nodelay.

§Examples
use std::net::TcpStream;
 
@@ -177,7 +177,7 @@ 
§Examples"Couldn't connect to the server..."); stream.set_nodelay(true).expect("set_nodelay call failed"); assert_eq!(stream.nodelay().unwrap_or(false), true);
-
1.9.0 · source

pub fn set_ttl(&self, ttl: u32) -> Result<(), Error>

Sets the value for the IP_TTL option on this socket.

+
1.9.0 · source

pub fn set_ttl(&self, ttl: u32) -> Result<(), Error>

Sets the value for the IP_TTL option on this socket.

This value sets the time-to-live field that is used in every packet sent from this socket.

§Examples
@@ -186,8 +186,8 @@
§Exampleslet stream = TcpStream::connect("127.0.0.1:8080") .expect("Couldn't connect to the server..."); stream.set_ttl(100).expect("set_ttl call failed");
-
1.9.0 · source

pub fn ttl(&self) -> Result<u32, Error>

Gets the value of the IP_TTL option for this socket.

-

For more information about this option, see TcpStream::set_ttl.

+
1.9.0 · source

pub fn ttl(&self) -> Result<u32, Error>

Gets the value of the IP_TTL option for this socket.

+

For more information about this option, see TcpStream::set_ttl.

§Examples
use std::net::TcpStream;
 
@@ -195,7 +195,7 @@ 
§Examples"Couldn't connect to the server..."); stream.set_ttl(100).expect("set_ttl call failed"); assert_eq!(stream.ttl().unwrap_or(0), 100);
-
1.9.0 · source

pub fn take_error(&self) -> Result<Option<Error>, Error>

Gets the value of the SO_ERROR option on this socket.

+
1.9.0 · source

pub fn take_error(&self) -> Result<Option<Error>, Error>

Gets the value of the SO_ERROR option on this socket.

This will retrieve the stored error in the underlying socket, clearing the field in the process. This can be useful for checking errors between calls.

@@ -205,12 +205,12 @@
§Exampleslet stream = TcpStream::connect("127.0.0.1:8080") .expect("Couldn't connect to the server..."); stream.take_error().expect("No error was expected...");
-
1.9.0 · source

pub fn set_nonblocking(&self, nonblocking: bool) -> Result<(), Error>

Moves this TCP stream into or out of nonblocking mode.

+
1.9.0 · source

pub fn set_nonblocking(&self, nonblocking: bool) -> Result<(), Error>

Moves this TCP stream into or out of nonblocking mode.

This will result in read, write, recv and send operations becoming nonblocking, i.e., immediately returning from their calls. If the IO operation is successful, Ok is returned and no further action is required. If the IO operation could not be completed and needs -to be retried, an error with kind io::ErrorKind::WouldBlock is +to be retried, an error with kind io::ErrorKind::WouldBlock is returned.

On Unix platforms, calling this method corresponds to calling fcntl FIONBIO. On Windows calling this method corresponds to calling @@ -238,201 +238,201 @@

§Examplesprintln!("bytes: {buf:?}");
-

Trait Implementations§

source§

impl Deref for OnionStream

§

type Target = TcpStream

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl DerefMut for OnionStream

source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.
source§

impl From<OnionStream> for TcpStream

source§

fn from(onion_stream: OnionStream) -> Self

Converts to this type from the input type.
source§

impl Read for OnionStream

source§

fn read(&mut self, buf: &mut [u8]) -> Result<usize, Error>

Pull some bytes from this source into the specified buffer, returning -how many bytes were read. Read more
1.36.0 · source§

fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>

Like read, except that it reads into a slice of buffers. Read more
source§

fn is_read_vectored(&self) -> bool

🔬This is a nightly-only experimental API. (can_vector)
Determines if this Reader has an efficient read_vectored -implementation. Read more
1.0.0 · source§

fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>

Read all bytes until EOF in this source, placing them into buf. Read more
1.0.0 · source§

fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>

Read all bytes until EOF in this source, appending them to buf. Read more
1.6.0 · source§

fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>

Read the exact number of bytes required to fill buf. Read more
source§

fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>

🔬This is a nightly-only experimental API. (read_buf)
Pull some bytes from this source into the specified buffer. Read more
source§

fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>

🔬This is a nightly-only experimental API. (read_buf)
Read the exact number of bytes required to fill cursor. Read more
1.0.0 · source§

fn by_ref(&mut self) -> &mut Self
where - Self: Sized,

Creates a “by reference” adaptor for this instance of Read. Read more
1.0.0 · source§

fn bytes(self) -> Bytes<Self>
where - Self: Sized,

Transforms this Read instance to an Iterator over its bytes. Read more
1.0.0 · source§

fn chain<R>(self, next: R) -> Chain<Self, R>
where - R: Read, - Self: Sized,

Creates an adapter which will chain this stream with another. Read more
1.0.0 · source§

fn take(self, limit: u64) -> Take<Self>
where - Self: Sized,

Creates an adapter which will read at most limit bytes from it. Read more
source§

impl Write for OnionStream

source§

fn write(&mut self, buf: &[u8]) -> Result<usize, Error>

Write a buffer into this writer, returning how many bytes were written. Read more
source§

fn flush(&mut self) -> Result<(), Error>

Flush this output stream, ensuring that all intermediately buffered -contents reach their destination. Read more
1.36.0 · source§

fn write_vectored(&mut self, bufs: &[IoSlice<'_>]) -> Result<usize, Error>

Like write, except that it writes from a slice of buffers. Read more
source§

fn is_write_vectored(&self) -> bool

🔬This is a nightly-only experimental API. (can_vector)
Determines if this Writer has an efficient write_vectored -implementation. Read more
1.0.0 · source§

fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>

Attempts to write an entire buffer into this writer. Read more
source§

fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>

🔬This is a nightly-only experimental API. (write_all_vectored)
Attempts to write multiple buffers into this writer. Read more
1.0.0 · source§

fn write_fmt(&mut self, fmt: Arguments<'_>) -> Result<(), Error>

Writes a formatted string into this writer, returning any error -encountered. Read more
1.0.0 · source§

fn by_ref(&mut self) -> &mut Self
where - Self: Sized,

Creates a “by reference” adapter for this instance of Write. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where - T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where +

Trait Implementations§

source§

impl Deref for OnionStream

source§

type Target = TcpStream

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl DerefMut for OnionStream

source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.
source§

impl From<OnionStream> for TcpStream

source§

fn from(onion_stream: OnionStream) -> Self

Converts to this type from the input type.
source§

impl Read for OnionStream

source§

fn read(&mut self, buf: &mut [u8]) -> Result<usize, Error>

Pull some bytes from this source into the specified buffer, returning +how many bytes were read. Read more
1.36.0 · source§

fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>

Like read, except that it reads into a slice of buffers. Read more
source§

fn is_read_vectored(&self) -> bool

🔬This is a nightly-only experimental API. (can_vector)
Determines if this Reader has an efficient read_vectored +implementation. Read more
1.0.0 · source§

fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>

Reads all bytes until EOF in this source, placing them into buf. Read more
1.0.0 · source§

fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>

Reads all bytes until EOF in this source, appending them to buf. Read more
1.6.0 · source§

fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>

Reads the exact number of bytes required to fill buf. Read more
source§

fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>

🔬This is a nightly-only experimental API. (read_buf)
Pull some bytes from this source into the specified buffer. Read more
source§

fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>

🔬This is a nightly-only experimental API. (read_buf)
Reads the exact number of bytes required to fill cursor. Read more
1.0.0 · source§

fn by_ref(&mut self) -> &mut Self
where + Self: Sized,

Creates a “by reference” adaptor for this instance of Read. Read more
1.0.0 · source§

fn bytes(self) -> Bytes<Self>
where + Self: Sized,

Transforms this Read instance to an Iterator over its bytes. Read more
1.0.0 · source§

fn chain<R>(self, next: R) -> Chain<Self, R>
where + R: Read, + Self: Sized,

Creates an adapter which will chain this stream with another. Read more
1.0.0 · source§

fn take(self, limit: u64) -> Take<Self>
where + Self: Sized,

Creates an adapter which will read at most limit bytes from it. Read more
source§

impl Write for OnionStream

source§

fn write(&mut self, buf: &[u8]) -> Result<usize, Error>

Writes a buffer into this writer, returning how many bytes were written. Read more
source§

fn flush(&mut self) -> Result<(), Error>

Flushes this output stream, ensuring that all intermediately buffered +contents reach their destination. Read more
1.36.0 · source§

fn write_vectored(&mut self, bufs: &[IoSlice<'_>]) -> Result<usize, Error>

Like write, except that it writes from a slice of buffers. Read more
source§

fn is_write_vectored(&self) -> bool

🔬This is a nightly-only experimental API. (can_vector)
Determines if this Writer has an efficient write_vectored +implementation. Read more
1.0.0 · source§

fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>

Attempts to write an entire buffer into this writer. Read more
source§

fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>

🔬This is a nightly-only experimental API. (write_all_vectored)
Attempts to write multiple buffers into this writer. Read more
1.0.0 · source§

fn write_fmt(&mut self, fmt: Arguments<'_>) -> Result<(), Error>

Writes a formatted string into this writer, returning any error +encountered. Read more
1.0.0 · source§

fn by_ref(&mut self) -> &mut Self
where + Self: Sized,

Creates a “by reference” adapter for this instance of Write. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where + T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, - constructed: bool, - tag: u32, -) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where - Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where - 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 + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where + 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
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
§

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 + 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 + 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 + 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 Pointer implementation when + 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 Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where - Self: UpperExp,

Causes self to use its UpperExp implementation when + 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 + 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 more
source§

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
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> +From<T> for U chooses to do.

+
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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
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 Source
where 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) -> Target
where - Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where - T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where - 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) -> R
where - 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) -> R
where - 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
where - Self: Borrow<B>, - B: 'a + ?Sized, +) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
§

fn octets_into(self) -> Target
where + Self::Error: Into<Infallible>,

Performs an infallible conversion.
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + 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) -> R
where + 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) -> R
where + 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
where + Self: Borrow<B>, + B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

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
where - Self: BorrowMut<B>, - B: 'a + ?Sized, + Self: BorrowMut<B>, + B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe -function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where - Self: AsRef<U>, - U: 'a + ?Sized, - R: 'a,

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
where - Self: AsMut<U>, - U: 'a + ?Sized, +function. Read more

§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

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
where + Self: AsMut<U>, + U: 'a + ?Sized, R: 'a,

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
where - Self: Deref<Target = T>, - T: 'a + ?Sized, +function.

§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, - func: impl FnOnce(&'a mut T) -> R, + func: impl FnOnce(&'a mut T) -> R, ) -> R
where - Self: DerefMut<Target = T> + Deref, - T: 'a + ?Sized, + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
§

impl<R> ReadBytesExt for R
where - R: Read + ?Sized,

§

fn read_u8(&mut self) -> Result<u8, Error>

Reads an unsigned 8 bit integer from the underlying reader. Read more
§

fn read_i8(&mut self) -> Result<i8, Error>

Reads a signed 8 bit integer from the underlying reader. Read more
§

fn read_u16<T>(&mut self) -> Result<u16, Error>
where - T: ByteOrder,

Reads an unsigned 16 bit integer from the underlying reader. Read more
§

fn read_i16<T>(&mut self) -> Result<i16, Error>
where - T: ByteOrder,

Reads a signed 16 bit integer from the underlying reader. Read more
§

fn read_u24<T>(&mut self) -> Result<u32, Error>
where - T: ByteOrder,

Reads an unsigned 24 bit integer from the underlying reader. Read more
§

fn read_i24<T>(&mut self) -> Result<i32, Error>
where - T: ByteOrder,

Reads a signed 24 bit integer from the underlying reader. Read more
§

fn read_u32<T>(&mut self) -> Result<u32, Error>
where - T: ByteOrder,

Reads an unsigned 32 bit integer from the underlying reader. Read more
§

fn read_i32<T>(&mut self) -> Result<i32, Error>
where - T: ByteOrder,

Reads a signed 32 bit integer from the underlying reader. Read more
§

fn read_u48<T>(&mut self) -> Result<u64, Error>
where - T: ByteOrder,

Reads an unsigned 48 bit integer from the underlying reader. Read more
§

fn read_i48<T>(&mut self) -> Result<i64, Error>
where - T: ByteOrder,

Reads a signed 48 bit integer from the underlying reader. Read more
§

fn read_u64<T>(&mut self) -> Result<u64, Error>
where - T: ByteOrder,

Reads an unsigned 64 bit integer from the underlying reader. Read more
§

fn read_i64<T>(&mut self) -> Result<i64, Error>
where - T: ByteOrder,

Reads a signed 64 bit integer from the underlying reader. Read more
§

fn read_u128<T>(&mut self) -> Result<u128, Error>
where - T: ByteOrder,

Reads an unsigned 128 bit integer from the underlying reader. Read more
§

fn read_i128<T>(&mut self) -> Result<i128, Error>
where - T: ByteOrder,

Reads a signed 128 bit integer from the underlying reader. Read more
§

fn read_uint<T>(&mut self, nbytes: usize) -> Result<u64, Error>
where - T: ByteOrder,

Reads an unsigned n-bytes integer from the underlying reader. Read more
§

fn read_int<T>(&mut self, nbytes: usize) -> Result<i64, Error>
where - T: ByteOrder,

Reads a signed n-bytes integer from the underlying reader. Read more
§

fn read_uint128<T>(&mut self, nbytes: usize) -> Result<u128, Error>
where - T: ByteOrder,

Reads an unsigned n-bytes integer from the underlying reader.
§

fn read_int128<T>(&mut self, nbytes: usize) -> Result<i128, Error>
where - T: ByteOrder,

Reads a signed n-bytes integer from the underlying reader.
§

fn read_f32<T>(&mut self) -> Result<f32, Error>
where + R: Read + ?Sized,

§

fn read_u8(&mut self) -> Result<u8, Error>

Reads an unsigned 8 bit integer from the underlying reader. Read more
§

fn read_i8(&mut self) -> Result<i8, Error>

Reads a signed 8 bit integer from the underlying reader. Read more
§

fn read_u16<T>(&mut self) -> Result<u16, Error>
where + T: ByteOrder,

Reads an unsigned 16 bit integer from the underlying reader. Read more
§

fn read_i16<T>(&mut self) -> Result<i16, Error>
where + T: ByteOrder,

Reads a signed 16 bit integer from the underlying reader. Read more
§

fn read_u24<T>(&mut self) -> Result<u32, Error>
where + T: ByteOrder,

Reads an unsigned 24 bit integer from the underlying reader. Read more
§

fn read_i24<T>(&mut self) -> Result<i32, Error>
where + T: ByteOrder,

Reads a signed 24 bit integer from the underlying reader. Read more
§

fn read_u32<T>(&mut self) -> Result<u32, Error>
where + T: ByteOrder,

Reads an unsigned 32 bit integer from the underlying reader. Read more
§

fn read_i32<T>(&mut self) -> Result<i32, Error>
where + T: ByteOrder,

Reads a signed 32 bit integer from the underlying reader. Read more
§

fn read_u48<T>(&mut self) -> Result<u64, Error>
where + T: ByteOrder,

Reads an unsigned 48 bit integer from the underlying reader. Read more
§

fn read_i48<T>(&mut self) -> Result<i64, Error>
where + T: ByteOrder,

Reads a signed 48 bit integer from the underlying reader. Read more
§

fn read_u64<T>(&mut self) -> Result<u64, Error>
where + T: ByteOrder,

Reads an unsigned 64 bit integer from the underlying reader. Read more
§

fn read_i64<T>(&mut self) -> Result<i64, Error>
where + T: ByteOrder,

Reads a signed 64 bit integer from the underlying reader. Read more
§

fn read_u128<T>(&mut self) -> Result<u128, Error>
where + T: ByteOrder,

Reads an unsigned 128 bit integer from the underlying reader. Read more
§

fn read_i128<T>(&mut self) -> Result<i128, Error>
where + T: ByteOrder,

Reads a signed 128 bit integer from the underlying reader. Read more
§

fn read_uint<T>(&mut self, nbytes: usize) -> Result<u64, Error>
where + T: ByteOrder,

Reads an unsigned n-bytes integer from the underlying reader. Read more
§

fn read_int<T>(&mut self, nbytes: usize) -> Result<i64, Error>
where + T: ByteOrder,

Reads a signed n-bytes integer from the underlying reader. Read more
§

fn read_uint128<T>(&mut self, nbytes: usize) -> Result<u128, Error>
where + T: ByteOrder,

Reads an unsigned n-bytes integer from the underlying reader.
§

fn read_int128<T>(&mut self, nbytes: usize) -> Result<i128, Error>
where + T: ByteOrder,

Reads a signed n-bytes integer from the underlying reader.
§

fn read_f32<T>(&mut self) -> Result<f32, Error>
where T: ByteOrder,

Reads a IEEE754 single-precision (4 bytes) floating point number from -the underlying reader. Read more
§

fn read_f64<T>(&mut self) -> Result<f64, Error>
where +the underlying reader. Read more

§

fn read_f64<T>(&mut self) -> Result<f64, Error>
where T: ByteOrder,

Reads a IEEE754 double-precision (8 bytes) floating point number from -the underlying reader. Read more
§

fn read_u16_into<T>(&mut self, dst: &mut [u16]) -> Result<(), Error>
where +the underlying reader. Read more

§

fn read_u16_into<T>(&mut self, dst: &mut [u16]) -> Result<(), Error>
where T: ByteOrder,

Reads a sequence of unsigned 16 bit integers from the underlying -reader. Read more
§

fn read_u32_into<T>(&mut self, dst: &mut [u32]) -> Result<(), Error>
where +reader. Read more

§

fn read_u32_into<T>(&mut self, dst: &mut [u32]) -> Result<(), Error>
where T: ByteOrder,

Reads a sequence of unsigned 32 bit integers from the underlying -reader. Read more
§

fn read_u64_into<T>(&mut self, dst: &mut [u64]) -> Result<(), Error>
where +reader. Read more

§

fn read_u64_into<T>(&mut self, dst: &mut [u64]) -> Result<(), Error>
where T: ByteOrder,

Reads a sequence of unsigned 64 bit integers from the underlying -reader. Read more
§

fn read_u128_into<T>(&mut self, dst: &mut [u128]) -> Result<(), Error>
where +reader. Read more

§

fn read_u128_into<T>(&mut self, dst: &mut [u128]) -> Result<(), Error>
where T: ByteOrder,

Reads a sequence of unsigned 128 bit integers from the underlying -reader. Read more
§

fn read_i8_into(&mut self, dst: &mut [i8]) -> Result<(), Error>

Reads a sequence of signed 8 bit integers from the underlying reader. Read more
§

fn read_i16_into<T>(&mut self, dst: &mut [i16]) -> Result<(), Error>
where +reader. Read more

§

fn read_i8_into(&mut self, dst: &mut [i8]) -> Result<(), Error>

Reads a sequence of signed 8 bit integers from the underlying reader. Read more
§

fn read_i16_into<T>(&mut self, dst: &mut [i16]) -> Result<(), Error>
where T: ByteOrder,

Reads a sequence of signed 16 bit integers from the underlying -reader. Read more
§

fn read_i32_into<T>(&mut self, dst: &mut [i32]) -> Result<(), Error>
where +reader. Read more

§

fn read_i32_into<T>(&mut self, dst: &mut [i32]) -> Result<(), Error>
where T: ByteOrder,

Reads a sequence of signed 32 bit integers from the underlying -reader. Read more
§

fn read_i64_into<T>(&mut self, dst: &mut [i64]) -> Result<(), Error>
where +reader. Read more

§

fn read_i64_into<T>(&mut self, dst: &mut [i64]) -> Result<(), Error>
where T: ByteOrder,

Reads a sequence of signed 64 bit integers from the underlying -reader. Read more
§

fn read_i128_into<T>(&mut self, dst: &mut [i128]) -> Result<(), Error>
where +reader. Read more

§

fn read_i128_into<T>(&mut self, dst: &mut [i128]) -> Result<(), Error>
where T: ByteOrder,

Reads a sequence of signed 128 bit integers from the underlying -reader. Read more
§

fn read_f32_into<T>(&mut self, dst: &mut [f32]) -> Result<(), Error>
where +reader. Read more

§

fn read_f32_into<T>(&mut self, dst: &mut [f32]) -> Result<(), Error>
where T: ByteOrder,

Reads a sequence of IEEE754 single-precision (4 bytes) floating -point numbers from the underlying reader. Read more
§

fn read_f32_into_unchecked<T>(&mut self, dst: &mut [f32]) -> Result<(), Error>
where - T: ByteOrder,

👎Deprecated since 1.2.0: please use read_f32_into instead
DEPRECATED. Read more
§

fn read_f64_into<T>(&mut self, dst: &mut [f64]) -> Result<(), Error>
where +point numbers from the underlying reader. Read more

§

fn read_f32_into_unchecked<T>(&mut self, dst: &mut [f32]) -> Result<(), Error>
where + T: ByteOrder,

👎Deprecated since 1.2.0: please use read_f32_into instead
DEPRECATED. Read more
§

fn read_f64_into<T>(&mut self, dst: &mut [f64]) -> Result<(), Error>
where T: ByteOrder,

Reads a sequence of IEEE754 double-precision (8 bytes) floating -point numbers from the underlying reader. Read more
§

fn read_f64_into_unchecked<T>(&mut self, dst: &mut [f64]) -> Result<(), Error>
where - T: ByteOrder,

👎Deprecated since 1.2.0: please use read_f64_into instead
DEPRECATED. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where - Self: Borrow<B>, - B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where - Self: BorrowMut<B>, - B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where - Self: AsRef<R>, - R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where - Self: AsMut<R>, - R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where - Self: Deref<Target = T>, - T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

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
where - Self: Borrow<B>, - B: ?Sized,

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
where - Self: BorrowMut<B>, - B: ?Sized,

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
where - Self: AsRef<R>, - R: ?Sized,

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
where - Self: AsMut<R>, - R: ?Sized,

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
where - Self: Deref<Target = T>, - T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release -builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where - Self: DerefMut<Target = T> + Deref, - T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release -builds.
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where - Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +point numbers from the underlying reader. Read more

§

fn read_f64_into_unchecked<T>(&mut self, dst: &mut [f64]) -> Result<(), Error>
where + T: ByteOrder,

👎Deprecated since 1.2.0: please use read_f64_into instead
DEPRECATED. Read more
source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

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
where + Self: Borrow<B>, + B: ?Sized,

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
where + Self: BorrowMut<B>, + B: ?Sized,

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
where + Self: AsRef<R>, + R: ?Sized,

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
where + Self: AsMut<R>, + R: ?Sized,

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
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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>,
Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<W> WriteBytesExt for W
where - W: Write + ?Sized,

§

fn write_u8(&mut self, n: u8) -> Result<(), Error>

Writes an unsigned 8 bit integer to the underlying writer. Read more
§

fn write_i8(&mut self, n: i8) -> Result<(), Error>

Writes a signed 8 bit integer to the underlying writer. Read more
§

fn write_u16<T>(&mut self, n: u16) -> Result<(), Error>
where - T: ByteOrder,

Writes an unsigned 16 bit integer to the underlying writer. Read more
§

fn write_i16<T>(&mut self, n: i16) -> Result<(), Error>
where - T: ByteOrder,

Writes a signed 16 bit integer to the underlying writer. Read more
§

fn write_u24<T>(&mut self, n: u32) -> Result<(), Error>
where - T: ByteOrder,

Writes an unsigned 24 bit integer to the underlying writer. Read more
§

fn write_i24<T>(&mut self, n: i32) -> Result<(), Error>
where - T: ByteOrder,

Writes a signed 24 bit integer to the underlying writer. Read more
§

fn write_u32<T>(&mut self, n: u32) -> Result<(), Error>
where - T: ByteOrder,

Writes an unsigned 32 bit integer to the underlying writer. Read more
§

fn write_i32<T>(&mut self, n: i32) -> Result<(), Error>
where - T: ByteOrder,

Writes a signed 32 bit integer to the underlying writer. Read more
§

fn write_u48<T>(&mut self, n: u64) -> Result<(), Error>
where - T: ByteOrder,

Writes an unsigned 48 bit integer to the underlying writer. Read more
§

fn write_i48<T>(&mut self, n: i64) -> Result<(), Error>
where - T: ByteOrder,

Writes a signed 48 bit integer to the underlying writer. Read more
§

fn write_u64<T>(&mut self, n: u64) -> Result<(), Error>
where - T: ByteOrder,

Writes an unsigned 64 bit integer to the underlying writer. Read more
§

fn write_i64<T>(&mut self, n: i64) -> Result<(), Error>
where - T: ByteOrder,

Writes a signed 64 bit integer to the underlying writer. Read more
§

fn write_u128<T>(&mut self, n: u128) -> Result<(), Error>
where - T: ByteOrder,

Writes an unsigned 128 bit integer to the underlying writer.
§

fn write_i128<T>(&mut self, n: i128) -> Result<(), Error>
where - T: ByteOrder,

Writes a signed 128 bit integer to the underlying writer.
§

fn write_uint<T>(&mut self, n: u64, nbytes: usize) -> Result<(), Error>
where - T: ByteOrder,

Writes an unsigned n-bytes integer to the underlying writer. Read more
§

fn write_int<T>(&mut self, n: i64, nbytes: usize) -> Result<(), Error>
where - T: ByteOrder,

Writes a signed n-bytes integer to the underlying writer. Read more
§

fn write_uint128<T>(&mut self, n: u128, nbytes: usize) -> Result<(), Error>
where - T: ByteOrder,

Writes an unsigned n-bytes integer to the underlying writer. Read more
§

fn write_int128<T>(&mut self, n: i128, nbytes: usize) -> Result<(), Error>
where - T: ByteOrder,

Writes a signed n-bytes integer to the underlying writer. Read more
§

fn write_f32<T>(&mut self, n: f32) -> Result<(), Error>
where + W: Write + ?Sized,

§

fn write_u8(&mut self, n: u8) -> Result<(), Error>

Writes an unsigned 8 bit integer to the underlying writer. Read more
§

fn write_i8(&mut self, n: i8) -> Result<(), Error>

Writes a signed 8 bit integer to the underlying writer. Read more
§

fn write_u16<T>(&mut self, n: u16) -> Result<(), Error>
where + T: ByteOrder,

Writes an unsigned 16 bit integer to the underlying writer. Read more
§

fn write_i16<T>(&mut self, n: i16) -> Result<(), Error>
where + T: ByteOrder,

Writes a signed 16 bit integer to the underlying writer. Read more
§

fn write_u24<T>(&mut self, n: u32) -> Result<(), Error>
where + T: ByteOrder,

Writes an unsigned 24 bit integer to the underlying writer. Read more
§

fn write_i24<T>(&mut self, n: i32) -> Result<(), Error>
where + T: ByteOrder,

Writes a signed 24 bit integer to the underlying writer. Read more
§

fn write_u32<T>(&mut self, n: u32) -> Result<(), Error>
where + T: ByteOrder,

Writes an unsigned 32 bit integer to the underlying writer. Read more
§

fn write_i32<T>(&mut self, n: i32) -> Result<(), Error>
where + T: ByteOrder,

Writes a signed 32 bit integer to the underlying writer. Read more
§

fn write_u48<T>(&mut self, n: u64) -> Result<(), Error>
where + T: ByteOrder,

Writes an unsigned 48 bit integer to the underlying writer. Read more
§

fn write_i48<T>(&mut self, n: i64) -> Result<(), Error>
where + T: ByteOrder,

Writes a signed 48 bit integer to the underlying writer. Read more
§

fn write_u64<T>(&mut self, n: u64) -> Result<(), Error>
where + T: ByteOrder,

Writes an unsigned 64 bit integer to the underlying writer. Read more
§

fn write_i64<T>(&mut self, n: i64) -> Result<(), Error>
where + T: ByteOrder,

Writes a signed 64 bit integer to the underlying writer. Read more
§

fn write_u128<T>(&mut self, n: u128) -> Result<(), Error>
where + T: ByteOrder,

Writes an unsigned 128 bit integer to the underlying writer.
§

fn write_i128<T>(&mut self, n: i128) -> Result<(), Error>
where + T: ByteOrder,

Writes a signed 128 bit integer to the underlying writer.
§

fn write_uint<T>(&mut self, n: u64, nbytes: usize) -> Result<(), Error>
where + T: ByteOrder,

Writes an unsigned n-bytes integer to the underlying writer. Read more
§

fn write_int<T>(&mut self, n: i64, nbytes: usize) -> Result<(), Error>
where + T: ByteOrder,

Writes a signed n-bytes integer to the underlying writer. Read more
§

fn write_uint128<T>(&mut self, n: u128, nbytes: usize) -> Result<(), Error>
where + T: ByteOrder,

Writes an unsigned n-bytes integer to the underlying writer. Read more
§

fn write_int128<T>(&mut self, n: i128, nbytes: usize) -> Result<(), Error>
where + T: ByteOrder,

Writes a signed n-bytes integer to the underlying writer. Read more
§

fn write_f32<T>(&mut self, n: f32) -> Result<(), Error>
where T: ByteOrder,

Writes a IEEE754 single-precision (4 bytes) floating point number to -the underlying writer. Read more
§

fn write_f64<T>(&mut self, n: f64) -> Result<(), Error>
where +the underlying writer. Read more

§

fn write_f64<T>(&mut self, n: f64) -> Result<(), Error>
where T: ByteOrder,

Writes a IEEE754 double-precision (8 bytes) floating point number to the underlying writer. Read more
§

impl<W> Writer for W
where - W: Write,

§

fn write(&mut self, slice: &[u8]) -> Result<(), Error>

Write the given DER-encoded bytes as output.
§

fn write_byte(&mut self, byte: u8) -> Result<(), Error>

Write a single byte.
§

impl<T> ErasedDestructor for T
where + W: Write,

§

fn write(&mut self, slice: &[u8]) -> Result<(), Error>

Write the given DER-encoded bytes as output.
§

fn write_byte(&mut self, byte: u8) -> Result<(), Error>

Write a single byte.
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T

\ No newline at end of file diff --git a/crates/tor_interface/tor_provider/trait.TorProvider.html b/crates/tor_interface/tor_provider/trait.TorProvider.html index 409dd5fc..377df382 100644 --- a/crates/tor_interface/tor_provider/trait.TorProvider.html +++ b/crates/tor_interface/tor_provider/trait.TorProvider.html @@ -1,55 +1,55 @@ -TorProvider in tor_interface::tor_provider - Rust

Trait tor_interface::tor_provider::TorProvider

source ·
pub trait TorProvider: Send {
+TorProvider in tor_interface::tor_provider - Rust

Trait tor_interface::tor_provider::TorProvider

source ·
pub trait TorProvider: Send {
     // Required methods
-    fn update(&mut self) -> Result<Vec<TorEvent>, Error>;
-    fn bootstrap(&mut self) -> Result<(), Error>;
+    fn update(&mut self) -> Result<Vec<TorEvent>, Error>;
+    fn bootstrap(&mut self) -> Result<(), Error>;
     fn add_client_auth(
         &mut self,
         service_id: &V3OnionServiceId,
         client_auth: &X25519PrivateKey,
-    ) -> Result<(), Error>;
+    ) -> Result<(), Error>;
     fn remove_client_auth(
         &mut self,
         service_id: &V3OnionServiceId,
-    ) -> Result<(), Error>;
+    ) -> Result<(), Error>;
     fn connect(
         &mut self,
         target: TargetAddr,
-        circuit: Option<CircuitToken>,
-    ) -> Result<OnionStream, Error>;
+        circuit: Option<CircuitToken>,
+    ) -> Result<OnionStream, Error>;
     fn listener(
         &mut self,
         private_key: &Ed25519PrivateKey,
-        virt_port: u16,
-        authorised_clients: Option<&[X25519PublicKey]>,
-    ) -> Result<OnionListener, Error>;
+        virt_port: u16,
+        authorised_clients: Option<&[X25519PublicKey]>,
+    ) -> Result<OnionListener, Error>;
     fn generate_token(&mut self) -> CircuitToken;
     fn release_token(&mut self, token: CircuitToken);
 }
Expand description

The TorProvider trait allows for high-level Tor Network functionality. Implementations ay connect to the Tor Network, anonymously connect to both clearnet and onion-service endpoints, and host onion-services.

-

Required Methods§

source

fn update(&mut self) -> Result<Vec<TorEvent>, Error>

Process and return TorEvents handled by this TorProvider.

-
source

fn bootstrap(&mut self) -> Result<(), Error>

Begin connecting to the Tor Network.

+

Required Methods§

source

fn update(&mut self) -> Result<Vec<TorEvent>, Error>

Process and return TorEvents handled by this TorProvider.

+
source

fn bootstrap(&mut self) -> Result<(), Error>

Begin connecting to the Tor Network.

source

fn add_client_auth( &mut self, service_id: &V3OnionServiceId, client_auth: &X25519PrivateKey, -) -> Result<(), Error>

Add v3 onion-service authorisation credentials, allowing this TorProvider to connect to an onion-service whose service-descriptor is encrypted using the assocciated x25519 public key.

+) -> Result<(), Error>

Add v3 onion-service authorisation credentials, allowing this TorProvider to connect to an onion-service whose service-descriptor is encrypted using the assocciated x25519 public key.

source

fn remove_client_auth( &mut self, service_id: &V3OnionServiceId, -) -> Result<(), Error>

Remove a previously added client authorisation credential. This TorProvider will be unable to connect to the onion-service associated with the removed credentail.

+) -> Result<(), Error>

Remove a previously added client authorisation credential. This TorProvider will be unable to connect to the onion-service associated with the removed credentail.

source

fn connect( &mut self, target: TargetAddr, - circuit: Option<CircuitToken>, -) -> Result<OnionStream, Error>

Anonymously connect to the address specified by target over the Tor Network and return the associated OnionStream.

+ circuit: Option<CircuitToken>, +) -> Result<OnionStream, Error>

Anonymously connect to the address specified by target over the Tor Network and return the associated OnionStream.

When conecting to clearnet targets, an optional CircuitToken may be used to enforce usage of different circuits through the Tor Network. If circuit is None, the default circuit is used.

Connections made with different CircuitTokens are required to use different circuits through the Tor Network. However, connections made with identical CircuitTokens are not required to use identical circuits through the Tor Network.

Specifying a circuit token when connecting to an onion-service has no effect on the resulting circuit.

source

fn listener( &mut self, private_key: &Ed25519PrivateKey, - virt_port: u16, - authorised_clients: Option<&[X25519PublicKey]>, -) -> Result<OnionListener, Error>

Anonymously start an onion-service and return the associated OnionListener.

+ virt_port: u16, + authorised_clients: Option<&[X25519PublicKey]>, +) -> Result<OnionListener, Error>

Anonymously start an onion-service and return the associated OnionListener.

The resulting onion-service will not be reachable by clients until TorProvider::update() returns a TorEvent::OnionServicePublished event. The optional authorised_clients parameter may be used to require client authorisation keys to connect to resulting onion-service. For further information, see the Tor Project’s onion-services client-auth documentation.

source

fn generate_token(&mut self) -> CircuitToken

Create a new CircuitToken.

source

fn release_token(&mut self, token: CircuitToken)

Releaes a previously generated CircuitToken.

diff --git a/crates/tor_interface/tor_provider/type.CircuitToken.html b/crates/tor_interface/tor_provider/type.CircuitToken.html index b98672c8..7778f361 100644 --- a/crates/tor_interface/tor_provider/type.CircuitToken.html +++ b/crates/tor_interface/tor_provider/type.CircuitToken.html @@ -1,2 +1,2 @@ -CircuitToken in tor_interface::tor_provider - Rust

Type Alias tor_interface::tor_provider::CircuitToken

source ·
pub type CircuitToken = usize;
Expand description

A CircuitToken is used to specify circuits used to connect to clearnet services.

+CircuitToken in tor_interface::tor_provider - Rust

Type Alias tor_interface::tor_provider::CircuitToken

source ·
pub type CircuitToken = usize;
Expand description

A CircuitToken is used to specify circuits used to connect to clearnet services.

\ No newline at end of file diff --git a/crates/trait.impl/alloc/string/trait.ToString.js b/crates/trait.impl/alloc/string/trait.ToString.js index afb3d6e0..59830d8d 100644 --- a/crates/trait.impl/alloc/string/trait.ToString.js +++ b/crates/trait.impl/alloc/string/trait.ToString.js @@ -1,3 +1,9 @@ -(function() {var implementors = { -"tor_interface":[["impl ToString for LegacyTorVersion"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["tor_interface",[["impl ToString for LegacyTorVersion"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[360]} \ No newline at end of file diff --git a/crates/trait.impl/core/clone/trait.Clone.js b/crates/trait.impl/core/clone/trait.Clone.js index 7155e0cd..095a8e09 100644 --- a/crates/trait.impl/core/clone/trait.Clone.js +++ b/crates/trait.impl/core/clone/trait.Clone.js @@ -1,3 +1,9 @@ -(function() {var implementors = { -"tor_interface":[["impl Clone for LegacyTorClientConfig"],["impl Clone for ProxyConfig"],["impl Clone for SignBit"],["impl Clone for OnionAddr"],["impl Clone for TargetAddr"],["impl Clone for BridgeLine"],["impl Clone for PluggableTransportConfig"],["impl Clone for LegacyTorVersion"],["impl Clone for HttpsProxyConfig"],["impl Clone for Socks4ProxyConfig"],["impl Clone for Socks5ProxyConfig"],["impl Clone for Ed25519PrivateKey"],["impl Clone for Ed25519PublicKey"],["impl Clone for Ed25519Signature"],["impl Clone for V3OnionServiceId"],["impl Clone for X25519PrivateKey"],["impl Clone for X25519PublicKey"],["impl Clone for DomainAddr"],["impl Clone for OnionAddrV3"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["tor_interface",[["impl Clone for LegacyTorClientConfig"],["impl Clone for ProxyConfig"],["impl Clone for SignBit"],["impl Clone for OnionAddr"],["impl Clone for TargetAddr"],["impl Clone for BridgeLine"],["impl Clone for PluggableTransportConfig"],["impl Clone for LegacyTorVersion"],["impl Clone for HttpsProxyConfig"],["impl Clone for Socks4ProxyConfig"],["impl Clone for Socks5ProxyConfig"],["impl Clone for Ed25519PrivateKey"],["impl Clone for Ed25519PublicKey"],["impl Clone for Ed25519Signature"],["impl Clone for V3OnionServiceId"],["impl Clone for X25519PrivateKey"],["impl Clone for X25519PublicKey"],["impl Clone for DomainAddr"],["impl Clone for OnionAddrV3"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[5892]} \ No newline at end of file diff --git a/crates/trait.impl/core/cmp/trait.Eq.js b/crates/trait.impl/core/cmp/trait.Eq.js index 86e6aec5..044f6e32 100644 --- a/crates/trait.impl/core/cmp/trait.Eq.js +++ b/crates/trait.impl/core/cmp/trait.Eq.js @@ -1,4 +1,9 @@ -(function() {var implementors = { -"honk_rpc":[["impl Eq for ErrorCode"]], -"tor_interface":[["impl Eq for OnionAddr"],["impl Eq for V3OnionServiceId"],["impl Eq for X25519PublicKey"],["impl Eq for DomainAddr"],["impl Eq for OnionAddrV3"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["honk_rpc",[["impl Eq for ErrorCode"]]],["tor_interface",[["impl Eq for OnionAddr"],["impl Eq for V3OnionServiceId"],["impl Eq for X25519PublicKey"],["impl Eq for DomainAddr"],["impl Eq for OnionAddrV3"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[272,1464]} \ No newline at end of file diff --git a/crates/trait.impl/core/cmp/trait.Ord.js b/crates/trait.impl/core/cmp/trait.Ord.js index 90bc8132..b383d6f0 100644 --- a/crates/trait.impl/core/cmp/trait.Ord.js +++ b/crates/trait.impl/core/cmp/trait.Ord.js @@ -1,3 +1,9 @@ -(function() {var implementors = { -"tor_interface":[["impl Ord for OnionAddr"],["impl Ord for V3OnionServiceId"],["impl Ord for DomainAddr"],["impl Ord for OnionAddrV3"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["tor_interface",[["impl Ord for OnionAddr"],["impl Ord for V3OnionServiceId"],["impl Ord for DomainAddr"],["impl Ord for OnionAddrV3"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[1179]} \ No newline at end of file diff --git a/crates/trait.impl/core/cmp/trait.PartialEq.js b/crates/trait.impl/core/cmp/trait.PartialEq.js index bb4d9476..77f5e7ca 100644 --- a/crates/trait.impl/core/cmp/trait.PartialEq.js +++ b/crates/trait.impl/core/cmp/trait.PartialEq.js @@ -1,4 +1,9 @@ -(function() {var implementors = { -"honk_rpc":[["impl PartialEq for ErrorCode"]], -"tor_interface":[["impl PartialEq for OnionAddr"],["impl PartialEq for LegacyTorVersion"],["impl PartialEq for Ed25519PrivateKey"],["impl PartialEq for Ed25519PublicKey"],["impl PartialEq for Ed25519Signature"],["impl PartialEq for V3OnionServiceId"],["impl PartialEq for X25519PrivateKey"],["impl PartialEq for X25519PublicKey"],["impl PartialEq for DomainAddr"],["impl PartialEq for OnionAddrV3"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["honk_rpc",[["impl PartialEq for ErrorCode"]]],["tor_interface",[["impl PartialEq for OnionAddr"],["impl PartialEq for LegacyTorVersion"],["impl PartialEq for Ed25519PrivateKey"],["impl PartialEq for Ed25519PublicKey"],["impl PartialEq for Ed25519Signature"],["impl PartialEq for V3OnionServiceId"],["impl PartialEq for X25519PrivateKey"],["impl PartialEq for X25519PublicKey"],["impl PartialEq for DomainAddr"],["impl PartialEq for OnionAddrV3"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[293,3188]} \ No newline at end of file diff --git a/crates/trait.impl/core/cmp/trait.PartialOrd.js b/crates/trait.impl/core/cmp/trait.PartialOrd.js index dd11ac97..980eeec1 100644 --- a/crates/trait.impl/core/cmp/trait.PartialOrd.js +++ b/crates/trait.impl/core/cmp/trait.PartialOrd.js @@ -1,3 +1,9 @@ -(function() {var implementors = { -"tor_interface":[["impl PartialOrd for OnionAddr"],["impl PartialOrd for LegacyTorVersion"],["impl PartialOrd for V3OnionServiceId"],["impl PartialOrd for DomainAddr"],["impl PartialOrd for OnionAddrV3"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["tor_interface",[["impl PartialOrd for OnionAddr"],["impl PartialOrd for LegacyTorVersion"],["impl PartialOrd for V3OnionServiceId"],["impl PartialOrd for DomainAddr"],["impl PartialOrd for OnionAddrV3"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[1602]} \ No newline at end of file diff --git a/crates/trait.impl/core/convert/trait.From.js b/crates/trait.impl/core/convert/trait.From.js index e8b58750..644dd18d 100644 --- a/crates/trait.impl/core/convert/trait.From.js +++ b/crates/trait.impl/core/convert/trait.From.js @@ -1,5 +1,9 @@ -(function() {var implementors = { -"gosling":[["impl From<Error> for Error"],["impl From<Error> for Error"],["impl From<Error> for Error"],["impl From<Error> for Error"]], -"honk_rpc":[["impl From<ErrorCode> for i32"],["impl From<i32> for ErrorCode"]], -"tor_interface":[["impl From<(V3OnionServiceId, u16)> for TargetAddr"],["impl From<Error> for Error"],["impl From<Error> for Error"],["impl From<Error> for Error"],["impl From<SignBit> for bool"],["impl From<SignBit> for u8"],["impl From<bool> for SignBit"],["impl From<HttpsProxyConfig> for ProxyConfig"],["impl From<Socks4ProxyConfig> for ProxyConfig"],["impl From<Socks5ProxyConfig> for ProxyConfig"],["impl From<OnionStream> for TcpStream"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["gosling",[["impl From<Error> for Error"],["impl From<Error> for Error"],["impl From<Error> for Error"],["impl From<Error> for Error"]]],["honk_rpc",[["impl From<ErrorCode> for i32"],["impl From<i32> for ErrorCode"]]],["tor_interface",[["impl From<(V3OnionServiceId, u16)> for TargetAddr"],["impl From<Error> for Error"],["impl From<Error> for Error"],["impl From<Error> for Error"],["impl From<SignBit> for bool"],["impl From<SignBit> for u8"],["impl From<bool> for SignBit"],["impl From<HttpsProxyConfig> for ProxyConfig"],["impl From<Socks4ProxyConfig> for ProxyConfig"],["impl From<Socks5ProxyConfig> for ProxyConfig"],["impl From<OnionStream> for TcpStream"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[1575,765,4815]} \ No newline at end of file diff --git a/crates/trait.impl/core/convert/trait.TryFrom.js b/crates/trait.impl/core/convert/trait.TryFrom.js index ba6291db..cdbb088d 100644 --- a/crates/trait.impl/core/convert/trait.TryFrom.js +++ b/crates/trait.impl/core/convert/trait.TryFrom.js @@ -1,3 +1,9 @@ -(function() {var implementors = { -"tor_interface":[["impl TryFrom<(String, u16)> for DomainAddr"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["tor_interface",[["impl TryFrom<(String, u16)> for DomainAddr"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[577]} \ No newline at end of file diff --git a/crates/trait.impl/core/default/trait.Default.js b/crates/trait.impl/core/default/trait.Default.js index 9066ffb7..4be18421 100644 --- a/crates/trait.impl/core/default/trait.Default.js +++ b/crates/trait.impl/core/default/trait.Default.js @@ -1,3 +1,9 @@ -(function() {var implementors = { -"tor_interface":[["impl Default for MockTorClient"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["tor_interface",[["impl Default for MockTorClient"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[342]} \ No newline at end of file diff --git a/crates/trait.impl/core/error/trait.Error.js b/crates/trait.impl/core/error/trait.Error.js index 50b452f3..5bc6fdfc 100644 --- a/crates/trait.impl/core/error/trait.Error.js +++ b/crates/trait.impl/core/error/trait.Error.js @@ -1,5 +1,9 @@ -(function() {var implementors = { -"gosling":[["impl Error for Error"]], -"honk_rpc":[["impl Error for Error"],["impl Error for ErrorCode"]], -"tor_interface":[["impl Error for Error"],["impl Error for BridgeLineError"],["impl Error for PluggableTransportConfigError"],["impl Error for Error"],["impl Error for Error"],["impl Error for Error"],["impl Error for ProxyConfigError"],["impl Error for Error"],["impl Error for Error"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["gosling",[["impl Error for Error"]]],["honk_rpc",[["impl Error for Error"],["impl Error for ErrorCode"]]],["tor_interface",[["impl Error for Error"],["impl Error for BridgeLineError"],["impl Error for PluggableTransportConfigError"],["impl Error for Error"],["impl Error for Error"],["impl Error for Error"],["impl Error for ProxyConfigError"],["impl Error for Error"],["impl Error for Error"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[268,545,2726]} \ No newline at end of file diff --git a/crates/trait.impl/core/fmt/trait.Debug.js b/crates/trait.impl/core/fmt/trait.Debug.js index 93b3e24c..abdf51d1 100644 --- a/crates/trait.impl/core/fmt/trait.Debug.js +++ b/crates/trait.impl/core/fmt/trait.Debug.js @@ -1,5 +1,9 @@ -(function() {var implementors = { -"gosling":[["impl Debug for ContextEvent"],["impl Debug for Error"]], -"honk_rpc":[["impl Debug for Error"],["impl Debug for ErrorCode"]], -"tor_interface":[["impl Debug for Error"],["impl Debug for BridgeLineError"],["impl Debug for PluggableTransportConfigError"],["impl Debug for Error"],["impl Debug for LegacyTorClientConfig"],["impl Debug for Error"],["impl Debug for Error"],["impl Debug for ProxyConfig"],["impl Debug for ProxyConfigError"],["impl Debug for Error"],["impl Debug for Error"],["impl Debug for OnionAddr"],["impl Debug for TargetAddr"],["impl Debug for TorEvent"],["impl Debug for BridgeLine"],["impl Debug for PluggableTransportConfig"],["impl Debug for HttpsProxyConfig"],["impl Debug for Socks4ProxyConfig"],["impl Debug for Socks5ProxyConfig"],["impl Debug for Ed25519PrivateKey"],["impl Debug for Ed25519PublicKey"],["impl Debug for Ed25519Signature"],["impl Debug for V3OnionServiceId"],["impl Debug for X25519PrivateKey"],["impl Debug for X25519PublicKey"],["impl Debug for DomainAddr"],["impl Debug for OnionAddrV3"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["gosling",[["impl Debug for ContextEvent"],["impl Debug for Error"]]],["honk_rpc",[["impl Debug for Error"],["impl Debug for ErrorCode"]]],["tor_interface",[["impl Debug for Error"],["impl Debug for BridgeLineError"],["impl Debug for PluggableTransportConfigError"],["impl Debug for Error"],["impl Debug for LegacyTorClientConfig"],["impl Debug for Error"],["impl Debug for Error"],["impl Debug for ProxyConfig"],["impl Debug for ProxyConfigError"],["impl Debug for Error"],["impl Debug for Error"],["impl Debug for OnionAddr"],["impl Debug for TargetAddr"],["impl Debug for TorEvent"],["impl Debug for BridgeLine"],["impl Debug for PluggableTransportConfig"],["impl Debug for HttpsProxyConfig"],["impl Debug for Socks4ProxyConfig"],["impl Debug for Socks5ProxyConfig"],["impl Debug for Ed25519PrivateKey"],["impl Debug for Ed25519PublicKey"],["impl Debug for Ed25519Signature"],["impl Debug for V3OnionServiceId"],["impl Debug for X25519PrivateKey"],["impl Debug for X25519PublicKey"],["impl Debug for DomainAddr"],["impl Debug for OnionAddrV3"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[536,537,8170]} \ No newline at end of file diff --git a/crates/trait.impl/core/fmt/trait.Display.js b/crates/trait.impl/core/fmt/trait.Display.js index 48fecec3..9eff9ff6 100644 --- a/crates/trait.impl/core/fmt/trait.Display.js +++ b/crates/trait.impl/core/fmt/trait.Display.js @@ -1,5 +1,9 @@ -(function() {var implementors = { -"gosling":[["impl Display for Error"]], -"honk_rpc":[["impl Display for Error"],["impl Display for ErrorCode"]], -"tor_interface":[["impl Display for Error"],["impl Display for BridgeLineError"],["impl Display for PluggableTransportConfigError"],["impl Display for Error"],["impl Display for Error"],["impl Display for Error"],["impl Display for ProxyConfigError"],["impl Display for Error"],["impl Display for Error"],["impl Display for OnionAddr"],["impl Display for TargetAddr"],["impl Display for V3OnionServiceId"],["impl Display for DomainAddr"],["impl Display for OnionAddrV3"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["gosling",[["impl Display for Error"]]],["honk_rpc",[["impl Display for Error"],["impl Display for ErrorCode"]]],["tor_interface",[["impl Display for Error"],["impl Display for BridgeLineError"],["impl Display for PluggableTransportConfigError"],["impl Display for Error"],["impl Display for Error"],["impl Display for Error"],["impl Display for ProxyConfigError"],["impl Display for Error"],["impl Display for Error"],["impl Display for OnionAddr"],["impl Display for TargetAddr"],["impl Display for V3OnionServiceId"],["impl Display for DomainAddr"],["impl Display for OnionAddrV3"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[270,549,4246]} \ No newline at end of file diff --git a/crates/trait.impl/core/hash/trait.Hash.js b/crates/trait.impl/core/hash/trait.Hash.js index c9ad0b89..3563b160 100644 --- a/crates/trait.impl/core/hash/trait.Hash.js +++ b/crates/trait.impl/core/hash/trait.Hash.js @@ -1,3 +1,9 @@ -(function() {var implementors = { -"tor_interface":[["impl Hash for OnionAddr"],["impl Hash for V3OnionServiceId"],["impl Hash for X25519PublicKey"],["impl Hash for DomainAddr"],["impl Hash for OnionAddrV3"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["tor_interface",[["impl Hash for OnionAddr"],["impl Hash for V3OnionServiceId"],["impl Hash for X25519PublicKey"],["impl Hash for DomainAddr"],["impl Hash for OnionAddrV3"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[1503]} \ No newline at end of file diff --git a/crates/trait.impl/core/marker/trait.Copy.js b/crates/trait.impl/core/marker/trait.Copy.js index 331ec16a..8e14fcd1 100644 --- a/crates/trait.impl/core/marker/trait.Copy.js +++ b/crates/trait.impl/core/marker/trait.Copy.js @@ -1,3 +1,9 @@ -(function() {var implementors = { -"tor_interface":[["impl Copy for SignBit"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["tor_interface",[["impl Copy for SignBit"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[297]} \ No newline at end of file diff --git a/crates/trait.impl/core/marker/trait.Freeze.js b/crates/trait.impl/core/marker/trait.Freeze.js index 55b07dfe..2bee7252 100644 --- a/crates/trait.impl/core/marker/trait.Freeze.js +++ b/crates/trait.impl/core/marker/trait.Freeze.js @@ -1,5 +1,9 @@ -(function() {var implementors = { -"gosling":[["impl Freeze for ContextEvent",1,["gosling::context::ContextEvent"]],["impl Freeze for Error",1,["gosling::context::Error"]],["impl Freeze for Context",1,["gosling::context::Context"]]], -"honk_rpc":[["impl Freeze for Error",1,["honk_rpc::honk_rpc::Error"]],["impl Freeze for ErrorCode",1,["honk_rpc::honk_rpc::ErrorCode"]],["impl Freeze for Response",1,["honk_rpc::honk_rpc::Response"]],["impl<RW> Freeze for Session<RW>
where\n RW: Freeze,
",1,["honk_rpc::honk_rpc::Session"]]], -"tor_interface":[["impl !Freeze for ArtiClientTorClient",1,["tor_interface::arti_client_tor_client::ArtiClientTorClient"]],["impl Freeze for Error",1,["tor_interface::arti_client_tor_client::Error"]],["impl Freeze for BridgeLineError",1,["tor_interface::censorship_circumvention::BridgeLineError"]],["impl Freeze for PluggableTransportConfigError",1,["tor_interface::censorship_circumvention::PluggableTransportConfigError"]],["impl Freeze for Error",1,["tor_interface::legacy_tor_client::Error"]],["impl Freeze for LegacyTorClientConfig",1,["tor_interface::legacy_tor_client::LegacyTorClientConfig"]],["impl Freeze for Error",1,["tor_interface::legacy_tor_version::Error"]],["impl Freeze for Error",1,["tor_interface::mock_tor_client::Error"]],["impl Freeze for ProxyConfig",1,["tor_interface::proxy::ProxyConfig"]],["impl Freeze for ProxyConfigError",1,["tor_interface::proxy::ProxyConfigError"]],["impl Freeze for Error",1,["tor_interface::tor_crypto::Error"]],["impl Freeze for SignBit",1,["tor_interface::tor_crypto::SignBit"]],["impl Freeze for Error",1,["tor_interface::tor_provider::Error"]],["impl Freeze for OnionAddr",1,["tor_interface::tor_provider::OnionAddr"]],["impl Freeze for TargetAddr",1,["tor_interface::tor_provider::TargetAddr"]],["impl Freeze for TorEvent",1,["tor_interface::tor_provider::TorEvent"]],["impl Freeze for BridgeLine",1,["tor_interface::censorship_circumvention::BridgeLine"]],["impl Freeze for PluggableTransportConfig",1,["tor_interface::censorship_circumvention::PluggableTransportConfig"]],["impl Freeze for LegacyTorClient",1,["tor_interface::legacy_tor_client::LegacyTorClient"]],["impl Freeze for LegacyTorVersion",1,["tor_interface::legacy_tor_version::LegacyTorVersion"]],["impl Freeze for MockTorClient",1,["tor_interface::mock_tor_client::MockTorClient"]],["impl Freeze for HttpsProxyConfig",1,["tor_interface::proxy::HttpsProxyConfig"]],["impl Freeze for Socks4ProxyConfig",1,["tor_interface::proxy::Socks4ProxyConfig"]],["impl Freeze for Socks5ProxyConfig",1,["tor_interface::proxy::Socks5ProxyConfig"]],["impl Freeze for Ed25519PrivateKey",1,["tor_interface::tor_crypto::Ed25519PrivateKey"]],["impl Freeze for Ed25519PublicKey",1,["tor_interface::tor_crypto::Ed25519PublicKey"]],["impl Freeze for Ed25519Signature",1,["tor_interface::tor_crypto::Ed25519Signature"]],["impl Freeze for V3OnionServiceId",1,["tor_interface::tor_crypto::V3OnionServiceId"]],["impl Freeze for X25519PrivateKey",1,["tor_interface::tor_crypto::X25519PrivateKey"]],["impl Freeze for X25519PublicKey",1,["tor_interface::tor_crypto::X25519PublicKey"]],["impl Freeze for DomainAddr",1,["tor_interface::tor_provider::DomainAddr"]],["impl Freeze for OnionAddrV3",1,["tor_interface::tor_provider::OnionAddrV3"]],["impl Freeze for OnionListener",1,["tor_interface::tor_provider::OnionListener"]],["impl Freeze for OnionStream",1,["tor_interface::tor_provider::OnionStream"]]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["gosling",[["impl Freeze for ContextEvent",1,["gosling::context::ContextEvent"]],["impl Freeze for Error",1,["gosling::context::Error"]],["impl Freeze for Context",1,["gosling::context::Context"]]]],["honk_rpc",[["impl Freeze for Error",1,["honk_rpc::honk_rpc::Error"]],["impl Freeze for ErrorCode",1,["honk_rpc::honk_rpc::ErrorCode"]],["impl Freeze for Response",1,["honk_rpc::honk_rpc::Response"]],["impl<RW> Freeze for Session<RW>
where\n RW: Freeze,
",1,["honk_rpc::honk_rpc::Session"]]]],["tor_interface",[["impl !Freeze for ArtiClientTorClient",1,["tor_interface::arti_client_tor_client::ArtiClientTorClient"]],["impl Freeze for Error",1,["tor_interface::arti_client_tor_client::Error"]],["impl Freeze for BridgeLineError",1,["tor_interface::censorship_circumvention::BridgeLineError"]],["impl Freeze for PluggableTransportConfigError",1,["tor_interface::censorship_circumvention::PluggableTransportConfigError"]],["impl Freeze for Error",1,["tor_interface::legacy_tor_client::Error"]],["impl Freeze for LegacyTorClientConfig",1,["tor_interface::legacy_tor_client::LegacyTorClientConfig"]],["impl Freeze for Error",1,["tor_interface::legacy_tor_version::Error"]],["impl Freeze for Error",1,["tor_interface::mock_tor_client::Error"]],["impl Freeze for ProxyConfig",1,["tor_interface::proxy::ProxyConfig"]],["impl Freeze for ProxyConfigError",1,["tor_interface::proxy::ProxyConfigError"]],["impl Freeze for Error",1,["tor_interface::tor_crypto::Error"]],["impl Freeze for SignBit",1,["tor_interface::tor_crypto::SignBit"]],["impl Freeze for Error",1,["tor_interface::tor_provider::Error"]],["impl Freeze for OnionAddr",1,["tor_interface::tor_provider::OnionAddr"]],["impl Freeze for TargetAddr",1,["tor_interface::tor_provider::TargetAddr"]],["impl Freeze for TorEvent",1,["tor_interface::tor_provider::TorEvent"]],["impl Freeze for BridgeLine",1,["tor_interface::censorship_circumvention::BridgeLine"]],["impl Freeze for PluggableTransportConfig",1,["tor_interface::censorship_circumvention::PluggableTransportConfig"]],["impl Freeze for LegacyTorClient",1,["tor_interface::legacy_tor_client::LegacyTorClient"]],["impl Freeze for LegacyTorVersion",1,["tor_interface::legacy_tor_version::LegacyTorVersion"]],["impl Freeze for MockTorClient",1,["tor_interface::mock_tor_client::MockTorClient"]],["impl Freeze for HttpsProxyConfig",1,["tor_interface::proxy::HttpsProxyConfig"]],["impl Freeze for Socks4ProxyConfig",1,["tor_interface::proxy::Socks4ProxyConfig"]],["impl Freeze for Socks5ProxyConfig",1,["tor_interface::proxy::Socks5ProxyConfig"]],["impl Freeze for Ed25519PrivateKey",1,["tor_interface::tor_crypto::Ed25519PrivateKey"]],["impl Freeze for Ed25519PublicKey",1,["tor_interface::tor_crypto::Ed25519PublicKey"]],["impl Freeze for Ed25519Signature",1,["tor_interface::tor_crypto::Ed25519Signature"]],["impl Freeze for V3OnionServiceId",1,["tor_interface::tor_crypto::V3OnionServiceId"]],["impl Freeze for X25519PrivateKey",1,["tor_interface::tor_crypto::X25519PrivateKey"]],["impl Freeze for X25519PublicKey",1,["tor_interface::tor_crypto::X25519PublicKey"]],["impl Freeze for DomainAddr",1,["tor_interface::tor_provider::DomainAddr"]],["impl Freeze for OnionAddrV3",1,["tor_interface::tor_provider::OnionAddrV3"]],["impl Freeze for OnionListener",1,["tor_interface::tor_provider::OnionListener"]],["impl Freeze for OnionStream",1,["tor_interface::tor_provider::OnionStream"]]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[925,1442,12363]} \ No newline at end of file diff --git a/crates/trait.impl/core/marker/trait.Send.js b/crates/trait.impl/core/marker/trait.Send.js index 74129aa5..bd38276e 100644 --- a/crates/trait.impl/core/marker/trait.Send.js +++ b/crates/trait.impl/core/marker/trait.Send.js @@ -1,5 +1,9 @@ -(function() {var implementors = { -"gosling":[["impl Send for ContextEvent",1,["gosling::context::ContextEvent"]],["impl Send for Error",1,["gosling::context::Error"]],["impl Send for Context",1,["gosling::context::Context"]]], -"honk_rpc":[["impl Send for Error",1,["honk_rpc::honk_rpc::Error"]],["impl Send for ErrorCode",1,["honk_rpc::honk_rpc::ErrorCode"]],["impl Send for Response",1,["honk_rpc::honk_rpc::Response"]],["impl<RW> Send for Session<RW>
where\n RW: Send,
",1,["honk_rpc::honk_rpc::Session"]]], -"tor_interface":[["impl Send for Error",1,["tor_interface::arti_client_tor_client::Error"]],["impl Send for BridgeLineError",1,["tor_interface::censorship_circumvention::BridgeLineError"]],["impl Send for PluggableTransportConfigError",1,["tor_interface::censorship_circumvention::PluggableTransportConfigError"]],["impl Send for Error",1,["tor_interface::legacy_tor_client::Error"]],["impl Send for LegacyTorClientConfig",1,["tor_interface::legacy_tor_client::LegacyTorClientConfig"]],["impl Send for Error",1,["tor_interface::legacy_tor_version::Error"]],["impl Send for Error",1,["tor_interface::mock_tor_client::Error"]],["impl Send for ProxyConfig",1,["tor_interface::proxy::ProxyConfig"]],["impl Send for ProxyConfigError",1,["tor_interface::proxy::ProxyConfigError"]],["impl Send for Error",1,["tor_interface::tor_crypto::Error"]],["impl Send for SignBit",1,["tor_interface::tor_crypto::SignBit"]],["impl Send for Error",1,["tor_interface::tor_provider::Error"]],["impl Send for OnionAddr",1,["tor_interface::tor_provider::OnionAddr"]],["impl Send for TargetAddr",1,["tor_interface::tor_provider::TargetAddr"]],["impl Send for TorEvent",1,["tor_interface::tor_provider::TorEvent"]],["impl Send for ArtiClientTorClient",1,["tor_interface::arti_client_tor_client::ArtiClientTorClient"]],["impl Send for BridgeLine",1,["tor_interface::censorship_circumvention::BridgeLine"]],["impl Send for PluggableTransportConfig",1,["tor_interface::censorship_circumvention::PluggableTransportConfig"]],["impl Send for LegacyTorClient",1,["tor_interface::legacy_tor_client::LegacyTorClient"]],["impl Send for LegacyTorVersion",1,["tor_interface::legacy_tor_version::LegacyTorVersion"]],["impl Send for MockTorClient",1,["tor_interface::mock_tor_client::MockTorClient"]],["impl Send for HttpsProxyConfig",1,["tor_interface::proxy::HttpsProxyConfig"]],["impl Send for Socks4ProxyConfig",1,["tor_interface::proxy::Socks4ProxyConfig"]],["impl Send for Socks5ProxyConfig",1,["tor_interface::proxy::Socks5ProxyConfig"]],["impl Send for Ed25519PrivateKey",1,["tor_interface::tor_crypto::Ed25519PrivateKey"]],["impl Send for Ed25519PublicKey",1,["tor_interface::tor_crypto::Ed25519PublicKey"]],["impl Send for Ed25519Signature",1,["tor_interface::tor_crypto::Ed25519Signature"]],["impl Send for V3OnionServiceId",1,["tor_interface::tor_crypto::V3OnionServiceId"]],["impl Send for X25519PrivateKey",1,["tor_interface::tor_crypto::X25519PrivateKey"]],["impl Send for X25519PublicKey",1,["tor_interface::tor_crypto::X25519PublicKey"]],["impl Send for DomainAddr",1,["tor_interface::tor_provider::DomainAddr"]],["impl Send for OnionAddrV3",1,["tor_interface::tor_provider::OnionAddrV3"]],["impl Send for OnionListener",1,["tor_interface::tor_provider::OnionListener"]],["impl Send for OnionStream",1,["tor_interface::tor_provider::OnionStream"]]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["gosling",[["impl Send for ContextEvent",1,["gosling::context::ContextEvent"]],["impl Send for Error",1,["gosling::context::Error"]],["impl Send for Context",1,["gosling::context::Context"]]]],["honk_rpc",[["impl Send for Error",1,["honk_rpc::honk_rpc::Error"]],["impl Send for ErrorCode",1,["honk_rpc::honk_rpc::ErrorCode"]],["impl Send for Response",1,["honk_rpc::honk_rpc::Response"]],["impl<RW> Send for Session<RW>
where\n RW: Send,
",1,["honk_rpc::honk_rpc::Session"]]]],["tor_interface",[["impl Send for Error",1,["tor_interface::arti_client_tor_client::Error"]],["impl Send for BridgeLineError",1,["tor_interface::censorship_circumvention::BridgeLineError"]],["impl Send for PluggableTransportConfigError",1,["tor_interface::censorship_circumvention::PluggableTransportConfigError"]],["impl Send for Error",1,["tor_interface::legacy_tor_client::Error"]],["impl Send for LegacyTorClientConfig",1,["tor_interface::legacy_tor_client::LegacyTorClientConfig"]],["impl Send for Error",1,["tor_interface::legacy_tor_version::Error"]],["impl Send for Error",1,["tor_interface::mock_tor_client::Error"]],["impl Send for ProxyConfig",1,["tor_interface::proxy::ProxyConfig"]],["impl Send for ProxyConfigError",1,["tor_interface::proxy::ProxyConfigError"]],["impl Send for Error",1,["tor_interface::tor_crypto::Error"]],["impl Send for SignBit",1,["tor_interface::tor_crypto::SignBit"]],["impl Send for Error",1,["tor_interface::tor_provider::Error"]],["impl Send for OnionAddr",1,["tor_interface::tor_provider::OnionAddr"]],["impl Send for TargetAddr",1,["tor_interface::tor_provider::TargetAddr"]],["impl Send for TorEvent",1,["tor_interface::tor_provider::TorEvent"]],["impl Send for ArtiClientTorClient",1,["tor_interface::arti_client_tor_client::ArtiClientTorClient"]],["impl Send for BridgeLine",1,["tor_interface::censorship_circumvention::BridgeLine"]],["impl Send for PluggableTransportConfig",1,["tor_interface::censorship_circumvention::PluggableTransportConfig"]],["impl Send for LegacyTorClient",1,["tor_interface::legacy_tor_client::LegacyTorClient"]],["impl Send for LegacyTorVersion",1,["tor_interface::legacy_tor_version::LegacyTorVersion"]],["impl Send for MockTorClient",1,["tor_interface::mock_tor_client::MockTorClient"]],["impl Send for HttpsProxyConfig",1,["tor_interface::proxy::HttpsProxyConfig"]],["impl Send for Socks4ProxyConfig",1,["tor_interface::proxy::Socks4ProxyConfig"]],["impl Send for Socks5ProxyConfig",1,["tor_interface::proxy::Socks5ProxyConfig"]],["impl Send for Ed25519PrivateKey",1,["tor_interface::tor_crypto::Ed25519PrivateKey"]],["impl Send for Ed25519PublicKey",1,["tor_interface::tor_crypto::Ed25519PublicKey"]],["impl Send for Ed25519Signature",1,["tor_interface::tor_crypto::Ed25519Signature"]],["impl Send for V3OnionServiceId",1,["tor_interface::tor_crypto::V3OnionServiceId"]],["impl Send for X25519PrivateKey",1,["tor_interface::tor_crypto::X25519PrivateKey"]],["impl Send for X25519PublicKey",1,["tor_interface::tor_crypto::X25519PublicKey"]],["impl Send for DomainAddr",1,["tor_interface::tor_provider::DomainAddr"]],["impl Send for OnionAddrV3",1,["tor_interface::tor_provider::OnionAddrV3"]],["impl Send for OnionListener",1,["tor_interface::tor_provider::OnionListener"]],["impl Send for OnionStream",1,["tor_interface::tor_provider::OnionStream"]]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[907,1412,12158]} \ No newline at end of file diff --git a/crates/trait.impl/core/marker/trait.StructuralPartialEq.js b/crates/trait.impl/core/marker/trait.StructuralPartialEq.js index ff98fc7d..4fbedeb6 100644 --- a/crates/trait.impl/core/marker/trait.StructuralPartialEq.js +++ b/crates/trait.impl/core/marker/trait.StructuralPartialEq.js @@ -1,4 +1,9 @@ -(function() {var implementors = { -"honk_rpc":[["impl StructuralPartialEq for ErrorCode"]], -"tor_interface":[["impl StructuralPartialEq for OnionAddr"],["impl StructuralPartialEq for V3OnionServiceId"],["impl StructuralPartialEq for X25519PublicKey"],["impl StructuralPartialEq for DomainAddr"],["impl StructuralPartialEq for OnionAddrV3"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["honk_rpc",[["impl StructuralPartialEq for ErrorCode"]]],["tor_interface",[["impl StructuralPartialEq for OnionAddr"],["impl StructuralPartialEq for V3OnionServiceId"],["impl StructuralPartialEq for X25519PublicKey"],["impl StructuralPartialEq for DomainAddr"],["impl StructuralPartialEq for OnionAddrV3"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[329,1749]} \ No newline at end of file diff --git a/crates/trait.impl/core/marker/trait.Sync.js b/crates/trait.impl/core/marker/trait.Sync.js index 7422193d..f2f5cbf6 100644 --- a/crates/trait.impl/core/marker/trait.Sync.js +++ b/crates/trait.impl/core/marker/trait.Sync.js @@ -1,5 +1,9 @@ -(function() {var implementors = { -"gosling":[["impl !Sync for Context",1,["gosling::context::Context"]],["impl Sync for ContextEvent",1,["gosling::context::ContextEvent"]],["impl Sync for Error",1,["gosling::context::Error"]]], -"honk_rpc":[["impl Sync for Error",1,["honk_rpc::honk_rpc::Error"]],["impl Sync for ErrorCode",1,["honk_rpc::honk_rpc::ErrorCode"]],["impl Sync for Response",1,["honk_rpc::honk_rpc::Response"]],["impl<RW> Sync for Session<RW>
where\n RW: Sync,
",1,["honk_rpc::honk_rpc::Session"]]], -"tor_interface":[["impl !Sync for OnionListener",1,["tor_interface::tor_provider::OnionListener"]],["impl Sync for Error",1,["tor_interface::arti_client_tor_client::Error"]],["impl Sync for BridgeLineError",1,["tor_interface::censorship_circumvention::BridgeLineError"]],["impl Sync for PluggableTransportConfigError",1,["tor_interface::censorship_circumvention::PluggableTransportConfigError"]],["impl Sync for Error",1,["tor_interface::legacy_tor_client::Error"]],["impl Sync for LegacyTorClientConfig",1,["tor_interface::legacy_tor_client::LegacyTorClientConfig"]],["impl Sync for Error",1,["tor_interface::legacy_tor_version::Error"]],["impl Sync for Error",1,["tor_interface::mock_tor_client::Error"]],["impl Sync for ProxyConfig",1,["tor_interface::proxy::ProxyConfig"]],["impl Sync for ProxyConfigError",1,["tor_interface::proxy::ProxyConfigError"]],["impl Sync for Error",1,["tor_interface::tor_crypto::Error"]],["impl Sync for SignBit",1,["tor_interface::tor_crypto::SignBit"]],["impl Sync for Error",1,["tor_interface::tor_provider::Error"]],["impl Sync for OnionAddr",1,["tor_interface::tor_provider::OnionAddr"]],["impl Sync for TargetAddr",1,["tor_interface::tor_provider::TargetAddr"]],["impl Sync for TorEvent",1,["tor_interface::tor_provider::TorEvent"]],["impl Sync for ArtiClientTorClient",1,["tor_interface::arti_client_tor_client::ArtiClientTorClient"]],["impl Sync for BridgeLine",1,["tor_interface::censorship_circumvention::BridgeLine"]],["impl Sync for PluggableTransportConfig",1,["tor_interface::censorship_circumvention::PluggableTransportConfig"]],["impl Sync for LegacyTorClient",1,["tor_interface::legacy_tor_client::LegacyTorClient"]],["impl Sync for LegacyTorVersion",1,["tor_interface::legacy_tor_version::LegacyTorVersion"]],["impl Sync for MockTorClient",1,["tor_interface::mock_tor_client::MockTorClient"]],["impl Sync for HttpsProxyConfig",1,["tor_interface::proxy::HttpsProxyConfig"]],["impl Sync for Socks4ProxyConfig",1,["tor_interface::proxy::Socks4ProxyConfig"]],["impl Sync for Socks5ProxyConfig",1,["tor_interface::proxy::Socks5ProxyConfig"]],["impl Sync for Ed25519PrivateKey",1,["tor_interface::tor_crypto::Ed25519PrivateKey"]],["impl Sync for Ed25519PublicKey",1,["tor_interface::tor_crypto::Ed25519PublicKey"]],["impl Sync for Ed25519Signature",1,["tor_interface::tor_crypto::Ed25519Signature"]],["impl Sync for V3OnionServiceId",1,["tor_interface::tor_crypto::V3OnionServiceId"]],["impl Sync for X25519PrivateKey",1,["tor_interface::tor_crypto::X25519PrivateKey"]],["impl Sync for X25519PublicKey",1,["tor_interface::tor_crypto::X25519PublicKey"]],["impl Sync for DomainAddr",1,["tor_interface::tor_provider::DomainAddr"]],["impl Sync for OnionAddrV3",1,["tor_interface::tor_provider::OnionAddrV3"]],["impl Sync for OnionStream",1,["tor_interface::tor_provider::OnionStream"]]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["gosling",[["impl !Sync for Context",1,["gosling::context::Context"]],["impl Sync for ContextEvent",1,["gosling::context::ContextEvent"]],["impl Sync for Error",1,["gosling::context::Error"]]]],["honk_rpc",[["impl Sync for Error",1,["honk_rpc::honk_rpc::Error"]],["impl Sync for ErrorCode",1,["honk_rpc::honk_rpc::ErrorCode"]],["impl Sync for Response",1,["honk_rpc::honk_rpc::Response"]],["impl<RW> Sync for Session<RW>
where\n RW: Sync,
",1,["honk_rpc::honk_rpc::Session"]]]],["tor_interface",[["impl !Sync for OnionListener",1,["tor_interface::tor_provider::OnionListener"]],["impl Sync for Error",1,["tor_interface::arti_client_tor_client::Error"]],["impl Sync for BridgeLineError",1,["tor_interface::censorship_circumvention::BridgeLineError"]],["impl Sync for PluggableTransportConfigError",1,["tor_interface::censorship_circumvention::PluggableTransportConfigError"]],["impl Sync for Error",1,["tor_interface::legacy_tor_client::Error"]],["impl Sync for LegacyTorClientConfig",1,["tor_interface::legacy_tor_client::LegacyTorClientConfig"]],["impl Sync for Error",1,["tor_interface::legacy_tor_version::Error"]],["impl Sync for Error",1,["tor_interface::mock_tor_client::Error"]],["impl Sync for ProxyConfig",1,["tor_interface::proxy::ProxyConfig"]],["impl Sync for ProxyConfigError",1,["tor_interface::proxy::ProxyConfigError"]],["impl Sync for Error",1,["tor_interface::tor_crypto::Error"]],["impl Sync for SignBit",1,["tor_interface::tor_crypto::SignBit"]],["impl Sync for Error",1,["tor_interface::tor_provider::Error"]],["impl Sync for OnionAddr",1,["tor_interface::tor_provider::OnionAddr"]],["impl Sync for TargetAddr",1,["tor_interface::tor_provider::TargetAddr"]],["impl Sync for TorEvent",1,["tor_interface::tor_provider::TorEvent"]],["impl Sync for ArtiClientTorClient",1,["tor_interface::arti_client_tor_client::ArtiClientTorClient"]],["impl Sync for BridgeLine",1,["tor_interface::censorship_circumvention::BridgeLine"]],["impl Sync for PluggableTransportConfig",1,["tor_interface::censorship_circumvention::PluggableTransportConfig"]],["impl Sync for LegacyTorClient",1,["tor_interface::legacy_tor_client::LegacyTorClient"]],["impl Sync for LegacyTorVersion",1,["tor_interface::legacy_tor_version::LegacyTorVersion"]],["impl Sync for MockTorClient",1,["tor_interface::mock_tor_client::MockTorClient"]],["impl Sync for HttpsProxyConfig",1,["tor_interface::proxy::HttpsProxyConfig"]],["impl Sync for Socks4ProxyConfig",1,["tor_interface::proxy::Socks4ProxyConfig"]],["impl Sync for Socks5ProxyConfig",1,["tor_interface::proxy::Socks5ProxyConfig"]],["impl Sync for Ed25519PrivateKey",1,["tor_interface::tor_crypto::Ed25519PrivateKey"]],["impl Sync for Ed25519PublicKey",1,["tor_interface::tor_crypto::Ed25519PublicKey"]],["impl Sync for Ed25519Signature",1,["tor_interface::tor_crypto::Ed25519Signature"]],["impl Sync for V3OnionServiceId",1,["tor_interface::tor_crypto::V3OnionServiceId"]],["impl Sync for X25519PrivateKey",1,["tor_interface::tor_crypto::X25519PrivateKey"]],["impl Sync for X25519PublicKey",1,["tor_interface::tor_crypto::X25519PublicKey"]],["impl Sync for DomainAddr",1,["tor_interface::tor_provider::DomainAddr"]],["impl Sync for OnionAddrV3",1,["tor_interface::tor_provider::OnionAddrV3"]],["impl Sync for OnionStream",1,["tor_interface::tor_provider::OnionStream"]]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[908,1412,12159]} \ No newline at end of file diff --git a/crates/trait.impl/core/marker/trait.Unpin.js b/crates/trait.impl/core/marker/trait.Unpin.js index 413b2eda..8e25d538 100644 --- a/crates/trait.impl/core/marker/trait.Unpin.js +++ b/crates/trait.impl/core/marker/trait.Unpin.js @@ -1,5 +1,9 @@ -(function() {var implementors = { -"gosling":[["impl Unpin for ContextEvent",1,["gosling::context::ContextEvent"]],["impl Unpin for Error",1,["gosling::context::Error"]],["impl Unpin for Context",1,["gosling::context::Context"]]], -"honk_rpc":[["impl Unpin for Error",1,["honk_rpc::honk_rpc::Error"]],["impl Unpin for ErrorCode",1,["honk_rpc::honk_rpc::ErrorCode"]],["impl Unpin for Response",1,["honk_rpc::honk_rpc::Response"]],["impl<RW> Unpin for Session<RW>
where\n RW: Unpin,
",1,["honk_rpc::honk_rpc::Session"]]], -"tor_interface":[["impl Unpin for Error",1,["tor_interface::arti_client_tor_client::Error"]],["impl Unpin for BridgeLineError",1,["tor_interface::censorship_circumvention::BridgeLineError"]],["impl Unpin for PluggableTransportConfigError",1,["tor_interface::censorship_circumvention::PluggableTransportConfigError"]],["impl Unpin for Error",1,["tor_interface::legacy_tor_client::Error"]],["impl Unpin for LegacyTorClientConfig",1,["tor_interface::legacy_tor_client::LegacyTorClientConfig"]],["impl Unpin for Error",1,["tor_interface::legacy_tor_version::Error"]],["impl Unpin for Error",1,["tor_interface::mock_tor_client::Error"]],["impl Unpin for ProxyConfig",1,["tor_interface::proxy::ProxyConfig"]],["impl Unpin for ProxyConfigError",1,["tor_interface::proxy::ProxyConfigError"]],["impl Unpin for Error",1,["tor_interface::tor_crypto::Error"]],["impl Unpin for SignBit",1,["tor_interface::tor_crypto::SignBit"]],["impl Unpin for Error",1,["tor_interface::tor_provider::Error"]],["impl Unpin for OnionAddr",1,["tor_interface::tor_provider::OnionAddr"]],["impl Unpin for TargetAddr",1,["tor_interface::tor_provider::TargetAddr"]],["impl Unpin for TorEvent",1,["tor_interface::tor_provider::TorEvent"]],["impl Unpin for ArtiClientTorClient",1,["tor_interface::arti_client_tor_client::ArtiClientTorClient"]],["impl Unpin for BridgeLine",1,["tor_interface::censorship_circumvention::BridgeLine"]],["impl Unpin for PluggableTransportConfig",1,["tor_interface::censorship_circumvention::PluggableTransportConfig"]],["impl Unpin for LegacyTorClient",1,["tor_interface::legacy_tor_client::LegacyTorClient"]],["impl Unpin for LegacyTorVersion",1,["tor_interface::legacy_tor_version::LegacyTorVersion"]],["impl Unpin for MockTorClient",1,["tor_interface::mock_tor_client::MockTorClient"]],["impl Unpin for HttpsProxyConfig",1,["tor_interface::proxy::HttpsProxyConfig"]],["impl Unpin for Socks4ProxyConfig",1,["tor_interface::proxy::Socks4ProxyConfig"]],["impl Unpin for Socks5ProxyConfig",1,["tor_interface::proxy::Socks5ProxyConfig"]],["impl Unpin for Ed25519PrivateKey",1,["tor_interface::tor_crypto::Ed25519PrivateKey"]],["impl Unpin for Ed25519PublicKey",1,["tor_interface::tor_crypto::Ed25519PublicKey"]],["impl Unpin for Ed25519Signature",1,["tor_interface::tor_crypto::Ed25519Signature"]],["impl Unpin for V3OnionServiceId",1,["tor_interface::tor_crypto::V3OnionServiceId"]],["impl Unpin for X25519PrivateKey",1,["tor_interface::tor_crypto::X25519PrivateKey"]],["impl Unpin for X25519PublicKey",1,["tor_interface::tor_crypto::X25519PublicKey"]],["impl Unpin for DomainAddr",1,["tor_interface::tor_provider::DomainAddr"]],["impl Unpin for OnionAddrV3",1,["tor_interface::tor_provider::OnionAddrV3"]],["impl Unpin for OnionListener",1,["tor_interface::tor_provider::OnionListener"]],["impl Unpin for OnionStream",1,["tor_interface::tor_provider::OnionStream"]]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["gosling",[["impl Unpin for ContextEvent",1,["gosling::context::ContextEvent"]],["impl Unpin for Error",1,["gosling::context::Error"]],["impl Unpin for Context",1,["gosling::context::Context"]]]],["honk_rpc",[["impl Unpin for Error",1,["honk_rpc::honk_rpc::Error"]],["impl Unpin for ErrorCode",1,["honk_rpc::honk_rpc::ErrorCode"]],["impl Unpin for Response",1,["honk_rpc::honk_rpc::Response"]],["impl<RW> Unpin for Session<RW>
where\n RW: Unpin,
",1,["honk_rpc::honk_rpc::Session"]]]],["tor_interface",[["impl Unpin for Error",1,["tor_interface::arti_client_tor_client::Error"]],["impl Unpin for BridgeLineError",1,["tor_interface::censorship_circumvention::BridgeLineError"]],["impl Unpin for PluggableTransportConfigError",1,["tor_interface::censorship_circumvention::PluggableTransportConfigError"]],["impl Unpin for Error",1,["tor_interface::legacy_tor_client::Error"]],["impl Unpin for LegacyTorClientConfig",1,["tor_interface::legacy_tor_client::LegacyTorClientConfig"]],["impl Unpin for Error",1,["tor_interface::legacy_tor_version::Error"]],["impl Unpin for Error",1,["tor_interface::mock_tor_client::Error"]],["impl Unpin for ProxyConfig",1,["tor_interface::proxy::ProxyConfig"]],["impl Unpin for ProxyConfigError",1,["tor_interface::proxy::ProxyConfigError"]],["impl Unpin for Error",1,["tor_interface::tor_crypto::Error"]],["impl Unpin for SignBit",1,["tor_interface::tor_crypto::SignBit"]],["impl Unpin for Error",1,["tor_interface::tor_provider::Error"]],["impl Unpin for OnionAddr",1,["tor_interface::tor_provider::OnionAddr"]],["impl Unpin for TargetAddr",1,["tor_interface::tor_provider::TargetAddr"]],["impl Unpin for TorEvent",1,["tor_interface::tor_provider::TorEvent"]],["impl Unpin for ArtiClientTorClient",1,["tor_interface::arti_client_tor_client::ArtiClientTorClient"]],["impl Unpin for BridgeLine",1,["tor_interface::censorship_circumvention::BridgeLine"]],["impl Unpin for PluggableTransportConfig",1,["tor_interface::censorship_circumvention::PluggableTransportConfig"]],["impl Unpin for LegacyTorClient",1,["tor_interface::legacy_tor_client::LegacyTorClient"]],["impl Unpin for LegacyTorVersion",1,["tor_interface::legacy_tor_version::LegacyTorVersion"]],["impl Unpin for MockTorClient",1,["tor_interface::mock_tor_client::MockTorClient"]],["impl Unpin for HttpsProxyConfig",1,["tor_interface::proxy::HttpsProxyConfig"]],["impl Unpin for Socks4ProxyConfig",1,["tor_interface::proxy::Socks4ProxyConfig"]],["impl Unpin for Socks5ProxyConfig",1,["tor_interface::proxy::Socks5ProxyConfig"]],["impl Unpin for Ed25519PrivateKey",1,["tor_interface::tor_crypto::Ed25519PrivateKey"]],["impl Unpin for Ed25519PublicKey",1,["tor_interface::tor_crypto::Ed25519PublicKey"]],["impl Unpin for Ed25519Signature",1,["tor_interface::tor_crypto::Ed25519Signature"]],["impl Unpin for V3OnionServiceId",1,["tor_interface::tor_crypto::V3OnionServiceId"]],["impl Unpin for X25519PrivateKey",1,["tor_interface::tor_crypto::X25519PrivateKey"]],["impl Unpin for X25519PublicKey",1,["tor_interface::tor_crypto::X25519PublicKey"]],["impl Unpin for DomainAddr",1,["tor_interface::tor_provider::DomainAddr"]],["impl Unpin for OnionAddrV3",1,["tor_interface::tor_provider::OnionAddrV3"]],["impl Unpin for OnionListener",1,["tor_interface::tor_provider::OnionListener"]],["impl Unpin for OnionStream",1,["tor_interface::tor_provider::OnionStream"]]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[916,1427,12260]} \ No newline at end of file diff --git a/crates/trait.impl/core/ops/deref/trait.Deref.js b/crates/trait.impl/core/ops/deref/trait.Deref.js index c5613326..3c59ac9c 100644 --- a/crates/trait.impl/core/ops/deref/trait.Deref.js +++ b/crates/trait.impl/core/ops/deref/trait.Deref.js @@ -1,3 +1,9 @@ -(function() {var implementors = { -"tor_interface":[["impl Deref for OnionStream"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["tor_interface",[["impl Deref for OnionStream"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[329]} \ No newline at end of file diff --git a/crates/trait.impl/core/ops/deref/trait.DerefMut.js b/crates/trait.impl/core/ops/deref/trait.DerefMut.js index 2b78f364..f36c6e05 100644 --- a/crates/trait.impl/core/ops/deref/trait.DerefMut.js +++ b/crates/trait.impl/core/ops/deref/trait.DerefMut.js @@ -1,3 +1,9 @@ -(function() {var implementors = { -"tor_interface":[["impl DerefMut for OnionStream"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["tor_interface",[["impl DerefMut for OnionStream"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[338]} \ No newline at end of file diff --git a/crates/trait.impl/core/ops/drop/trait.Drop.js b/crates/trait.impl/core/ops/drop/trait.Drop.js index 88cae9aa..11b16b0e 100644 --- a/crates/trait.impl/core/ops/drop/trait.Drop.js +++ b/crates/trait.impl/core/ops/drop/trait.Drop.js @@ -1,3 +1,9 @@ -(function() {var implementors = { -"tor_interface":[["impl Drop for MockTorClient"],["impl Drop for OnionListener"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["tor_interface",[["impl Drop for MockTorClient"],["impl Drop for OnionListener"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[647]} \ No newline at end of file diff --git a/crates/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js b/crates/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js index af456756..171c3d98 100644 --- a/crates/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js +++ b/crates/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js @@ -1,5 +1,9 @@ -(function() {var implementors = { -"gosling":[["impl !RefUnwindSafe for ContextEvent",1,["gosling::context::ContextEvent"]],["impl !RefUnwindSafe for Error",1,["gosling::context::Error"]],["impl !RefUnwindSafe for Context",1,["gosling::context::Context"]]], -"honk_rpc":[["impl !RefUnwindSafe for Error",1,["honk_rpc::honk_rpc::Error"]],["impl RefUnwindSafe for ErrorCode",1,["honk_rpc::honk_rpc::ErrorCode"]],["impl RefUnwindSafe for Response",1,["honk_rpc::honk_rpc::Response"]],["impl<RW> RefUnwindSafe for Session<RW>
where\n RW: RefUnwindSafe,
",1,["honk_rpc::honk_rpc::Session"]]], -"tor_interface":[["impl !RefUnwindSafe for Error",1,["tor_interface::arti_client_tor_client::Error"]],["impl !RefUnwindSafe for Error",1,["tor_interface::legacy_tor_client::Error"]],["impl !RefUnwindSafe for Error",1,["tor_interface::mock_tor_client::Error"]],["impl !RefUnwindSafe for ArtiClientTorClient",1,["tor_interface::arti_client_tor_client::ArtiClientTorClient"]],["impl !RefUnwindSafe for OnionListener",1,["tor_interface::tor_provider::OnionListener"]],["impl RefUnwindSafe for BridgeLineError",1,["tor_interface::censorship_circumvention::BridgeLineError"]],["impl RefUnwindSafe for PluggableTransportConfigError",1,["tor_interface::censorship_circumvention::PluggableTransportConfigError"]],["impl RefUnwindSafe for LegacyTorClientConfig",1,["tor_interface::legacy_tor_client::LegacyTorClientConfig"]],["impl RefUnwindSafe for Error",1,["tor_interface::legacy_tor_version::Error"]],["impl RefUnwindSafe for ProxyConfig",1,["tor_interface::proxy::ProxyConfig"]],["impl RefUnwindSafe for ProxyConfigError",1,["tor_interface::proxy::ProxyConfigError"]],["impl RefUnwindSafe for Error",1,["tor_interface::tor_crypto::Error"]],["impl RefUnwindSafe for SignBit",1,["tor_interface::tor_crypto::SignBit"]],["impl RefUnwindSafe for Error",1,["tor_interface::tor_provider::Error"]],["impl RefUnwindSafe for OnionAddr",1,["tor_interface::tor_provider::OnionAddr"]],["impl RefUnwindSafe for TargetAddr",1,["tor_interface::tor_provider::TargetAddr"]],["impl RefUnwindSafe for TorEvent",1,["tor_interface::tor_provider::TorEvent"]],["impl RefUnwindSafe for BridgeLine",1,["tor_interface::censorship_circumvention::BridgeLine"]],["impl RefUnwindSafe for PluggableTransportConfig",1,["tor_interface::censorship_circumvention::PluggableTransportConfig"]],["impl RefUnwindSafe for LegacyTorClient",1,["tor_interface::legacy_tor_client::LegacyTorClient"]],["impl RefUnwindSafe for LegacyTorVersion",1,["tor_interface::legacy_tor_version::LegacyTorVersion"]],["impl RefUnwindSafe for MockTorClient",1,["tor_interface::mock_tor_client::MockTorClient"]],["impl RefUnwindSafe for HttpsProxyConfig",1,["tor_interface::proxy::HttpsProxyConfig"]],["impl RefUnwindSafe for Socks4ProxyConfig",1,["tor_interface::proxy::Socks4ProxyConfig"]],["impl RefUnwindSafe for Socks5ProxyConfig",1,["tor_interface::proxy::Socks5ProxyConfig"]],["impl RefUnwindSafe for Ed25519PrivateKey",1,["tor_interface::tor_crypto::Ed25519PrivateKey"]],["impl RefUnwindSafe for Ed25519PublicKey",1,["tor_interface::tor_crypto::Ed25519PublicKey"]],["impl RefUnwindSafe for Ed25519Signature",1,["tor_interface::tor_crypto::Ed25519Signature"]],["impl RefUnwindSafe for V3OnionServiceId",1,["tor_interface::tor_crypto::V3OnionServiceId"]],["impl RefUnwindSafe for X25519PrivateKey",1,["tor_interface::tor_crypto::X25519PrivateKey"]],["impl RefUnwindSafe for X25519PublicKey",1,["tor_interface::tor_crypto::X25519PublicKey"]],["impl RefUnwindSafe for DomainAddr",1,["tor_interface::tor_provider::DomainAddr"]],["impl RefUnwindSafe for OnionAddrV3",1,["tor_interface::tor_provider::OnionAddrV3"]],["impl RefUnwindSafe for OnionStream",1,["tor_interface::tor_provider::OnionStream"]]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["gosling",[["impl !RefUnwindSafe for ContextEvent",1,["gosling::context::ContextEvent"]],["impl !RefUnwindSafe for Error",1,["gosling::context::Error"]],["impl !RefUnwindSafe for Context",1,["gosling::context::Context"]]]],["honk_rpc",[["impl !RefUnwindSafe for Error",1,["honk_rpc::honk_rpc::Error"]],["impl RefUnwindSafe for ErrorCode",1,["honk_rpc::honk_rpc::ErrorCode"]],["impl RefUnwindSafe for Response",1,["honk_rpc::honk_rpc::Response"]],["impl<RW> RefUnwindSafe for Session<RW>
where\n RW: RefUnwindSafe,
",1,["honk_rpc::honk_rpc::Session"]]]],["tor_interface",[["impl !RefUnwindSafe for Error",1,["tor_interface::arti_client_tor_client::Error"]],["impl !RefUnwindSafe for Error",1,["tor_interface::legacy_tor_client::Error"]],["impl !RefUnwindSafe for Error",1,["tor_interface::mock_tor_client::Error"]],["impl !RefUnwindSafe for ArtiClientTorClient",1,["tor_interface::arti_client_tor_client::ArtiClientTorClient"]],["impl !RefUnwindSafe for OnionListener",1,["tor_interface::tor_provider::OnionListener"]],["impl RefUnwindSafe for BridgeLineError",1,["tor_interface::censorship_circumvention::BridgeLineError"]],["impl RefUnwindSafe for PluggableTransportConfigError",1,["tor_interface::censorship_circumvention::PluggableTransportConfigError"]],["impl RefUnwindSafe for LegacyTorClientConfig",1,["tor_interface::legacy_tor_client::LegacyTorClientConfig"]],["impl RefUnwindSafe for Error",1,["tor_interface::legacy_tor_version::Error"]],["impl RefUnwindSafe for ProxyConfig",1,["tor_interface::proxy::ProxyConfig"]],["impl RefUnwindSafe for ProxyConfigError",1,["tor_interface::proxy::ProxyConfigError"]],["impl RefUnwindSafe for Error",1,["tor_interface::tor_crypto::Error"]],["impl RefUnwindSafe for SignBit",1,["tor_interface::tor_crypto::SignBit"]],["impl RefUnwindSafe for Error",1,["tor_interface::tor_provider::Error"]],["impl RefUnwindSafe for OnionAddr",1,["tor_interface::tor_provider::OnionAddr"]],["impl RefUnwindSafe for TargetAddr",1,["tor_interface::tor_provider::TargetAddr"]],["impl RefUnwindSafe for TorEvent",1,["tor_interface::tor_provider::TorEvent"]],["impl RefUnwindSafe for BridgeLine",1,["tor_interface::censorship_circumvention::BridgeLine"]],["impl RefUnwindSafe for PluggableTransportConfig",1,["tor_interface::censorship_circumvention::PluggableTransportConfig"]],["impl RefUnwindSafe for LegacyTorClient",1,["tor_interface::legacy_tor_client::LegacyTorClient"]],["impl RefUnwindSafe for LegacyTorVersion",1,["tor_interface::legacy_tor_version::LegacyTorVersion"]],["impl RefUnwindSafe for MockTorClient",1,["tor_interface::mock_tor_client::MockTorClient"]],["impl RefUnwindSafe for HttpsProxyConfig",1,["tor_interface::proxy::HttpsProxyConfig"]],["impl RefUnwindSafe for Socks4ProxyConfig",1,["tor_interface::proxy::Socks4ProxyConfig"]],["impl RefUnwindSafe for Socks5ProxyConfig",1,["tor_interface::proxy::Socks5ProxyConfig"]],["impl RefUnwindSafe for Ed25519PrivateKey",1,["tor_interface::tor_crypto::Ed25519PrivateKey"]],["impl RefUnwindSafe for Ed25519PublicKey",1,["tor_interface::tor_crypto::Ed25519PublicKey"]],["impl RefUnwindSafe for Ed25519Signature",1,["tor_interface::tor_crypto::Ed25519Signature"]],["impl RefUnwindSafe for V3OnionServiceId",1,["tor_interface::tor_crypto::V3OnionServiceId"]],["impl RefUnwindSafe for X25519PrivateKey",1,["tor_interface::tor_crypto::X25519PrivateKey"]],["impl RefUnwindSafe for X25519PublicKey",1,["tor_interface::tor_crypto::X25519PublicKey"]],["impl RefUnwindSafe for DomainAddr",1,["tor_interface::tor_provider::DomainAddr"]],["impl RefUnwindSafe for OnionAddrV3",1,["tor_interface::tor_provider::OnionAddrV3"]],["impl RefUnwindSafe for OnionStream",1,["tor_interface::tor_provider::OnionStream"]]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[1060,1663,13863]} \ No newline at end of file diff --git a/crates/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js b/crates/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js index b0a2cfcb..ad95e66e 100644 --- a/crates/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js +++ b/crates/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js @@ -1,5 +1,9 @@ -(function() {var implementors = { -"gosling":[["impl !UnwindSafe for ContextEvent",1,["gosling::context::ContextEvent"]],["impl !UnwindSafe for Error",1,["gosling::context::Error"]],["impl !UnwindSafe for Context",1,["gosling::context::Context"]]], -"honk_rpc":[["impl !UnwindSafe for Error",1,["honk_rpc::honk_rpc::Error"]],["impl UnwindSafe for ErrorCode",1,["honk_rpc::honk_rpc::ErrorCode"]],["impl UnwindSafe for Response",1,["honk_rpc::honk_rpc::Response"]],["impl<RW> UnwindSafe for Session<RW>
where\n RW: UnwindSafe,
",1,["honk_rpc::honk_rpc::Session"]]], -"tor_interface":[["impl !UnwindSafe for Error",1,["tor_interface::arti_client_tor_client::Error"]],["impl !UnwindSafe for Error",1,["tor_interface::legacy_tor_client::Error"]],["impl !UnwindSafe for Error",1,["tor_interface::mock_tor_client::Error"]],["impl !UnwindSafe for ArtiClientTorClient",1,["tor_interface::arti_client_tor_client::ArtiClientTorClient"]],["impl !UnwindSafe for OnionListener",1,["tor_interface::tor_provider::OnionListener"]],["impl UnwindSafe for BridgeLineError",1,["tor_interface::censorship_circumvention::BridgeLineError"]],["impl UnwindSafe for PluggableTransportConfigError",1,["tor_interface::censorship_circumvention::PluggableTransportConfigError"]],["impl UnwindSafe for LegacyTorClientConfig",1,["tor_interface::legacy_tor_client::LegacyTorClientConfig"]],["impl UnwindSafe for Error",1,["tor_interface::legacy_tor_version::Error"]],["impl UnwindSafe for ProxyConfig",1,["tor_interface::proxy::ProxyConfig"]],["impl UnwindSafe for ProxyConfigError",1,["tor_interface::proxy::ProxyConfigError"]],["impl UnwindSafe for Error",1,["tor_interface::tor_crypto::Error"]],["impl UnwindSafe for SignBit",1,["tor_interface::tor_crypto::SignBit"]],["impl UnwindSafe for Error",1,["tor_interface::tor_provider::Error"]],["impl UnwindSafe for OnionAddr",1,["tor_interface::tor_provider::OnionAddr"]],["impl UnwindSafe for TargetAddr",1,["tor_interface::tor_provider::TargetAddr"]],["impl UnwindSafe for TorEvent",1,["tor_interface::tor_provider::TorEvent"]],["impl UnwindSafe for BridgeLine",1,["tor_interface::censorship_circumvention::BridgeLine"]],["impl UnwindSafe for PluggableTransportConfig",1,["tor_interface::censorship_circumvention::PluggableTransportConfig"]],["impl UnwindSafe for LegacyTorClient",1,["tor_interface::legacy_tor_client::LegacyTorClient"]],["impl UnwindSafe for LegacyTorVersion",1,["tor_interface::legacy_tor_version::LegacyTorVersion"]],["impl UnwindSafe for MockTorClient",1,["tor_interface::mock_tor_client::MockTorClient"]],["impl UnwindSafe for HttpsProxyConfig",1,["tor_interface::proxy::HttpsProxyConfig"]],["impl UnwindSafe for Socks4ProxyConfig",1,["tor_interface::proxy::Socks4ProxyConfig"]],["impl UnwindSafe for Socks5ProxyConfig",1,["tor_interface::proxy::Socks5ProxyConfig"]],["impl UnwindSafe for Ed25519PrivateKey",1,["tor_interface::tor_crypto::Ed25519PrivateKey"]],["impl UnwindSafe for Ed25519PublicKey",1,["tor_interface::tor_crypto::Ed25519PublicKey"]],["impl UnwindSafe for Ed25519Signature",1,["tor_interface::tor_crypto::Ed25519Signature"]],["impl UnwindSafe for V3OnionServiceId",1,["tor_interface::tor_crypto::V3OnionServiceId"]],["impl UnwindSafe for X25519PrivateKey",1,["tor_interface::tor_crypto::X25519PrivateKey"]],["impl UnwindSafe for X25519PublicKey",1,["tor_interface::tor_crypto::X25519PublicKey"]],["impl UnwindSafe for DomainAddr",1,["tor_interface::tor_provider::DomainAddr"]],["impl UnwindSafe for OnionAddrV3",1,["tor_interface::tor_provider::OnionAddrV3"]],["impl UnwindSafe for OnionStream",1,["tor_interface::tor_provider::OnionStream"]]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["gosling",[["impl !UnwindSafe for ContextEvent",1,["gosling::context::ContextEvent"]],["impl !UnwindSafe for Error",1,["gosling::context::Error"]],["impl !UnwindSafe for Context",1,["gosling::context::Context"]]]],["honk_rpc",[["impl !UnwindSafe for Error",1,["honk_rpc::honk_rpc::Error"]],["impl UnwindSafe for ErrorCode",1,["honk_rpc::honk_rpc::ErrorCode"]],["impl UnwindSafe for Response",1,["honk_rpc::honk_rpc::Response"]],["impl<RW> UnwindSafe for Session<RW>
where\n RW: UnwindSafe,
",1,["honk_rpc::honk_rpc::Session"]]]],["tor_interface",[["impl !UnwindSafe for Error",1,["tor_interface::arti_client_tor_client::Error"]],["impl !UnwindSafe for Error",1,["tor_interface::legacy_tor_client::Error"]],["impl !UnwindSafe for Error",1,["tor_interface::mock_tor_client::Error"]],["impl !UnwindSafe for ArtiClientTorClient",1,["tor_interface::arti_client_tor_client::ArtiClientTorClient"]],["impl !UnwindSafe for OnionListener",1,["tor_interface::tor_provider::OnionListener"]],["impl UnwindSafe for BridgeLineError",1,["tor_interface::censorship_circumvention::BridgeLineError"]],["impl UnwindSafe for PluggableTransportConfigError",1,["tor_interface::censorship_circumvention::PluggableTransportConfigError"]],["impl UnwindSafe for LegacyTorClientConfig",1,["tor_interface::legacy_tor_client::LegacyTorClientConfig"]],["impl UnwindSafe for Error",1,["tor_interface::legacy_tor_version::Error"]],["impl UnwindSafe for ProxyConfig",1,["tor_interface::proxy::ProxyConfig"]],["impl UnwindSafe for ProxyConfigError",1,["tor_interface::proxy::ProxyConfigError"]],["impl UnwindSafe for Error",1,["tor_interface::tor_crypto::Error"]],["impl UnwindSafe for SignBit",1,["tor_interface::tor_crypto::SignBit"]],["impl UnwindSafe for Error",1,["tor_interface::tor_provider::Error"]],["impl UnwindSafe for OnionAddr",1,["tor_interface::tor_provider::OnionAddr"]],["impl UnwindSafe for TargetAddr",1,["tor_interface::tor_provider::TargetAddr"]],["impl UnwindSafe for TorEvent",1,["tor_interface::tor_provider::TorEvent"]],["impl UnwindSafe for BridgeLine",1,["tor_interface::censorship_circumvention::BridgeLine"]],["impl UnwindSafe for PluggableTransportConfig",1,["tor_interface::censorship_circumvention::PluggableTransportConfig"]],["impl UnwindSafe for LegacyTorClient",1,["tor_interface::legacy_tor_client::LegacyTorClient"]],["impl UnwindSafe for LegacyTorVersion",1,["tor_interface::legacy_tor_version::LegacyTorVersion"]],["impl UnwindSafe for MockTorClient",1,["tor_interface::mock_tor_client::MockTorClient"]],["impl UnwindSafe for HttpsProxyConfig",1,["tor_interface::proxy::HttpsProxyConfig"]],["impl UnwindSafe for Socks4ProxyConfig",1,["tor_interface::proxy::Socks4ProxyConfig"]],["impl UnwindSafe for Socks5ProxyConfig",1,["tor_interface::proxy::Socks5ProxyConfig"]],["impl UnwindSafe for Ed25519PrivateKey",1,["tor_interface::tor_crypto::Ed25519PrivateKey"]],["impl UnwindSafe for Ed25519PublicKey",1,["tor_interface::tor_crypto::Ed25519PublicKey"]],["impl UnwindSafe for Ed25519Signature",1,["tor_interface::tor_crypto::Ed25519Signature"]],["impl UnwindSafe for V3OnionServiceId",1,["tor_interface::tor_crypto::V3OnionServiceId"]],["impl UnwindSafe for X25519PrivateKey",1,["tor_interface::tor_crypto::X25519PrivateKey"]],["impl UnwindSafe for X25519PublicKey",1,["tor_interface::tor_crypto::X25519PublicKey"]],["impl UnwindSafe for DomainAddr",1,["tor_interface::tor_provider::DomainAddr"]],["impl UnwindSafe for OnionAddrV3",1,["tor_interface::tor_provider::OnionAddrV3"]],["impl UnwindSafe for OnionStream",1,["tor_interface::tor_provider::OnionStream"]]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[1033,1618,13557]} \ No newline at end of file diff --git a/crates/trait.impl/core/str/traits/trait.FromStr.js b/crates/trait.impl/core/str/traits/trait.FromStr.js index 611fd5d7..1cfc0455 100644 --- a/crates/trait.impl/core/str/traits/trait.FromStr.js +++ b/crates/trait.impl/core/str/traits/trait.FromStr.js @@ -1,3 +1,9 @@ -(function() {var implementors = { -"tor_interface":[["impl FromStr for OnionAddr"],["impl FromStr for TargetAddr"],["impl FromStr for BridgeLine"],["impl FromStr for LegacyTorVersion"],["impl FromStr for DomainAddr"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["tor_interface",[["impl FromStr for OnionAddr"],["impl FromStr for TargetAddr"],["impl FromStr for BridgeLine"],["impl FromStr for LegacyTorVersion"],["impl FromStr for DomainAddr"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[1633]} \ No newline at end of file diff --git a/crates/trait.impl/std/io/trait.Read.js b/crates/trait.impl/std/io/trait.Read.js index 03cd9886..e573a77b 100644 --- a/crates/trait.impl/std/io/trait.Read.js +++ b/crates/trait.impl/std/io/trait.Read.js @@ -1,3 +1,9 @@ -(function() {var implementors = { -"tor_interface":[["impl Read for OnionStream"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["tor_interface",[["impl Read for OnionStream"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[309]} \ No newline at end of file diff --git a/crates/trait.impl/std/io/trait.Write.js b/crates/trait.impl/std/io/trait.Write.js index 3661c50c..0f1c47dd 100644 --- a/crates/trait.impl/std/io/trait.Write.js +++ b/crates/trait.impl/std/io/trait.Write.js @@ -1,3 +1,9 @@ -(function() {var implementors = { -"tor_interface":[["impl Write for OnionStream"]] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["tor_interface",[["impl Write for OnionStream"]]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[312]} \ No newline at end of file diff --git a/crates/trait.impl/tor_interface/tor_provider/trait.TorProvider.js b/crates/trait.impl/tor_interface/tor_provider/trait.TorProvider.js index 09050b37..af1f0642 100644 --- a/crates/trait.impl/tor_interface/tor_provider/trait.TorProvider.js +++ b/crates/trait.impl/tor_interface/tor_provider/trait.TorProvider.js @@ -1,3 +1,9 @@ -(function() {var implementors = { -"tor_interface":[] -};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() { + var implementors = Object.fromEntries([["tor_interface",[]]]); + if (window.register_implementors) { + window.register_implementors(implementors); + } else { + window.pending_implementors = implementors; + } +})() +//{"start":57,"fragment_lengths":[20]} \ No newline at end of file diff --git a/crates/type.impl/std/primitive.i64.js b/crates/type.impl/std/primitive.i64.js index 55addcab..7c8e29bf 100644 --- a/crates/type.impl/std/primitive.i64.js +++ b/crates/type.impl/std/primitive.i64.js @@ -1,3 +1,9 @@ -(function() {var type_impls = { -"honk_rpc":[] -};if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file +(function() { + var type_impls = Object.fromEntries([["honk_rpc",[]]]); + if (window.register_type_impls) { + window.register_type_impls(type_impls); + } else { + window.pending_type_impls = type_impls; + } +})() +//{"start":55,"fragment_lengths":[15]} \ No newline at end of file diff --git a/crates/type.impl/std/primitive.usize.js b/crates/type.impl/std/primitive.usize.js index ef01c053..f58b9c49 100644 --- a/crates/type.impl/std/primitive.usize.js +++ b/crates/type.impl/std/primitive.usize.js @@ -1,4 +1,9 @@ -(function() {var type_impls = { -"gosling":[["
§

impl<T> Accumulate<T> for usize

§

fn initial(_capacity: Option<usize>) -> usize

Create a new Extend of the correct type
§

fn accumulate(&mut self, _acc: T)

Accumulate the input into an accumulator
","Accumulate","gosling::context::HandshakeHandle"],["
source§

impl<'a> Add<&'a BigInt> for usize

§

type Output = BigInt

The resulting type after applying the + operator.
source§

fn add(self, other: &BigInt) -> BigInt

Performs the + operation. Read more
","Add<&'a BigInt>","gosling::context::HandshakeHandle"],["
source§

impl<'a> Add<&'a BigUint> for usize

§

type Output = BigUint

The resulting type after applying the + operator.
source§

fn add(self, other: &BigUint) -> BigUint

Performs the + operation. Read more
","Add<&'a BigUint>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Add<&usize> for usize

§

type Output = <usize as Add>::Output

The resulting type after applying the + operator.
source§

fn add(self, other: &usize) -> <usize as Add>::Output

Performs the + operation. Read more
","Add<&usize>","gosling::context::HandshakeHandle"],["
source§

impl Add<BigInt> for usize

§

type Output = BigInt

The resulting type after applying the + operator.
source§

fn add(self, other: BigInt) -> BigInt

Performs the + operation. Read more
","Add","gosling::context::HandshakeHandle"],["
source§

impl Add<BigUint> for usize

§

type Output = BigUint

The resulting type after applying the + operator.
source§

fn add(self, other: BigUint) -> BigUint

Performs the + operation. Read more
","Add","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Add for usize

§

type Output = usize

The resulting type after applying the + operator.
source§

fn add(self, other: usize) -> usize

Performs the + operation. Read more
","Add","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl AddAssign<&usize> for usize

source§

fn add_assign(&mut self, other: &usize)

Performs the += operation. Read more
","AddAssign<&usize>","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl AddAssign for usize

source§

fn add_assign(&mut self, other: usize)

Performs the += operation. Read more
","AddAssign","gosling::context::HandshakeHandle"],["
§

impl AsAny for usize

§

fn as_any(&self) -> &(dyn Any + 'static)

Returns thick pointer of &dyn Any type, that can be later downcasted\nback to a reference of the original type.
","AsAny","gosling::context::HandshakeHandle"],["
§

impl AsBytes for usize

§

fn as_bytes(&self) -> &[u8]

Gets the bytes of this value. Read more
§

fn as_bytes_mut(&mut self) -> &mut [u8]
where\n Self: FromBytes,

Gets the bytes of this value mutably. Read more
§

fn write_to(&self, bytes: &mut [u8]) -> Option<()>

Writes a copy of self to bytes. Read more
§

fn write_to_prefix(&self, bytes: &mut [u8]) -> Option<()>

Writes a copy of self to the prefix of bytes. Read more
§

fn write_to_suffix(&self, bytes: &mut [u8]) -> Option<()>

Writes a copy of self to the suffix of bytes. Read more
","AsBytes","gosling::context::HandshakeHandle"],["
source§

impl AsPrimitive<f32> for usize

source§

fn as_(self) -> f32

Convert a value to another, using the as operator.
","AsPrimitive","gosling::context::HandshakeHandle"],["
source§

impl AsPrimitive<f64> for usize

source§

fn as_(self) -> f64

Convert a value to another, using the as operator.
","AsPrimitive","gosling::context::HandshakeHandle"],["
source§

impl AsPrimitive<i128> for usize

source§

fn as_(self) -> i128

Convert a value to another, using the as operator.
","AsPrimitive","gosling::context::HandshakeHandle"],["
source§

impl AsPrimitive<i16> for usize

source§

fn as_(self) -> i16

Convert a value to another, using the as operator.
","AsPrimitive","gosling::context::HandshakeHandle"],["
source§

impl AsPrimitive<i32> for usize

source§

fn as_(self) -> i32

Convert a value to another, using the as operator.
","AsPrimitive","gosling::context::HandshakeHandle"],["
source§

impl AsPrimitive<i64> for usize

source§

fn as_(self) -> i64

Convert a value to another, using the as operator.
","AsPrimitive","gosling::context::HandshakeHandle"],["
source§

impl AsPrimitive<i8> for usize

source§

fn as_(self) -> i8

Convert a value to another, using the as operator.
","AsPrimitive","gosling::context::HandshakeHandle"],["
source§

impl AsPrimitive<isize> for usize

source§

fn as_(self) -> isize

Convert a value to another, using the as operator.
","AsPrimitive","gosling::context::HandshakeHandle"],["
source§

impl AsPrimitive<u128> for usize

source§

fn as_(self) -> u128

Convert a value to another, using the as operator.
","AsPrimitive","gosling::context::HandshakeHandle"],["
source§

impl AsPrimitive<u16> for usize

source§

fn as_(self) -> u16

Convert a value to another, using the as operator.
","AsPrimitive","gosling::context::HandshakeHandle"],["
source§

impl AsPrimitive<u32> for usize

source§

fn as_(self) -> u32

Convert a value to another, using the as operator.
","AsPrimitive","gosling::context::HandshakeHandle"],["
source§

impl AsPrimitive<u64> for usize

source§

fn as_(self) -> u64

Convert a value to another, using the as operator.
","AsPrimitive","gosling::context::HandshakeHandle"],["
source§

impl AsPrimitive<u8> for usize

source§

fn as_(self) -> u8

Convert a value to another, using the as operator.
","AsPrimitive","gosling::context::HandshakeHandle"],["
source§

impl AsPrimitive<usize> for usize

source§

fn as_(self) -> usize

Convert a value to another, using the as operator.
","AsPrimitive","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Binary for usize

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","Binary","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl BitAnd<&usize> for usize

§

type Output = <usize as BitAnd>::Output

The resulting type after applying the & operator.
source§

fn bitand(self, other: &usize) -> <usize as BitAnd>::Output

Performs the & operation. Read more
","BitAnd<&usize>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl BitAnd for usize

§

type Output = usize

The resulting type after applying the & operator.
source§

fn bitand(self, rhs: usize) -> usize

Performs the & operation. Read more
","BitAnd","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl BitAndAssign<&usize> for usize

source§

fn bitand_assign(&mut self, other: &usize)

Performs the &= operation. Read more
","BitAndAssign<&usize>","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl BitAndAssign for usize

source§

fn bitand_assign(&mut self, other: usize)

Performs the &= operation. Read more
","BitAndAssign","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl BitOr<&usize> for usize

§

type Output = <usize as BitOr>::Output

The resulting type after applying the | operator.
source§

fn bitor(self, other: &usize) -> <usize as BitOr>::Output

Performs the | operation. Read more
","BitOr<&usize>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl BitOr for usize

§

type Output = usize

The resulting type after applying the | operator.
source§

fn bitor(self, rhs: usize) -> usize

Performs the | operation. Read more
","BitOr","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl BitOrAssign<&usize> for usize

source§

fn bitor_assign(&mut self, other: &usize)

Performs the |= operation. Read more
","BitOrAssign<&usize>","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl BitOrAssign for usize

source§

fn bitor_assign(&mut self, other: usize)

Performs the |= operation. Read more
","BitOrAssign","gosling::context::HandshakeHandle"],["
§

impl BitRegister for usize

§

const ALL: usize = 18_446_744_073_709_551_615usize

The literal !0.
§

const INDX: u8 = _

The number of bits required to store an index in the range 0 .. BITS.
§

const MASK: u8 = _

A mask over all bits that can be used as an index within the element.\nThis is the value with the least significant INDX-many bits set high.
","BitRegister","gosling::context::HandshakeHandle"],["
§

impl<'a, T, O> BitSliceIndex<'a, T, O> for usize
where\n T: BitStore,\n O: BitOrder,

§

type Immut = BitRef<'a, Const, T, O>

The output type of immutable access.
§

type Mut = BitRef<'a, Mut, T, O>

The output type of mutable access.
§

fn get(\n self,\n bits: &'a BitSlice<T, O>,\n) -> Option<<usize as BitSliceIndex<'a, T, O>>::Immut>

Immutably indexes into a bit-slice, returning None if self is out of\nbounds. Read more
§

fn get_mut(\n self,\n bits: &'a mut BitSlice<T, O>,\n) -> Option<<usize as BitSliceIndex<'a, T, O>>::Mut>

Mutably indexes into a bit-slice, returning None if self is out of\nbounds. Read more
§

unsafe fn get_unchecked(\n self,\n bits: &'a BitSlice<T, O>,\n) -> <usize as BitSliceIndex<'a, T, O>>::Immut

Immutably indexes into a bit-slice without doing any bounds checking. Read more
§

unsafe fn get_unchecked_mut(\n self,\n bits: &'a mut BitSlice<T, O>,\n) -> <usize as BitSliceIndex<'a, T, O>>::Mut

Mutably indexes into a bit-slice without doing any bounds checking. Read more
§

fn index(\n self,\n bits: &'a BitSlice<T, O>,\n) -> <usize as BitSliceIndex<'a, T, O>>::Immut

Immutably indexes into a bit-slice, panicking if self is out of\nbounds. Read more
§

fn index_mut(\n self,\n bits: &'a mut BitSlice<T, O>,\n) -> <usize as BitSliceIndex<'a, T, O>>::Mut

Mutably indexes into a bit-slice, panicking if self is out of bounds. Read more
","BitSliceIndex<'a, T, O>","gosling::context::HandshakeHandle"],["
§

impl BitStore for usize

§

type Access = Cell<usize>

The unsigned integers will only be BitStore type parameters\nfor handles to unaliased memory, following the normal Rust\nreference rules.

\n
§

type Mem = usize

The element type used in the memory region underlying a BitSlice. It\nis always one of the unsigned integer fundamentals.
§

type Alias = BitSafeUsize

A sibling BitStore implementor that is known to be alias-safe. It is\nused when a BitSlice introduces multiple handles that view the same\nmemory location, and at least one of them has write capabilities to it.\nIt must have the same underlying memory type, and can only change access\npatterns or public-facing usage.
§

type Unalias = usize

The inverse of ::Alias. It is used when a BitSlice removes the\nconditions that required a T -> T::Alias transition.
§

const ZERO: usize = 0usize

The zero constant.
§

fn new(value: <usize as BitStore>::Mem) -> usize

Wraps a raw memory value as a BitStore type.
§

fn load_value(&self) -> <usize as BitStore>::Mem

Loads a value out of the memory system according to the ::Access\nrules. This may be called when the value is aliased by a write-capable\nreference.
§

fn store_value(&mut self, value: <usize as BitStore>::Mem)

Stores a value into the memory system. This is only called when there\nare no other handles to the value, and it may bypass ::Access\nconstraints.
§

const ALIGNED_TO_SIZE: [(); 1] = _

All implementors are required to have their alignment match their size. Read more
§

const ALIAS_WIDTH: [(); 1] = _

All implementors are required to have Self and Self::Alias be equal\nin representation. This is true by fiat for all types except the\nunsigned integers. Read more
§

fn get_bit<O>(&self, index: BitIdx<Self::Mem>) -> bool
where\n O: BitOrder,

Reads a single bit out of the memory system according to the ::Access\nrules. This is lifted from BitAccess so that it can be used\nelsewhere without additional casts. Read more
","BitStore","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl BitXor<&usize> for usize

§

type Output = <usize as BitXor>::Output

The resulting type after applying the ^ operator.
source§

fn bitxor(self, other: &usize) -> <usize as BitXor>::Output

Performs the ^ operation. Read more
","BitXor<&usize>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl BitXor for usize

§

type Output = usize

The resulting type after applying the ^ operator.
source§

fn bitxor(self, other: usize) -> usize

Performs the ^ operation. Read more
","BitXor","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl BitXorAssign<&usize> for usize

source§

fn bitxor_assign(&mut self, other: &usize)

Performs the ^= operation. Read more
","BitXorAssign<&usize>","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl BitXorAssign for usize

source§

fn bitxor_assign(&mut self, other: usize)

Performs the ^= operation. Read more
","BitXorAssign","gosling::context::HandshakeHandle"],["
§

impl Bits for usize

§

const EMPTY: usize = 0usize

A value with all bits unset.
§

const ALL: usize = 18_446_744_073_709_551_615usize

A value with all bits set.
","Bits","gosling::context::HandshakeHandle"],["
source§

impl Bounded for usize

source§

fn min_value() -> usize

Returns the smallest finite number this type can represent
source§

fn max_value() -> usize

Returns the largest finite number this type can represent
","Bounded","gosling::context::HandshakeHandle"],["
§

impl CastSigned for usize

§

type Signed = isize

The signed integer type with the same size as Self.
§

fn cast_signed(self) -> <usize as CastSigned>::Signed

Cast an integer to the signed integer of the same size.
","CastSigned","gosling::context::HandshakeHandle"],["
§

impl CastUnsigned for usize

§

type Unsigned = usize

The unsigned integer type with the same size as Self.
§

fn cast_unsigned(self) -> <usize as CastUnsigned>::Unsigned

Cast an integer to the unsigned integer of the same size.
","CastUnsigned","gosling::context::HandshakeHandle"],["
source§

impl CheckedAdd for usize

source§

fn checked_add(&self, v: &usize) -> Option<usize>

Adds two numbers, checking for overflow. If overflow happens, None is\nreturned.
","CheckedAdd","gosling::context::HandshakeHandle"],["
source§

impl CheckedDiv for usize

source§

fn checked_div(&self, v: &usize) -> Option<usize>

Divides two numbers, checking for underflow, overflow and division by\nzero. If any of that happens, None is returned.
","CheckedDiv","gosling::context::HandshakeHandle"],["
source§

impl CheckedEuclid for usize

source§

fn checked_div_euclid(&self, v: &usize) -> Option<usize>

Performs euclid division that returns None instead of panicking on division by zero\nand instead of wrapping around on underflow and overflow.
source§

fn checked_rem_euclid(&self, v: &usize) -> Option<usize>

Finds the euclid remainder of dividing two numbers, checking for underflow, overflow and\ndivision by zero. If any of that happens, None is returned.
source§

fn checked_div_rem_euclid(&self, v: &Self) -> Option<(Self, Self)>

Returns both the quotient and remainder from checked Euclidean division. Read more
","CheckedEuclid","gosling::context::HandshakeHandle"],["
source§

impl CheckedMul for usize

source§

fn checked_mul(&self, v: &usize) -> Option<usize>

Multiplies two numbers, checking for underflow or overflow. If underflow\nor overflow happens, None is returned.
","CheckedMul","gosling::context::HandshakeHandle"],["
source§

impl CheckedNeg for usize

source§

fn checked_neg(&self) -> Option<usize>

Negates a number, returning None for results that can’t be represented, like signed MIN\nvalues that can’t be positive, or non-zero unsigned values that can’t be negative. Read more
","CheckedNeg","gosling::context::HandshakeHandle"],["
source§

impl CheckedRem for usize

source§

fn checked_rem(&self, v: &usize) -> Option<usize>

Finds the remainder of dividing two numbers, checking for underflow, overflow and division\nby zero. If any of that happens, None is returned. Read more
","CheckedRem","gosling::context::HandshakeHandle"],["
source§

impl CheckedShl for usize

source§

fn checked_shl(&self, rhs: u32) -> Option<usize>

Checked shift left. Computes self << rhs, returning None\nif rhs is larger than or equal to the number of bits in self. Read more
","CheckedShl","gosling::context::HandshakeHandle"],["
source§

impl CheckedShr for usize

source§

fn checked_shr(&self, rhs: u32) -> Option<usize>

Checked shift right. Computes self >> rhs, returning None\nif rhs is larger than or equal to the number of bits in self. Read more
","CheckedShr","gosling::context::HandshakeHandle"],["
source§

impl CheckedSub for usize

source§

fn checked_sub(&self, v: &usize) -> Option<usize>

Subtracts two numbers, checking for underflow. If underflow happens,\nNone is returned.
","CheckedSub","gosling::context::HandshakeHandle"],["
§

impl<T> CheckedSum<usize> for T
where\n T: IntoIterator<Item = usize>,

§

fn checked_sum(self) -> Result<usize, Error>

Iterate over the values of this type, computing a checked sum. Read more
","CheckedSum","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Clone for usize

source§

fn clone(&self) -> usize

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
","Clone","gosling::context::HandshakeHandle"],["
source§

impl ConstOne for usize

source§

const ONE: usize = 1usize

The multiplicative identity element of Self, 1.
","ConstOne","gosling::context::HandshakeHandle"],["
source§

impl ConstZero for usize

source§

const ZERO: usize = 0usize

The additive identity element of Self, 0.
","ConstZero","gosling::context::HandshakeHandle"],["
source§

impl ConstantTimeEq for usize

source§

fn ct_eq(&self, other: &usize) -> Choice

Determine if two items are equal. Read more
source§

fn ct_ne(&self, other: &Self) -> Choice

Determine if two items are NOT equal. Read more
","ConstantTimeEq","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Debug for usize

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","Debug","gosling::context::HandshakeHandle"],["
§

impl Decode for usize

Decode a usize.

\n

Uses [Decode] impl on u32 and then converts to a usize, handling\npotential overflow if usize is smaller than u32.

\n

Enforces a library-internal limit of 1048575, as the main use case for\nusize is length prefixes.

\n
§

type Error = Error

Type returned in the event of a decoding error.
§

fn decode(reader: &mut impl Reader) -> Result<usize, Error>

Attempt to decode a value of this type using the provided [Reader].
","Decode","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Default for usize

source§

fn default() -> usize

Returns the default value of 0

\n
","Default","gosling::context::HandshakeHandle"],["
source§

impl<'de> Deserialize<'de> for usize

source§

fn deserialize<D>(\n deserializer: D,\n) -> Result<usize, <D as Deserializer<'de>>::Error>
where\n D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
","Deserialize<'de>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Display for usize

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","Display","gosling::context::HandshakeHandle"],["
source§

impl<'a> Div<&'a BigInt> for usize

§

type Output = BigInt

The resulting type after applying the / operator.
source§

fn div(self, other: &BigInt) -> BigInt

Performs the / operation. Read more
","Div<&'a BigInt>","gosling::context::HandshakeHandle"],["
source§

impl<'a> Div<&'a BigUint> for usize

§

type Output = BigUint

The resulting type after applying the / operator.
source§

fn div(self, other: &BigUint) -> BigUint

Performs the / operation. Read more
","Div<&'a BigUint>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Div<&usize> for usize

§

type Output = <usize as Div>::Output

The resulting type after applying the / operator.
source§

fn div(self, other: &usize) -> <usize as Div>::Output

Performs the / operation. Read more
","Div<&usize>","gosling::context::HandshakeHandle"],["
source§

impl Div<BigInt> for usize

§

type Output = BigInt

The resulting type after applying the / operator.
source§

fn div(self, other: BigInt) -> BigInt

Performs the / operation. Read more
","Div","gosling::context::HandshakeHandle"],["
source§

impl Div<BigUint> for usize

§

type Output = BigUint

The resulting type after applying the / operator.
source§

fn div(self, other: BigUint) -> BigUint

Performs the / operation. Read more
","Div","gosling::context::HandshakeHandle"],["
1.51.0 · source§

impl Div<NonZero<usize>> for usize

source§

fn div(self, other: NonZero<usize>) -> usize

This operation rounds towards zero, truncating any fractional\npart of the exact result, and cannot panic.

\n
§

type Output = usize

The resulting type after applying the / operator.
","Div>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Div for usize

This operation rounds towards zero, truncating any\nfractional part of the exact result.

\n

§Panics

\n

This operation will panic if other == 0.

\n
§

type Output = usize

The resulting type after applying the / operator.
source§

fn div(self, other: usize) -> usize

Performs the / operation. Read more
","Div","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl DivAssign<&usize> for usize

source§

fn div_assign(&mut self, other: &usize)

Performs the /= operation. Read more
","DivAssign<&usize>","gosling::context::HandshakeHandle"],["
1.79.0 · source§

impl DivAssign<NonZero<usize>> for usize

source§

fn div_assign(&mut self, other: NonZero<usize>)

This operation rounds towards zero, truncating any fractional\npart of the exact result, and cannot panic.

\n
","DivAssign>","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl DivAssign for usize

source§

fn div_assign(&mut self, other: usize)

Performs the /= operation. Read more
","DivAssign","gosling::context::HandshakeHandle"],["
§

impl Encode for usize

Encode a usize as a uint32 as described in RFC4251 § 5.

\n

Uses [Encode] impl on u32 after converting from a usize, handling\npotential overflow if usize is bigger than u32.

\n
§

fn encoded_len(&self) -> Result<usize, Error>

Get the length of this type encoded in bytes, prior to Base64 encoding.
§

fn encode(&self, writer: &mut impl Writer) -> Result<(), Error>

Encode this value using the provided [Writer].
§

fn encoded_len_prefixed(&self) -> Result<usize, Error>

Return the length of this type after encoding when prepended with a\nuint32 length prefix.
§

fn encode_prefixed(&self, writer: &mut impl Writer) -> Result<(), Error>

Encode this value, first prepending a uint32 length prefix\nset to [Encode::encoded_len].
","Encode","gosling::context::HandshakeHandle"],["
source§

impl Euclid for usize

source§

fn div_euclid(&self, v: &usize) -> usize

Calculates Euclidean division, the matching method for rem_euclid. Read more
source§

fn rem_euclid(&self, v: &usize) -> usize

Calculates the least nonnegative remainder of self (mod v). Read more
source§

fn div_rem_euclid(&self, v: &Self) -> (Self, Self)

Returns both the quotient and remainder from Euclidean division. Read more
","Euclid","gosling::context::HandshakeHandle"],["
source§

impl FmtConst for usize

source§

fn fmt_const(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Print a const expression representing this value.
","FmtConst","gosling::context::HandshakeHandle"],["
source§

impl From<Alignment> for usize

source§

fn from(align: Alignment) -> usize

Converts to this type from the input type.
","From","gosling::context::HandshakeHandle"],["
§

impl From<ByteQty> for usize

§

fn from(value: ByteQty) -> usize

Converts to this type from the input type.
","From","gosling::context::HandshakeHandle"],["
§

impl From<HopNum> for usize

§

fn from(hop: HopNum) -> usize

Converts to this type from the input type.
","From","gosling::context::HandshakeHandle"],["
§

impl From<HsDirPos> for usize

§

fn from(value: HsDirPos) -> usize

Converts to this type from the input type.
","From","gosling::context::HandshakeHandle"],["
§

impl From<IntroPtIndex> for usize

§

fn from(value: IntroPtIndex) -> usize

Converts to this type from the input type.
","From","gosling::context::HandshakeHandle"],["
§

impl<const MIN: usize, const MAX: usize> From<RangedUsize<MIN, MAX>> for usize

§

fn from(value: RangedUsize<MIN, MAX>) -> usize

Converts to this type from the input type.
","From>","gosling::context::HandshakeHandle"],["
§

impl From<RouterStatusIdx> for usize

§

fn from(value: RouterStatusIdx) -> usize

Converts to this type from the input type.
","From","gosling::context::HandshakeHandle"],["
§

impl From<State> for usize

§

fn from(src: State) -> usize

Converts to this type from the input type.
","From","gosling::context::HandshakeHandle"],["
§

impl From<Token> for usize

§

fn from(val: Token) -> usize

Converts to this type from the input type.
","From","gosling::context::HandshakeHandle"],["
§

impl<O> From<U16<O>> for usize
where\n O: ByteOrder,

§

fn from(x: U16<O>) -> usize

Converts to this type from the input type.
","From>","gosling::context::HandshakeHandle"],["
1.28.0 · source§

impl From<bool> for usize

source§

fn from(small: bool) -> usize

Converts a bool to usize losslessly.\nThe resulting value is 0 for false and 1 for true values.

\n
§Examples
\n
assert_eq!(usize::from(true), 1);\nassert_eq!(usize::from(false), 0);
\n
","From","gosling::context::HandshakeHandle"],["
1.26.0 · source§

impl From<u16> for usize

source§

fn from(small: u16) -> usize

Converts u16 to usize losslessly.

\n
","From","gosling::context::HandshakeHandle"],["
§

impl From<u24> for usize

§

fn from(val: u24) -> usize

Converts to this type from the input type.
","From","gosling::context::HandshakeHandle"],["
§

impl From<u40> for usize

§

fn from(val: u40) -> usize

Converts to this type from the input type.
","From","gosling::context::HandshakeHandle"],["
§

impl From<u48> for usize

§

fn from(val: u48) -> usize

Converts to this type from the input type.
","From","gosling::context::HandshakeHandle"],["
§

impl From<u56> for usize

§

fn from(val: u56) -> usize

Converts to this type from the input type.
","From","gosling::context::HandshakeHandle"],["
1.5.0 · source§

impl From<u8> for usize

source§

fn from(small: u8) -> usize

Converts u8 to usize losslessly.

\n
","From","gosling::context::HandshakeHandle"],["
source§

impl FromBytes for usize

§

type Bytes = [u8; 8]

source§

fn from_be_bytes(bytes: &<usize as FromBytes>::Bytes) -> usize

Create a number from its representation as a byte array in big endian. Read more
source§

fn from_le_bytes(bytes: &<usize as FromBytes>::Bytes) -> usize

Create a number from its representation as a byte array in little endian. Read more
source§

fn from_ne_bytes(bytes: &<usize as FromBytes>::Bytes) -> usize

Create a number from its memory representation as a byte array in native endianness. Read more
","FromBytes","gosling::context::HandshakeHandle"],["
§

impl FromBytes for usize

§

fn ref_from(bytes: &[u8]) -> Option<&Self>
where\n Self: Sized,

Interprets the given bytes as a &Self without copying. Read more
§

fn ref_from_prefix(bytes: &[u8]) -> Option<&Self>
where\n Self: Sized,

Interprets the prefix of the given bytes as a &Self without copying. Read more
§

fn ref_from_suffix(bytes: &[u8]) -> Option<&Self>
where\n Self: Sized,

Interprets the suffix of the given bytes as a &Self without copying. Read more
§

fn mut_from(bytes: &mut [u8]) -> Option<&mut Self>
where\n Self: Sized + AsBytes,

Interprets the given bytes as a &mut Self without copying. Read more
§

fn mut_from_prefix(bytes: &mut [u8]) -> Option<&mut Self>
where\n Self: Sized + AsBytes,

Interprets the prefix of the given bytes as a &mut Self without\ncopying. Read more
§

fn mut_from_suffix(bytes: &mut [u8]) -> Option<&mut Self>
where\n Self: Sized + AsBytes,

Interprets the suffix of the given bytes as a &mut Self without copying. Read more
§

fn slice_from(bytes: &[u8]) -> Option<&[Self]>
where\n Self: Sized,

Interprets the given bytes as a &[Self] without copying. Read more
§

fn slice_from_prefix(bytes: &[u8], count: usize) -> Option<(&[Self], &[u8])>
where\n Self: Sized,

Interprets the prefix of the given bytes as a &[Self] with length\nequal to count without copying. Read more
§

fn slice_from_suffix(bytes: &[u8], count: usize) -> Option<(&[u8], &[Self])>
where\n Self: Sized,

Interprets the suffix of the given bytes as a &[Self] with length\nequal to count without copying. Read more
§

fn mut_slice_from(bytes: &mut [u8]) -> Option<&mut [Self]>
where\n Self: Sized + AsBytes,

Interprets the given bytes as a &mut [Self] without copying. Read more
§

fn mut_slice_from_prefix(\n bytes: &mut [u8],\n count: usize,\n) -> Option<(&mut [Self], &mut [u8])>
where\n Self: Sized + AsBytes,

Interprets the prefix of the given bytes as a &mut [Self] with length\nequal to count without copying. Read more
§

fn mut_slice_from_suffix(\n bytes: &mut [u8],\n count: usize,\n) -> Option<(&mut [u8], &mut [Self])>
where\n Self: Sized + AsBytes,

Interprets the suffix of the given bytes as a &mut [Self] with length\nequal to count without copying. Read more
§

fn read_from(bytes: &[u8]) -> Option<Self>
where\n Self: Sized,

Reads a copy of Self from bytes. Read more
§

fn read_from_prefix(bytes: &[u8]) -> Option<Self>
where\n Self: Sized,

Reads a copy of Self from the prefix of bytes. Read more
§

fn read_from_suffix(bytes: &[u8]) -> Option<Self>
where\n Self: Sized,

Reads a copy of Self from the suffix of bytes. Read more
","FromBytes","gosling::context::HandshakeHandle"],["
source§

impl FromPrimitive for usize

source§

fn from_isize(n: isize) -> Option<usize>

Converts an isize to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_i8(n: i8) -> Option<usize>

Converts an i8 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_i16(n: i16) -> Option<usize>

Converts an i16 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_i32(n: i32) -> Option<usize>

Converts an i32 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_i64(n: i64) -> Option<usize>

Converts an i64 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_i128(n: i128) -> Option<usize>

Converts an i128 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned. Read more
source§

fn from_usize(n: usize) -> Option<usize>

Converts a usize to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_u8(n: u8) -> Option<usize>

Converts an u8 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_u16(n: u16) -> Option<usize>

Converts an u16 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_u32(n: u32) -> Option<usize>

Converts an u32 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_u64(n: u64) -> Option<usize>

Converts an u64 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_u128(n: u128) -> Option<usize>

Converts an u128 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned. Read more
source§

fn from_f32(n: f32) -> Option<usize>

Converts a f32 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_f64(n: f64) -> Option<usize>

Converts a f64 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned. Read more
","FromPrimitive","gosling::context::HandshakeHandle"],["
§

impl FromSql for usize

§

fn column_result(value: ValueRef<'_>) -> Result<usize, FromSqlError>

Converts SQLite value into Rust value.
","FromSql","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl FromStr for usize

§

type Err = ParseIntError

The associated error which can be returned from parsing.
source§

fn from_str(src: &str) -> Result<usize, ParseIntError>

Parses a string s to return a value of this type. Read more
","FromStr","gosling::context::HandshakeHandle"],["
§

impl FromZeroes for usize

§

fn zero(&mut self)

Overwrites self with zeroes. Read more
§

fn new_zeroed() -> Self
where\n Self: Sized,

Creates an instance of Self from zeroed bytes. Read more
","FromZeroes","gosling::context::HandshakeHandle"],["
§

impl Fundamental for usize

§

fn as_bool(self) -> bool

Tests self != 0.
§

fn as_char(self) -> Option<char>

Represents self as a Unicode Scalar Value, if possible.
§

fn as_i8(self) -> i8

Performs self as i8.
§

fn as_i16(self) -> i16

Performs self as i16.
§

fn as_i32(self) -> i32

Performs self as i32.
§

fn as_i64(self) -> i64

Performs self as i64.
§

fn as_i128(self) -> i128

Performs self as i128.
§

fn as_isize(self) -> isize

Performs self as isize.
§

fn as_u8(self) -> u8

Performs self as u8.
§

fn as_u16(self) -> u16

Performs self as u16.
§

fn as_u32(self) -> u32

Performs self as u32.
§

fn as_u64(self) -> u64

Performs self as u64.
§

fn as_u128(self) -> u128

Performs self as u128.
§

fn as_usize(self) -> usize

Performs self as usize.
§

fn as_f32(self) -> f32

Performs self as f32.
§

fn as_f64(self) -> f64

Performs self as f64.
","Fundamental","gosling::context::HandshakeHandle"],["
§

impl HasMemoryCostStructural for usize

§

fn indirect_memory_cost(&self, _et: EnabledToken) -> usize

Memory cost of data stored out-of-line Read more
","HasMemoryCostStructural","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Hash for usize

source§

fn hash<H>(&self, state: &mut H)
where\n H: Hasher,

Feeds this value into the given Hasher. Read more
source§

fn hash_slice<H>(data: &[usize], state: &mut H)
where\n H: Hasher,

Feeds a slice of this type into the given Hasher. Read more
","Hash","gosling::context::HandshakeHandle"],["
source§

impl Integer for usize

source§

fn div_floor(&self, other: &usize) -> usize

Unsigned integer division. Returns the same result as div (/).

\n
source§

fn mod_floor(&self, other: &usize) -> usize

Unsigned integer modulo operation. Returns the same result as rem (%).

\n
source§

fn gcd(&self, other: &usize) -> usize

Calculates the Greatest Common Divisor (GCD) of the number and other

\n
source§

fn lcm(&self, other: &usize) -> usize

Calculates the Lowest Common Multiple (LCM) of the number and other.

\n
source§

fn gcd_lcm(&self, other: &usize) -> (usize, usize)

Calculates the Greatest Common Divisor (GCD) and\nLowest Common Multiple (LCM) of the number and other.

\n
source§

fn is_multiple_of(&self, other: &usize) -> bool

Returns true if the number is a multiple of other.

\n
source§

fn is_even(&self) -> bool

Returns true if the number is divisible by 2.

\n
source§

fn is_odd(&self) -> bool

Returns true if the number is not divisible by 2.

\n
source§

fn div_rem(&self, other: &usize) -> (usize, usize)

Simultaneous truncated integer division and modulus.

\n
source§

fn div_ceil(&self, other: &usize) -> usize

Ceiled integer division. Read more
source§

fn extended_gcd_lcm(&self, other: &usize) -> (ExtendedGcd<usize>, usize)

Greatest common divisor, least common multiple, and Bézout coefficients.
source§

fn extended_gcd(&self, other: &Self) -> ExtendedGcd<Self>
where\n Self: Clone,

Greatest common divisor and Bézout coefficients. Read more
source§

fn divides(&self, other: &Self) -> bool

👎Deprecated: Please use is_multiple_of instead
Deprecated, use is_multiple_of instead.
source§

fn div_mod_floor(&self, other: &Self) -> (Self, Self)

Simultaneous floored integer division and modulus.\nReturns (quotient, remainder). Read more
source§

fn next_multiple_of(&self, other: &Self) -> Self
where\n Self: Clone,

Rounds up to nearest multiple of argument. Read more
source§

fn prev_multiple_of(&self, other: &Self) -> Self
where\n Self: Clone,

Rounds down to nearest multiple of argument. Read more
source§

fn dec(&mut self)
where\n Self: Clone,

Decrements self by one. Read more
source§

fn inc(&mut self)
where\n Self: Clone,

Increments self by one. Read more
","Integer","gosling::context::HandshakeHandle"],["
§

impl Integral for usize

§

const ZERO: usize = 0usize

The type’s zero value.
§

const ONE: usize = 1usize

The type’s step value.
§

const MIN: usize = 0usize

The type’s minimum value. This is zero for unsigned integers.
§

const MAX: usize = 18_446_744_073_709_551_615usize

The type’s maximum value.
§

const BITS: u32 = 64u32

The size of this type in bits.
§

fn min_value() -> usize

Returns the smallest value that can be represented by this integer type.
§

fn max_value() -> usize

Returns the largest value that can be represented by this integer type.
§

fn from_str_radix(src: &str, radix: u32) -> Result<usize, ParseIntError>

Converts a string slice in a given base to an integer. Read more
§

fn count_ones(self) -> u32

Returns the number of ones in the binary representation of self.
§

fn count_zeros(self) -> u32

Returns the number of zeros in the binary representation of self.
§

fn leading_zeros(self) -> u32

Returns the number of leading zeros in the binary representation of\nself.
§

fn trailing_zeros(self) -> u32

Returns the number of trailing zeros in the binary representation of\nself.
§

fn leading_ones(self) -> u32

Returns the number of leading ones in the binary representation of\nself.
§

fn trailing_ones(self) -> u32

Returns the number of trailing ones in the binary representation of\nself.
§

fn rotate_left(self, n: u32) -> usize

Shifts the bits to the left by a specified amount, n, wrapping the\ntruncated bits to the end of the resulting integer. Read more
§

fn rotate_right(self, n: u32) -> usize

Shifts the bits to the right by a specified amount, n, wrapping the\ntruncated bits to the beginning of the resulting integer. Read more
§

fn swap_bytes(self) -> usize

Reverses the byte order of the integer.
§

fn reverse_bits(self) -> usize

Reverses the bit pattern of the integer.
§

fn from_be(self) -> usize

Converts an integer from big endian to the target’s endianness. Read more
§

fn from_le(self) -> usize

Converts an integer frm little endian to the target’s endianness. Read more
§

fn to_be(self) -> usize

Converts self to big endian from the target’s endianness. Read more
§

fn to_le(self) -> usize

Converts self to little endian from the target’s endianness. Read more
§

fn checked_add(self, rhs: usize) -> Option<usize>

Checked integer addition. Computes self + rhs, returning None if\noverflow occurred.
§

fn checked_sub(self, rhs: usize) -> Option<usize>

Checked integer subtraction. Computes self - rhs, returning None if\noverflow occurred.
§

fn checked_mul(self, rhs: usize) -> Option<usize>

Checked integer multiplication. Computes self * rhs, returning None\nif overflow occurred.
§

fn checked_div(self, rhs: usize) -> Option<usize>

Checked integer division. Computes self / rhs, returning None if\nrhs == 0 or the division results in overflow.
§

fn checked_div_euclid(self, rhs: usize) -> Option<usize>

Checked Euclidean division. Computes self.div_euclid(rhs), returning\nNone if rhs == 0 or the division results in overflow.
§

fn checked_rem(self, rhs: usize) -> Option<usize>

Checked integer remainder. Computes self % rhs, returning None if\nrhs == 0 or the division results in overflow.
§

fn checked_rem_euclid(self, rhs: usize) -> Option<usize>

Checked Euclidean remainder. Computes self.rem_euclid(rhs), returning\nNone if rhs == 0 or the division results in overflow.
§

fn checked_neg(self) -> Option<usize>

Checked negation. Computes -self, returning None if self == MIN. Read more
§

fn checked_shl(self, rhs: u32) -> Option<usize>

Checked shift left. Computes self << rhs, returning None if rhs is\nlarger than or equal to the number of bits in self.
§

fn checked_shr(self, rhs: u32) -> Option<usize>

Checked shift right. Computes self >> rhs, returning None if rhs\nis larger than or equal to the number of bits in self.
§

fn checked_pow(self, rhs: u32) -> Option<usize>

Checked exponentiation. Computes self.pow(exp), returning None if\noverflow occurred.
§

fn saturating_add(self, rhs: usize) -> usize

Saturating integer addition. Computes self + rhs, saturating at the\nnumeric bounds instead of overflowing.
§

fn saturating_sub(self, rhs: usize) -> usize

Saturating integer subtraction. Computes self - rhs, saturating at the\nnumeric bounds instead of overflowing.
§

fn saturating_mul(self, rhs: usize) -> usize

Saturating integer multiplication. Computes self * rhs, saturating at\nthe numeric bounds instead of overflowing.
§

fn saturating_pow(self, rhs: u32) -> usize

Saturating integer exponentiation. Computes self.pow(exp), saturating\nat the numeric bounds instead of overflowing.
§

fn wrapping_add(self, rhs: usize) -> usize

Wrapping (modular) addition. Computes self + rhs, wrapping around at\nthe boundary of the type.
§

fn wrapping_sub(self, rhs: usize) -> usize

Wrapping (modular) subtraction. Computes self - rhs, wrapping around\nat the boundary of the type.
§

fn wrapping_mul(self, rhs: usize) -> usize

Wrapping (modular) multiplication. Computes self * rhs, wrapping\naround at the boundary of the type.
§

fn wrapping_div(self, rhs: usize) -> usize

Wrapping (modular) division. Computes self / rhs, wrapping around at\nthe boundary of the type. Read more
§

fn wrapping_div_euclid(self, rhs: usize) -> usize

Wrapping Euclidean division. Computes self.div_euclid(rhs), wrapping\naround at the boundary of the type. Read more
§

fn wrapping_rem(self, rhs: usize) -> usize

Wrapping (modular) remainder. Computes self % rhs, wrapping around at\nthe boundary of the type. Read more
§

fn wrapping_rem_euclid(self, rhs: usize) -> usize

Wrapping Euclidean remainder. Computes self.rem_euclid(rhs), wrapping\naround at the boundary of the type. Read more
§

fn wrapping_neg(self) -> usize

Wrapping (modular) negation. Computes -self, wrapping around at the\nboundary of the type. Read more
§

fn wrapping_shl(self, rhs: u32) -> usize

Panic-free bitwise shift-left; yields self << mask(rhs), where mask\nremoves any high-order bits of rhs that would cause the shift to\nexceed the bit-width of the type. Read more
§

fn wrapping_shr(self, rhs: u32) -> usize

Panic-free bitwise shift-right; yields self >> mask(rhs), where mask\nremoves any high-order bits of rhs that would cause the shift to\nexceed the bit-width of the type. Read more
§

fn wrapping_pow(self, rhs: u32) -> usize

Wrapping (modular) exponentiation. Computes self.pow(exp), wrapping\naround at the boundary of the type.
§

fn overflowing_add(self, rhs: usize) -> (usize, bool)

Calculates self + rhs Read more
§

fn overflowing_sub(self, rhs: usize) -> (usize, bool)

Calculates self - rhs Read more
§

fn overflowing_mul(self, rhs: usize) -> (usize, bool)

Calculates the multiplication of self and rhs. Read more
§

fn overflowing_div(self, rhs: usize) -> (usize, bool)

Calculates the divisor when self is divided by rhs. Read more
§

fn overflowing_div_euclid(self, rhs: usize) -> (usize, bool)

Calculates the quotient of Euclidean division self.div_euclid(rhs). Read more
§

fn overflowing_rem(self, rhs: usize) -> (usize, bool)

Calculates the remainder when self is divided by rhs. Read more
§

fn overflowing_rem_euclid(self, rhs: usize) -> (usize, bool)

Overflowing Euclidean remainder. Calculates self.rem_euclid(rhs). Read more
§

fn overflowing_neg(self) -> (usize, bool)

Negates self, overflowing if this is equal to the minimum value. Read more
§

fn overflowing_shl(self, rhs: u32) -> (usize, bool)

Shifts self left by rhs bits. Read more
§

fn overflowing_shr(self, rhs: u32) -> (usize, bool)

Shifts self right by rhs bits. Read more
§

fn overflowing_pow(self, rhs: u32) -> (usize, bool)

Raises self to the power of exp, using exponentiation by squaring. Read more
§

fn pow(self, rhs: u32) -> usize

Raises self to the power of exp, using exponentiation by squaring.
§

fn div_euclid(self, rhs: usize) -> usize

Calculates the quotient of Euclidean division of self by rhs. Read more
§

fn rem_euclid(self, rhs: usize) -> usize

Calculates the least nonnegative remainder of self (mod rhs). Read more
","Integral","gosling::context::HandshakeHandle"],["
source§

impl IntoBigInt for usize

source§

fn into_bigint(self) -> Option<BigInt>

Converts the value of self to a BigInt.
","IntoBigInt","gosling::context::HandshakeHandle"],["
source§

impl IntoBigUint for usize

source§

fn into_biguint(self) -> Option<BigUint>

Converts the value of self to a BigUint.
","IntoBigUint","gosling::context::HandshakeHandle"],["
source§

impl<'de, E> IntoDeserializer<'de, E> for usize
where\n E: Error,

§

type Deserializer = UsizeDeserializer<E>

The type of the deserializer being converted into.
source§

fn into_deserializer(self) -> UsizeDeserializer<E>

Convert this value into a deserializer.
","IntoDeserializer<'de, E>","gosling::context::HandshakeHandle"],["
§

impl IntoNotification for usize

§

type Tag = ()

The tag data associated with a notification. Read more
§

type Notify = Notify

The notification type. Read more
§

fn into_notification(self) -> <usize as IntoNotification>::Notify

Convert this value into a notification. Read more
§

fn additional(self) -> Additional<Self::Notify>
where\n Self: Sized,

Convert this value into an additional notification. Read more
§

fn relaxed(self) -> Relaxed<Self::Notify>
where\n Self: Sized,

Don’t emit a fence for this notification. Read more
§

fn tag<T>(self, tag: T) -> Tag<Self::Notify, T>
where\n T: Clone,\n Self: Sized + IntoNotification<Tag = ()>,

Use a tag with this notification. Read more
§

fn tag_with<T, F>(self, tag: F) -> TagWith<Self::Notify, F>
where\n Self: Sized + IntoNotification<Tag = ()>,\n F: FnMut() -> T,

Use a function to generate a tag with this notification. Read more
","IntoNotification","gosling::context::HandshakeHandle"],["
1.42.0 · source§

impl LowerExp for usize

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","LowerExp","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl LowerHex for usize

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","LowerHex","gosling::context::HandshakeHandle"],["
source§

impl<'a> Mul<&'a BigInt> for usize

§

type Output = BigInt

The resulting type after applying the * operator.
source§

fn mul(self, other: &BigInt) -> BigInt

Performs the * operation. Read more
","Mul<&'a BigInt>","gosling::context::HandshakeHandle"],["
source§

impl<'a> Mul<&'a BigUint> for usize

§

type Output = BigUint

The resulting type after applying the * operator.
source§

fn mul(self, other: &BigUint) -> BigUint

Performs the * operation. Read more
","Mul<&'a BigUint>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Mul<&usize> for usize

§

type Output = <usize as Mul>::Output

The resulting type after applying the * operator.
source§

fn mul(self, other: &usize) -> <usize as Mul>::Output

Performs the * operation. Read more
","Mul<&usize>","gosling::context::HandshakeHandle"],["
source§

impl Mul<BigInt> for usize

§

type Output = BigInt

The resulting type after applying the * operator.
source§

fn mul(self, other: BigInt) -> BigInt

Performs the * operation. Read more
","Mul","gosling::context::HandshakeHandle"],["
source§

impl Mul<BigUint> for usize

§

type Output = BigUint

The resulting type after applying the * operator.
source§

fn mul(self, other: BigUint) -> BigUint

Performs the * operation. Read more
","Mul","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Mul for usize

§

type Output = usize

The resulting type after applying the * operator.
source§

fn mul(self, other: usize) -> usize

Performs the * operation. Read more
","Mul","gosling::context::HandshakeHandle"],["
source§

impl MulAdd for usize

§

type Output = usize

The resulting type after applying the fused multiply-add.
source§

fn mul_add(self, a: usize, b: usize) -> <usize as MulAdd>::Output

Performs the fused multiply-add operation (self * a) + b
","MulAdd","gosling::context::HandshakeHandle"],["
source§

impl MulAddAssign for usize

source§

fn mul_add_assign(&mut self, a: usize, b: usize)

Performs the fused multiply-add assignment operation *self = (*self * a) + b
","MulAddAssign","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl MulAssign<&usize> for usize

source§

fn mul_assign(&mut self, other: &usize)

Performs the *= operation. Read more
","MulAssign<&usize>","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl MulAssign for usize

source§

fn mul_assign(&mut self, other: usize)

Performs the *= operation. Read more
","MulAssign","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Not for usize

§

type Output = usize

The resulting type after applying the ! operator.
source§

fn not(self) -> usize

Performs the unary ! operation. Read more
","Not","gosling::context::HandshakeHandle"],["
source§

impl Num for usize

§

type FromStrRadixErr = ParseIntError

source§

fn from_str_radix(s: &str, radix: u32) -> Result<usize, ParseIntError>

Convert from a string and radix (typically 2..=36). Read more
","Num","gosling::context::HandshakeHandle"],["
source§

impl NumCast for usize

source§

fn from<N>(n: N) -> Option<usize>
where\n N: ToPrimitive,

Creates a number from another value that can be converted into\na primitive via the ToPrimitive trait. If the source value cannot be\nrepresented by the target type, then None is returned. Read more
","NumCast","gosling::context::HandshakeHandle"],["
§

impl Numeric for usize

§

type Bytes = [u8; 8]

The [u8; N] byte array that stores values of Self.
§

fn to_be_bytes(self) -> <usize as Numeric>::Bytes

Return the memory representation of this number as a byte array in\nbig-endian (network) byte order.
§

fn to_le_bytes(self) -> <usize as Numeric>::Bytes

Return the memory representation of this number as a byte array in\nlittle-endian byte order.
§

fn to_ne_bytes(self) -> <usize as Numeric>::Bytes

Return the memory representation of this number as a byte array in\nnative byte order.
§

fn from_be_bytes(bytes: <usize as Numeric>::Bytes) -> usize

Create a numeric value from its representation as a byte array in big\nendian.
§

fn from_le_bytes(bytes: <usize as Numeric>::Bytes) -> usize

Create a numeric value from its representation as a byte array in little\nendian.
§

fn from_ne_bytes(bytes: <usize as Numeric>::Bytes) -> usize

Create a numeric value from its memory representation as a byte array in\nnative endianness.
","Numeric","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Octal for usize

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","Octal","gosling::context::HandshakeHandle"],["
source§

impl One for usize

source§

fn one() -> usize

Returns the multiplicative identity element of Self, 1. Read more
source§

fn is_one(&self) -> bool

Returns true if self is equal to the multiplicative identity. Read more
source§

fn set_one(&mut self)

Sets self to the multiplicative identity element of Self, 1.
","One","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Ord for usize

source§

fn cmp(&self, other: &usize) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where\n Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where\n Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where\n Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
","Ord","gosling::context::HandshakeHandle"],["
source§

impl OverflowingAdd for usize

source§

fn overflowing_add(&self, v: &usize) -> (usize, bool)

Returns a tuple of the sum along with a boolean indicating whether an arithmetic overflow would occur.\nIf an overflow would have occurred then the wrapped value is returned.
","OverflowingAdd","gosling::context::HandshakeHandle"],["
source§

impl OverflowingMul for usize

source§

fn overflowing_mul(&self, v: &usize) -> (usize, bool)

Returns a tuple of the product along with a boolean indicating whether an arithmetic overflow would occur.\nIf an overflow would have occurred then the wrapped value is returned.
","OverflowingMul","gosling::context::HandshakeHandle"],["
source§

impl OverflowingSub for usize

source§

fn overflowing_sub(&self, v: &usize) -> (usize, bool)

Returns a tuple of the difference along with a boolean indicating whether an arithmetic overflow would occur.\nIf an overflow would have occurred then the wrapped value is returned.
","OverflowingSub","gosling::context::HandshakeHandle"],["
§

impl ParseHex for usize

§

fn parse_hex(input: &str) -> Result<usize, ParseError>

Parse the value from hex.
","ParseHex","gosling::context::HandshakeHandle"],["
source§

impl PartialEq<Value> for usize

source§

fn eq(&self, other: &Value) -> bool

This method tests for self and other values to be equal, and is used\nby ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
","PartialEq","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl PartialEq for usize

source§

fn eq(&self, other: &usize) -> bool

This method tests for self and other values to be equal, and is used\nby ==.
source§

fn ne(&self, other: &usize) -> bool

This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
","PartialEq","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl PartialOrd for usize

source§

fn partial_cmp(&self, other: &usize) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, other: &usize) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, other: &usize) -> bool

This method tests less than or equal to (for self and other) and is used by the <=\noperator. Read more
source§

fn ge(&self, other: &usize) -> bool

This method tests greater than or equal to (for self and other) and is used by the >=\noperator. Read more
source§

fn gt(&self, other: &usize) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
","PartialOrd","gosling::context::HandshakeHandle"],["
source§

impl PhfBorrow<usize> for usize

source§

fn borrow(&self) -> &usize

Convert a reference to self to a reference to the borrowed type.
","PhfBorrow","gosling::context::HandshakeHandle"],["
source§

impl PhfHash for usize

source§

fn phf_hash<H>(&self, state: &mut H)
where\n H: Hasher,

Feeds the value into the state given, updating the hasher as necessary.
source§

fn phf_hash_slice<H>(data: &[Self], state: &mut H)
where\n H: Hasher,\n Self: Sized,

Feeds a slice of this type into the state provided.
","PhfHash","gosling::context::HandshakeHandle"],["
source§

impl<'a> Pow<&'a u16> for usize

§

type Output = usize

The result after applying the operator.
source§

fn pow(self, rhs: &'a u16) -> usize

Returns self to the power rhs. Read more
","Pow<&'a u16>","gosling::context::HandshakeHandle"],["
source§

impl<'a> Pow<&'a u32> for usize

§

type Output = usize

The result after applying the operator.
source§

fn pow(self, rhs: &'a u32) -> usize

Returns self to the power rhs. Read more
","Pow<&'a u32>","gosling::context::HandshakeHandle"],["
source§

impl<'a> Pow<&'a u8> for usize

§

type Output = usize

The result after applying the operator.
source§

fn pow(self, rhs: &'a u8) -> usize

Returns self to the power rhs. Read more
","Pow<&'a u8>","gosling::context::HandshakeHandle"],["
source§

impl<'a> Pow<&'a usize> for usize

§

type Output = usize

The result after applying the operator.
source§

fn pow(self, rhs: &'a usize) -> usize

Returns self to the power rhs. Read more
","Pow<&'a usize>","gosling::context::HandshakeHandle"],["
source§

impl<U> Pow<PInt<U>> for usize
where\n U: Unsigned + NonZero,

§

type Output = usize

The result of the exponentiation.
source§

fn powi(self, _: PInt<U>) -> <usize as Pow<PInt<U>>>::Output

This function isn’t used in this crate, but may be useful for others.\nIt is implemented for primitives. Read more
","Pow>","gosling::context::HandshakeHandle"],["
source§

impl<U, B> Pow<UInt<U, B>> for usize
where\n U: Unsigned,\n B: Bit,

§

type Output = usize

The result of the exponentiation.
source§

fn powi(self, _: UInt<U, B>) -> <usize as Pow<UInt<U, B>>>::Output

This function isn’t used in this crate, but may be useful for others.\nIt is implemented for primitives. Read more
","Pow>","gosling::context::HandshakeHandle"],["
source§

impl Pow<UTerm> for usize

§

type Output = usize

The result of the exponentiation.
source§

fn powi(self, _: UTerm) -> <usize as Pow<UTerm>>::Output

This function isn’t used in this crate, but may be useful for others.\nIt is implemented for primitives. Read more
","Pow","gosling::context::HandshakeHandle"],["
source§

impl Pow<Z0> for usize

§

type Output = usize

The result of the exponentiation.
source§

fn powi(self, _: Z0) -> <usize as Pow<Z0>>::Output

This function isn’t used in this crate, but may be useful for others.\nIt is implemented for primitives. Read more
","Pow","gosling::context::HandshakeHandle"],["
source§

impl Pow<u16> for usize

§

type Output = usize

The result after applying the operator.
source§

fn pow(self, rhs: u16) -> usize

Returns self to the power rhs. Read more
","Pow","gosling::context::HandshakeHandle"],["
source§

impl Pow<u32> for usize

§

type Output = usize

The result after applying the operator.
source§

fn pow(self, rhs: u32) -> usize

Returns self to the power rhs. Read more
","Pow","gosling::context::HandshakeHandle"],["
source§

impl Pow<u8> for usize

§

type Output = usize

The result after applying the operator.
source§

fn pow(self, rhs: u8) -> usize

Returns self to the power rhs. Read more
","Pow","gosling::context::HandshakeHandle"],["
source§

impl Pow<usize> for usize

§

type Output = usize

The result after applying the operator.
source§

fn pow(self, rhs: usize) -> usize

Returns self to the power rhs. Read more
","Pow","gosling::context::HandshakeHandle"],["
source§

impl PrimInt for usize

source§

fn count_ones(self) -> u32

Returns the number of ones in the binary representation of self. Read more
source§

fn count_zeros(self) -> u32

Returns the number of zeros in the binary representation of self. Read more
source§

fn leading_ones(self) -> u32

Returns the number of leading ones in the binary representation\nof self. Read more
source§

fn leading_zeros(self) -> u32

Returns the number of leading zeros in the binary representation\nof self. Read more
source§

fn trailing_ones(self) -> u32

Returns the number of trailing ones in the binary representation\nof self. Read more
source§

fn trailing_zeros(self) -> u32

Returns the number of trailing zeros in the binary representation\nof self. Read more
source§

fn rotate_left(self, n: u32) -> usize

Shifts the bits to the left by a specified amount, n, wrapping\nthe truncated bits to the end of the resulting integer. Read more
source§

fn rotate_right(self, n: u32) -> usize

Shifts the bits to the right by a specified amount, n, wrapping\nthe truncated bits to the beginning of the resulting integer. Read more
source§

fn signed_shl(self, n: u32) -> usize

Shifts the bits to the left by a specified amount, n, filling\nzeros in the least significant bits. Read more
source§

fn signed_shr(self, n: u32) -> usize

Shifts the bits to the right by a specified amount, n, copying\nthe “sign bit” in the most significant bits even for unsigned types. Read more
source§

fn unsigned_shl(self, n: u32) -> usize

Shifts the bits to the left by a specified amount, n, filling\nzeros in the least significant bits. Read more
source§

fn unsigned_shr(self, n: u32) -> usize

Shifts the bits to the right by a specified amount, n, filling\nzeros in the most significant bits. Read more
source§

fn swap_bytes(self) -> usize

Reverses the byte order of the integer. Read more
source§

fn reverse_bits(self) -> usize

Reverses the order of bits in the integer. Read more
source§

fn from_be(x: usize) -> usize

Convert an integer from big endian to the target’s endianness. Read more
source§

fn from_le(x: usize) -> usize

Convert an integer from little endian to the target’s endianness. Read more
source§

fn to_be(self) -> usize

Convert self to big endian from the target’s endianness. Read more
source§

fn to_le(self) -> usize

Convert self to little endian from the target’s endianness. Read more
source§

fn pow(self, exp: u32) -> usize

Raises self to the power of exp, using exponentiation by squaring. Read more
","PrimInt","gosling::context::HandshakeHandle"],["
1.12.0 · source§

impl<'a> Product<&'a usize> for usize

source§

fn product<I>(iter: I) -> usize
where\n I: Iterator<Item = &'a usize>,

Method which takes an iterator and generates Self from the elements by\nmultiplying the items.
","Product<&'a usize>","gosling::context::HandshakeHandle"],["
1.12.0 · source§

impl Product for usize

source§

fn product<I>(iter: I) -> usize
where\n I: Iterator<Item = usize>,

Method which takes an iterator and generates Self from the elements by\nmultiplying the items.
","Product","gosling::context::HandshakeHandle"],["
§

impl<R> RangeExt<usize> for R
where\n R: RangeBounds<usize>,

§

fn normalize(\n self,\n start: impl Into<Option<usize>>,\n end: impl Into<Option<usize>>,\n) -> Range<usize>

Normalizes a range-like type to a canonical half-open Range. Read more
§

fn intersection<R2>(self, other: R2) -> Option<Range<usize>>
where\n R2: RangeExt<usize>,

Finds the intersection between two range-likes. The produced Range\nspans only the elements common to both. Read more
§

fn union<R2>(self, other: R2) -> Option<Range<usize>>
where\n R2: RangeExt<usize>,

Finds the union between two range-likes. The produced Range spans all\nelements present in at least one of them. Read more
","RangeExt","gosling::context::HandshakeHandle"],["
source§

impl<'a> Rem<&'a BigInt> for usize

§

type Output = BigInt

The resulting type after applying the % operator.
source§

fn rem(self, other: &BigInt) -> BigInt

Performs the % operation. Read more
","Rem<&'a BigInt>","gosling::context::HandshakeHandle"],["
source§

impl<'a> Rem<&'a BigUint> for usize

§

type Output = BigUint

The resulting type after applying the % operator.
source§

fn rem(self, other: &BigUint) -> BigUint

Performs the % operation. Read more
","Rem<&'a BigUint>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Rem<&usize> for usize

§

type Output = <usize as Rem>::Output

The resulting type after applying the % operator.
source§

fn rem(self, other: &usize) -> <usize as Rem>::Output

Performs the % operation. Read more
","Rem<&usize>","gosling::context::HandshakeHandle"],["
source§

impl Rem<BigInt> for usize

§

type Output = BigInt

The resulting type after applying the % operator.
source§

fn rem(self, other: BigInt) -> BigInt

Performs the % operation. Read more
","Rem","gosling::context::HandshakeHandle"],["
source§

impl Rem<BigUint> for usize

§

type Output = BigUint

The resulting type after applying the % operator.
source§

fn rem(self, other: BigUint) -> BigUint

Performs the % operation. Read more
","Rem","gosling::context::HandshakeHandle"],["
1.51.0 · source§

impl Rem<NonZero<usize>> for usize

source§

fn rem(self, other: NonZero<usize>) -> usize

This operation satisfies n % d == n - (n / d) * d, and cannot panic.

\n
§

type Output = usize

The resulting type after applying the % operator.
","Rem>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Rem for usize

This operation satisfies n % d == n - (n / d) * d. The\nresult has the same sign as the left operand.

\n

§Panics

\n

This operation will panic if other == 0.

\n
§

type Output = usize

The resulting type after applying the % operator.
source§

fn rem(self, other: usize) -> usize

Performs the % operation. Read more
","Rem","gosling::context::HandshakeHandle"],["
source§

impl<'a> RemAssign<&'a BigUint> for usize

source§

fn rem_assign(&mut self, other: &BigUint)

Performs the %= operation. Read more
","RemAssign<&'a BigUint>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl RemAssign<&usize> for usize

source§

fn rem_assign(&mut self, other: &usize)

Performs the %= operation. Read more
","RemAssign<&usize>","gosling::context::HandshakeHandle"],["
source§

impl RemAssign<BigUint> for usize

source§

fn rem_assign(&mut self, other: BigUint)

Performs the %= operation. Read more
","RemAssign","gosling::context::HandshakeHandle"],["
1.79.0 · source§

impl RemAssign<NonZero<usize>> for usize

source§

fn rem_assign(&mut self, other: NonZero<usize>)

This operation satisfies n % d == n - (n / d) * d, and cannot panic.

\n
","RemAssign>","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl RemAssign for usize

source§

fn rem_assign(&mut self, other: usize)

Performs the %= operation. Read more
","RemAssign","gosling::context::HandshakeHandle"],["
source§

impl Roots for usize

source§

fn nth_root(&self, n: u32) -> usize

Returns the truncated principal nth root of an integer\n– if x >= 0 { ⌊ⁿ√x⌋ } else { ⌈ⁿ√x⌉ } Read more
source§

fn sqrt(&self) -> usize

Returns the truncated principal square root of an integer – ⌊√x⌋ Read more
source§

fn cbrt(&self) -> usize

Returns the truncated principal cube root of an integer –\nif x >= 0 { ⌊∛x⌋ } else { ⌈∛x⌉ } Read more
","Roots","gosling::context::HandshakeHandle"],["
§

impl RowIndex for usize

§

fn idx(&self, stmt: &Statement<'_>) -> Result<usize, Error>

Returns the index of the appropriate column, or None if no such\ncolumn exists.
","RowIndex","gosling::context::HandshakeHandle"],["
source§

impl SampleUniform for usize

§

type Sampler = UniformInt<usize>

The UniformSampler implementation supporting type X.
","SampleUniform","gosling::context::HandshakeHandle"],["
source§

impl Saturating for usize

source§

fn saturating_add(self, v: usize) -> usize

Saturating addition operator.\nReturns a+b, saturating at the numeric bounds instead of overflowing.
source§

fn saturating_sub(self, v: usize) -> usize

Saturating subtraction operator.\nReturns a-b, saturating at the numeric bounds instead of overflowing.
","Saturating","gosling::context::HandshakeHandle"],["
source§

impl SaturatingAdd for usize

source§

fn saturating_add(&self, v: &usize) -> usize

Saturating addition. Computes self + other, saturating at the relevant high or low boundary of\nthe type.
","SaturatingAdd","gosling::context::HandshakeHandle"],["
source§

impl SaturatingMul for usize

source§

fn saturating_mul(&self, v: &usize) -> usize

Saturating multiplication. Computes self * other, saturating at the relevant high or low boundary of\nthe type.
","SaturatingMul","gosling::context::HandshakeHandle"],["
source§

impl SaturatingSub for usize

source§

fn saturating_sub(&self, v: &usize) -> usize

Saturating subtraction. Computes self - other, saturating at the relevant high or low boundary of\nthe type.
","SaturatingSub","gosling::context::HandshakeHandle"],["
§

impl SeekNum for usize

§

fn from_block_byte<T>(\n block: T,\n byte: u8,\n bs: u8,\n) -> Result<usize, OverflowError>
where\n T: Counter,

Try to get position for block number block, byte position inside\nblock byte, and block size bs.
§

fn into_block_byte<T>(self, bs: u8) -> Result<(T, u8), OverflowError>
where\n T: Counter,

Try to get block number and bytes position for given block size bs.
","SeekNum","gosling::context::HandshakeHandle"],["
source§

impl Serialize for usize

source§

fn serialize<S>(\n &self,\n serializer: S,\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where\n S: Serializer,

Serialize this value into the given Serde serializer. Read more
","Serialize","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<&i128> for usize

§

type Output = <usize as Shl<i128>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &i128) -> <usize as Shl<i128>>::Output

Performs the << operation. Read more
","Shl<&i128>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<&i16> for usize

§

type Output = <usize as Shl<i16>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &i16) -> <usize as Shl<i16>>::Output

Performs the << operation. Read more
","Shl<&i16>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<&i32> for usize

§

type Output = <usize as Shl<i32>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &i32) -> <usize as Shl<i32>>::Output

Performs the << operation. Read more
","Shl<&i32>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<&i64> for usize

§

type Output = <usize as Shl<i64>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &i64) -> <usize as Shl<i64>>::Output

Performs the << operation. Read more
","Shl<&i64>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<&i8> for usize

§

type Output = <usize as Shl<i8>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &i8) -> <usize as Shl<i8>>::Output

Performs the << operation. Read more
","Shl<&i8>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<&isize> for usize

§

type Output = <usize as Shl<isize>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &isize) -> <usize as Shl<isize>>::Output

Performs the << operation. Read more
","Shl<&isize>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<&u128> for usize

§

type Output = <usize as Shl<u128>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &u128) -> <usize as Shl<u128>>::Output

Performs the << operation. Read more
","Shl<&u128>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<&u16> for usize

§

type Output = <usize as Shl<u16>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &u16) -> <usize as Shl<u16>>::Output

Performs the << operation. Read more
","Shl<&u16>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<&u32> for usize

§

type Output = <usize as Shl<u32>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &u32) -> <usize as Shl<u32>>::Output

Performs the << operation. Read more
","Shl<&u32>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<&u64> for usize

§

type Output = <usize as Shl<u64>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &u64) -> <usize as Shl<u64>>::Output

Performs the << operation. Read more
","Shl<&u64>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<&u8> for usize

§

type Output = <usize as Shl<u8>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &u8) -> <usize as Shl<u8>>::Output

Performs the << operation. Read more
","Shl<&u8>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<&usize> for usize

§

type Output = <usize as Shl>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &usize) -> <usize as Shl>::Output

Performs the << operation. Read more
","Shl<&usize>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<i128> for usize

§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: i128) -> usize

Performs the << operation. Read more
","Shl","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<i16> for usize

§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: i16) -> usize

Performs the << operation. Read more
","Shl","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<i32> for usize

§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: i32) -> usize

Performs the << operation. Read more
","Shl","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<i64> for usize

§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: i64) -> usize

Performs the << operation. Read more
","Shl","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<i8> for usize

§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: i8) -> usize

Performs the << operation. Read more
","Shl","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<isize> for usize

§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: isize) -> usize

Performs the << operation. Read more
","Shl","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<u128> for usize

§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: u128) -> usize

Performs the << operation. Read more
","Shl","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<u16> for usize

§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: u16) -> usize

Performs the << operation. Read more
","Shl","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<u32> for usize

§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: u32) -> usize

Performs the << operation. Read more
","Shl","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<u64> for usize

§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: u64) -> usize

Performs the << operation. Read more
","Shl","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<u8> for usize

§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: u8) -> usize

Performs the << operation. Read more
","Shl","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl for usize

§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: usize) -> usize

Performs the << operation. Read more
","Shl","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShlAssign<&i128> for usize

source§

fn shl_assign(&mut self, other: &i128)

Performs the <<= operation. Read more
","ShlAssign<&i128>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShlAssign<&i16> for usize

source§

fn shl_assign(&mut self, other: &i16)

Performs the <<= operation. Read more
","ShlAssign<&i16>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShlAssign<&i32> for usize

source§

fn shl_assign(&mut self, other: &i32)

Performs the <<= operation. Read more
","ShlAssign<&i32>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShlAssign<&i64> for usize

source§

fn shl_assign(&mut self, other: &i64)

Performs the <<= operation. Read more
","ShlAssign<&i64>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShlAssign<&i8> for usize

source§

fn shl_assign(&mut self, other: &i8)

Performs the <<= operation. Read more
","ShlAssign<&i8>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShlAssign<&isize> for usize

source§

fn shl_assign(&mut self, other: &isize)

Performs the <<= operation. Read more
","ShlAssign<&isize>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShlAssign<&u128> for usize

source§

fn shl_assign(&mut self, other: &u128)

Performs the <<= operation. Read more
","ShlAssign<&u128>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShlAssign<&u16> for usize

source§

fn shl_assign(&mut self, other: &u16)

Performs the <<= operation. Read more
","ShlAssign<&u16>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShlAssign<&u32> for usize

source§

fn shl_assign(&mut self, other: &u32)

Performs the <<= operation. Read more
","ShlAssign<&u32>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShlAssign<&u64> for usize

source§

fn shl_assign(&mut self, other: &u64)

Performs the <<= operation. Read more
","ShlAssign<&u64>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShlAssign<&u8> for usize

source§

fn shl_assign(&mut self, other: &u8)

Performs the <<= operation. Read more
","ShlAssign<&u8>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShlAssign<&usize> for usize

source§

fn shl_assign(&mut self, other: &usize)

Performs the <<= operation. Read more
","ShlAssign<&usize>","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShlAssign<i128> for usize

source§

fn shl_assign(&mut self, other: i128)

Performs the <<= operation. Read more
","ShlAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShlAssign<i16> for usize

source§

fn shl_assign(&mut self, other: i16)

Performs the <<= operation. Read more
","ShlAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShlAssign<i32> for usize

source§

fn shl_assign(&mut self, other: i32)

Performs the <<= operation. Read more
","ShlAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShlAssign<i64> for usize

source§

fn shl_assign(&mut self, other: i64)

Performs the <<= operation. Read more
","ShlAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShlAssign<i8> for usize

source§

fn shl_assign(&mut self, other: i8)

Performs the <<= operation. Read more
","ShlAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShlAssign<isize> for usize

source§

fn shl_assign(&mut self, other: isize)

Performs the <<= operation. Read more
","ShlAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShlAssign<u128> for usize

source§

fn shl_assign(&mut self, other: u128)

Performs the <<= operation. Read more
","ShlAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShlAssign<u16> for usize

source§

fn shl_assign(&mut self, other: u16)

Performs the <<= operation. Read more
","ShlAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShlAssign<u32> for usize

source§

fn shl_assign(&mut self, other: u32)

Performs the <<= operation. Read more
","ShlAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShlAssign<u64> for usize

source§

fn shl_assign(&mut self, other: u64)

Performs the <<= operation. Read more
","ShlAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShlAssign<u8> for usize

source§

fn shl_assign(&mut self, other: u8)

Performs the <<= operation. Read more
","ShlAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShlAssign for usize

source§

fn shl_assign(&mut self, other: usize)

Performs the <<= operation. Read more
","ShlAssign","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<&i128> for usize

§

type Output = <usize as Shr<i128>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &i128) -> <usize as Shr<i128>>::Output

Performs the >> operation. Read more
","Shr<&i128>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<&i16> for usize

§

type Output = <usize as Shr<i16>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &i16) -> <usize as Shr<i16>>::Output

Performs the >> operation. Read more
","Shr<&i16>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<&i32> for usize

§

type Output = <usize as Shr<i32>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &i32) -> <usize as Shr<i32>>::Output

Performs the >> operation. Read more
","Shr<&i32>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<&i64> for usize

§

type Output = <usize as Shr<i64>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &i64) -> <usize as Shr<i64>>::Output

Performs the >> operation. Read more
","Shr<&i64>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<&i8> for usize

§

type Output = <usize as Shr<i8>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &i8) -> <usize as Shr<i8>>::Output

Performs the >> operation. Read more
","Shr<&i8>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<&isize> for usize

§

type Output = <usize as Shr<isize>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &isize) -> <usize as Shr<isize>>::Output

Performs the >> operation. Read more
","Shr<&isize>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<&u128> for usize

§

type Output = <usize as Shr<u128>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &u128) -> <usize as Shr<u128>>::Output

Performs the >> operation. Read more
","Shr<&u128>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<&u16> for usize

§

type Output = <usize as Shr<u16>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &u16) -> <usize as Shr<u16>>::Output

Performs the >> operation. Read more
","Shr<&u16>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<&u32> for usize

§

type Output = <usize as Shr<u32>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &u32) -> <usize as Shr<u32>>::Output

Performs the >> operation. Read more
","Shr<&u32>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<&u64> for usize

§

type Output = <usize as Shr<u64>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &u64) -> <usize as Shr<u64>>::Output

Performs the >> operation. Read more
","Shr<&u64>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<&u8> for usize

§

type Output = <usize as Shr<u8>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &u8) -> <usize as Shr<u8>>::Output

Performs the >> operation. Read more
","Shr<&u8>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<&usize> for usize

§

type Output = <usize as Shr>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &usize) -> <usize as Shr>::Output

Performs the >> operation. Read more
","Shr<&usize>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<i128> for usize

§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: i128) -> usize

Performs the >> operation. Read more
","Shr","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<i16> for usize

§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: i16) -> usize

Performs the >> operation. Read more
","Shr","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<i32> for usize

§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: i32) -> usize

Performs the >> operation. Read more
","Shr","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<i64> for usize

§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: i64) -> usize

Performs the >> operation. Read more
","Shr","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<i8> for usize

§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: i8) -> usize

Performs the >> operation. Read more
","Shr","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<isize> for usize

§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: isize) -> usize

Performs the >> operation. Read more
","Shr","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<u128> for usize

§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: u128) -> usize

Performs the >> operation. Read more
","Shr","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<u16> for usize

§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: u16) -> usize

Performs the >> operation. Read more
","Shr","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<u32> for usize

§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: u32) -> usize

Performs the >> operation. Read more
","Shr","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<u64> for usize

§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: u64) -> usize

Performs the >> operation. Read more
","Shr","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<u8> for usize

§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: u8) -> usize

Performs the >> operation. Read more
","Shr","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr for usize

§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: usize) -> usize

Performs the >> operation. Read more
","Shr","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShrAssign<&i128> for usize

source§

fn shr_assign(&mut self, other: &i128)

Performs the >>= operation. Read more
","ShrAssign<&i128>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShrAssign<&i16> for usize

source§

fn shr_assign(&mut self, other: &i16)

Performs the >>= operation. Read more
","ShrAssign<&i16>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShrAssign<&i32> for usize

source§

fn shr_assign(&mut self, other: &i32)

Performs the >>= operation. Read more
","ShrAssign<&i32>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShrAssign<&i64> for usize

source§

fn shr_assign(&mut self, other: &i64)

Performs the >>= operation. Read more
","ShrAssign<&i64>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShrAssign<&i8> for usize

source§

fn shr_assign(&mut self, other: &i8)

Performs the >>= operation. Read more
","ShrAssign<&i8>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShrAssign<&isize> for usize

source§

fn shr_assign(&mut self, other: &isize)

Performs the >>= operation. Read more
","ShrAssign<&isize>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShrAssign<&u128> for usize

source§

fn shr_assign(&mut self, other: &u128)

Performs the >>= operation. Read more
","ShrAssign<&u128>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShrAssign<&u16> for usize

source§

fn shr_assign(&mut self, other: &u16)

Performs the >>= operation. Read more
","ShrAssign<&u16>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShrAssign<&u32> for usize

source§

fn shr_assign(&mut self, other: &u32)

Performs the >>= operation. Read more
","ShrAssign<&u32>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShrAssign<&u64> for usize

source§

fn shr_assign(&mut self, other: &u64)

Performs the >>= operation. Read more
","ShrAssign<&u64>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShrAssign<&u8> for usize

source§

fn shr_assign(&mut self, other: &u8)

Performs the >>= operation. Read more
","ShrAssign<&u8>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShrAssign<&usize> for usize

source§

fn shr_assign(&mut self, other: &usize)

Performs the >>= operation. Read more
","ShrAssign<&usize>","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShrAssign<i128> for usize

source§

fn shr_assign(&mut self, other: i128)

Performs the >>= operation. Read more
","ShrAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShrAssign<i16> for usize

source§

fn shr_assign(&mut self, other: i16)

Performs the >>= operation. Read more
","ShrAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShrAssign<i32> for usize

source§

fn shr_assign(&mut self, other: i32)

Performs the >>= operation. Read more
","ShrAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShrAssign<i64> for usize

source§

fn shr_assign(&mut self, other: i64)

Performs the >>= operation. Read more
","ShrAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShrAssign<i8> for usize

source§

fn shr_assign(&mut self, other: i8)

Performs the >>= operation. Read more
","ShrAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShrAssign<isize> for usize

source§

fn shr_assign(&mut self, other: isize)

Performs the >>= operation. Read more
","ShrAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShrAssign<u128> for usize

source§

fn shr_assign(&mut self, other: u128)

Performs the >>= operation. Read more
","ShrAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShrAssign<u16> for usize

source§

fn shr_assign(&mut self, other: u16)

Performs the >>= operation. Read more
","ShrAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShrAssign<u32> for usize

source§

fn shr_assign(&mut self, other: u32)

Performs the >>= operation. Read more
","ShrAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShrAssign<u64> for usize

source§

fn shr_assign(&mut self, other: u64)

Performs the >>= operation. Read more
","ShrAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShrAssign<u8> for usize

source§

fn shr_assign(&mut self, other: u8)

Performs the >>= operation. Read more
","ShrAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShrAssign for usize

source§

fn shr_assign(&mut self, other: usize)

Performs the >>= operation. Read more
","ShrAssign","gosling::context::HandshakeHandle"],["
source§

impl SimdElement for usize

§

type Mask = isize

🔬This is a nightly-only experimental API. (portable_simd)
The mask element type corresponding to this element type.
","SimdElement","gosling::context::HandshakeHandle"],["
1.15.0 (const: unstable) · source§

impl<T> SliceIndex<[T]> for usize

The methods index and index_mut panic if the index is out of bounds.

\n
§

type Output = T

The output type returned by methods.
source§

fn get(self, slice: &[T]) -> Option<&T>

🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a shared reference to the output at this location, if in\nbounds.
source§

fn get_mut(self, slice: &mut [T]) -> Option<&mut T>

🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a mutable reference to the output at this location, if in\nbounds.
source§

unsafe fn get_unchecked(self, slice: *const [T]) -> *const T

🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a pointer to the output at this location, without\nperforming any bounds checking.\nCalling this method with an out-of-bounds index or a dangling slice pointer\nis undefined behavior even if the resulting pointer is not used.
source§

unsafe fn get_unchecked_mut(self, slice: *mut [T]) -> *mut T

🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a mutable pointer to the output at this location, without\nperforming any bounds checking.\nCalling this method with an out-of-bounds index or a dangling slice pointer\nis undefined behavior even if the resulting pointer is not used.
source§

fn index(self, slice: &[T]) -> &T

🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a shared reference to the output at this location, panicking\nif out of bounds.
source§

fn index_mut(self, slice: &mut [T]) -> &mut T

🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a mutable reference to the output at this location, panicking\nif out of bounds.
","SliceIndex<[T]>","gosling::context::HandshakeHandle"],["
§

impl SmartDisplay for usize

§

type Metadata = ()

User-provided metadata type.
§

fn metadata(&self, f: FormatterOptions) -> Metadata<'_, usize>

Compute any information needed to format the value. This must, at a minimum, determine the\nwidth of the value before any padding is added by the formatter. Read more
§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Format the value using the given formatter. This is the same as Display::fmt. Read more
§

fn fmt_with_metadata(\n &self,\n f: &mut Formatter<'_>,\n _metadata: Metadata<'_, Self>,\n) -> Result<(), Error>

Format the value using the given formatter and metadata. The formatted output should have\nthe width indicated by the metadata. This is before any padding is added by the\nformatter. Read more
","SmartDisplay","gosling::context::HandshakeHandle"],["
source§

impl Step for usize

source§

fn forward(start: usize, n: usize) -> usize

🔬This is a nightly-only experimental API. (step_trait)
Returns the value that would be obtained by taking the successor\nof self count times. Read more
source§

fn backward(start: usize, n: usize) -> usize

🔬This is a nightly-only experimental API. (step_trait)
Returns the value that would be obtained by taking the predecessor\nof self count times. Read more
source§

unsafe fn forward_unchecked(start: usize, n: usize) -> usize

🔬This is a nightly-only experimental API. (step_trait)
Returns the value that would be obtained by taking the successor\nof self count times. Read more
source§

unsafe fn backward_unchecked(start: usize, n: usize) -> usize

🔬This is a nightly-only experimental API. (step_trait)
Returns the value that would be obtained by taking the predecessor\nof self count times. Read more
source§

fn steps_between(start: &usize, end: &usize) -> Option<usize>

🔬This is a nightly-only experimental API. (step_trait)
Returns the number of successor steps required to get from start to end. Read more
source§

fn forward_checked(start: usize, n: usize) -> Option<usize>

🔬This is a nightly-only experimental API. (step_trait)
Returns the value that would be obtained by taking the successor\nof self count times. Read more
source§

fn backward_checked(start: usize, n: usize) -> Option<usize>

🔬This is a nightly-only experimental API. (step_trait)
Returns the value that would be obtained by taking the predecessor\nof self count times. Read more
","Step","gosling::context::HandshakeHandle"],["
source§

impl<'a> Sub<&'a BigInt> for usize

§

type Output = BigInt

The resulting type after applying the - operator.
source§

fn sub(self, other: &BigInt) -> BigInt

Performs the - operation. Read more
","Sub<&'a BigInt>","gosling::context::HandshakeHandle"],["
source§

impl<'a> Sub<&'a BigUint> for usize

§

type Output = BigUint

The resulting type after applying the - operator.
source§

fn sub(self, other: &BigUint) -> BigUint

Performs the - operation. Read more
","Sub<&'a BigUint>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Sub<&usize> for usize

§

type Output = <usize as Sub>::Output

The resulting type after applying the - operator.
source§

fn sub(self, other: &usize) -> <usize as Sub>::Output

Performs the - operation. Read more
","Sub<&usize>","gosling::context::HandshakeHandle"],["
source§

impl Sub<BigInt> for usize

§

type Output = BigInt

The resulting type after applying the - operator.
source§

fn sub(self, other: BigInt) -> BigInt

Performs the - operation. Read more
","Sub","gosling::context::HandshakeHandle"],["
source§

impl Sub<BigUint> for usize

§

type Output = BigUint

The resulting type after applying the - operator.
source§

fn sub(self, other: BigUint) -> BigUint

Performs the - operation. Read more
","Sub","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Sub for usize

§

type Output = usize

The resulting type after applying the - operator.
source§

fn sub(self, other: usize) -> usize

Performs the - operation. Read more
","Sub","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl SubAssign<&usize> for usize

source§

fn sub_assign(&mut self, other: &usize)

Performs the -= operation. Read more
","SubAssign<&usize>","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl SubAssign for usize

source§

fn sub_assign(&mut self, other: usize)

Performs the -= operation. Read more
","SubAssign","gosling::context::HandshakeHandle"],["
1.12.0 · source§

impl<'a> Sum<&'a usize> for usize

source§

fn sum<I>(iter: I) -> usize
where\n I: Iterator<Item = &'a usize>,

Method which takes an iterator and generates Self from the elements by\n“summing up” the items.
","Sum<&'a usize>","gosling::context::HandshakeHandle"],["
1.12.0 · source§

impl Sum for usize

source§

fn sum<I>(iter: I) -> usize
where\n I: Iterator<Item = usize>,

Method which takes an iterator and generates Self from the elements by\n“summing up” the items.
","Sum","gosling::context::HandshakeHandle"],["
source§

impl ToBigInt for usize

source§

fn to_bigint(&self) -> Option<BigInt>

Converts the value of self to a BigInt.
","ToBigInt","gosling::context::HandshakeHandle"],["
source§

impl ToBigUint for usize

source§

fn to_biguint(&self) -> Option<BigUint>

Converts the value of self to a BigUint.
","ToBigUint","gosling::context::HandshakeHandle"],["
source§

impl ToBytes for usize

§

type Bytes = [u8; 8]

source§

fn to_be_bytes(&self) -> <usize as ToBytes>::Bytes

Return the memory representation of this number as a byte array in big-endian byte order. Read more
source§

fn to_le_bytes(&self) -> <usize as ToBytes>::Bytes

Return the memory representation of this number as a byte array in little-endian byte order. Read more
source§

fn to_ne_bytes(&self) -> <usize as ToBytes>::Bytes

Return the memory representation of this number as a byte array in native byte order. Read more
","ToBytes","gosling::context::HandshakeHandle"],["
source§

impl ToPrimitive for usize

source§

fn to_isize(&self) -> Option<isize>

Converts the value of self to an isize. If the value cannot be\nrepresented by an isize, then None is returned.
source§

fn to_i8(&self) -> Option<i8>

Converts the value of self to an i8. If the value cannot be\nrepresented by an i8, then None is returned.
source§

fn to_i16(&self) -> Option<i16>

Converts the value of self to an i16. If the value cannot be\nrepresented by an i16, then None is returned.
source§

fn to_i32(&self) -> Option<i32>

Converts the value of self to an i32. If the value cannot be\nrepresented by an i32, then None is returned.
source§

fn to_i64(&self) -> Option<i64>

Converts the value of self to an i64. If the value cannot be\nrepresented by an i64, then None is returned.
source§

fn to_i128(&self) -> Option<i128>

Converts the value of self to an i128. If the value cannot be\nrepresented by an i128 (i64 under the default implementation), then\nNone is returned. Read more
source§

fn to_usize(&self) -> Option<usize>

Converts the value of self to a usize. If the value cannot be\nrepresented by a usize, then None is returned.
source§

fn to_u8(&self) -> Option<u8>

Converts the value of self to a u8. If the value cannot be\nrepresented by a u8, then None is returned.
source§

fn to_u16(&self) -> Option<u16>

Converts the value of self to a u16. If the value cannot be\nrepresented by a u16, then None is returned.
source§

fn to_u32(&self) -> Option<u32>

Converts the value of self to a u32. If the value cannot be\nrepresented by a u32, then None is returned.
source§

fn to_u64(&self) -> Option<u64>

Converts the value of self to a u64. If the value cannot be\nrepresented by a u64, then None is returned.
source§

fn to_u128(&self) -> Option<u128>

Converts the value of self to a u128. If the value cannot be\nrepresented by a u128 (u64 under the default implementation), then\nNone is returned. Read more
source§

fn to_f32(&self) -> Option<f32>

Converts the value of self to an f32. Overflows may map to positive\nor negative inifinity, otherwise None is returned if the value cannot\nbe represented by an f32.
source§

fn to_f64(&self) -> Option<f64>

Converts the value of self to an f64. Overflows may map to positive\nor negative inifinity, otherwise None is returned if the value cannot\nbe represented by an f64. Read more
","ToPrimitive","gosling::context::HandshakeHandle"],["
§

impl ToSql for usize

§

fn to_sql(&self) -> Result<ToSqlOutput<'_>, Error>

Converts Rust value to SQLite value
","ToSql","gosling::context::HandshakeHandle"],["
§

impl ToUsize for usize

§

fn to_usize(&self) -> usize

converts self to usize
","ToUsize","gosling::context::HandshakeHandle"],["
§

impl ToUsize for usize

§

fn to_usize(&self) -> usize

converts self to usize
","ToUsize","gosling::context::HandshakeHandle"],["
§

impl<const L: i32, const H: i32> TryFrom<BoundedInt32<L, H>> for usize

§

type Error = Error

The type returned in the event of a conversion error.
§

fn try_from(\n val: BoundedInt32<L, H>,\n) -> Result<usize, <usize as TryFrom<BoundedInt32<L, H>>>::Error>

Performs the conversion.
","TryFrom>","gosling::context::HandshakeHandle"],["
§

impl TryFrom<Length> for usize

§

type Error = Error

The type returned in the event of a conversion error.
§

fn try_from(len: Length) -> Result<usize, Error>

Performs the conversion.
","TryFrom","gosling::context::HandshakeHandle"],["
1.34.0 · source§

impl TryFrom<i128> for usize

source§

fn try_from(u: i128) -> Result<usize, <usize as TryFrom<i128>>::Error>

Try to create the target number type from a source\nnumber type. This returns an error if the source value\nis outside of the range of the target type.

\n
§

type Error = TryFromIntError

The type returned in the event of a conversion error.
","TryFrom","gosling::context::HandshakeHandle"],["
1.34.0 · source§

impl TryFrom<i16> for usize

source§

fn try_from(u: i16) -> Result<usize, <usize as TryFrom<i16>>::Error>

Try to create the target number type from a source\nnumber type. This returns an error if the source value\nis outside of the range of the target type.

\n
§

type Error = TryFromIntError

The type returned in the event of a conversion error.
","TryFrom","gosling::context::HandshakeHandle"],["
1.34.0 · source§

impl TryFrom<i32> for usize

source§

fn try_from(u: i32) -> Result<usize, <usize as TryFrom<i32>>::Error>

Try to create the target number type from a source\nnumber type. This returns an error if the source value\nis outside of the range of the target type.

\n
§

type Error = TryFromIntError

The type returned in the event of a conversion error.
","TryFrom","gosling::context::HandshakeHandle"],["
1.34.0 · source§

impl TryFrom<i64> for usize

source§

fn try_from(u: i64) -> Result<usize, <usize as TryFrom<i64>>::Error>

Try to create the target number type from a source\nnumber type. This returns an error if the source value\nis outside of the range of the target type.

\n
§

type Error = TryFromIntError

The type returned in the event of a conversion error.
","TryFrom","gosling::context::HandshakeHandle"],["
1.34.0 · source§

impl TryFrom<i8> for usize

source§

fn try_from(u: i8) -> Result<usize, <usize as TryFrom<i8>>::Error>

Try to create the target number type from a source\nnumber type. This returns an error if the source value\nis outside of the range of the target type.

\n
§

type Error = TryFromIntError

The type returned in the event of a conversion error.
","TryFrom","gosling::context::HandshakeHandle"],["
1.34.0 · source§

impl TryFrom<isize> for usize

source§

fn try_from(u: isize) -> Result<usize, <usize as TryFrom<isize>>::Error>

Try to create the target number type from a source\nnumber type. This returns an error if the source value\nis outside of the range of the target type.

\n
§

type Error = TryFromIntError

The type returned in the event of a conversion error.
","TryFrom","gosling::context::HandshakeHandle"],["
1.34.0 · source§

impl TryFrom<u128> for usize

source§

fn try_from(u: u128) -> Result<usize, <usize as TryFrom<u128>>::Error>

Try to create the target number type from a source\nnumber type. This returns an error if the source value\nis outside of the range of the target type.

\n
§

type Error = TryFromIntError

The type returned in the event of a conversion error.
","TryFrom","gosling::context::HandshakeHandle"],["
1.34.0 · source§

impl TryFrom<u32> for usize

source§

fn try_from(value: u32) -> Result<usize, <usize as TryFrom<u32>>::Error>

Try to create the target number type from a source\nnumber type. This returns an error if the source value\nis outside of the range of the target type.

\n
§

type Error = TryFromIntError

The type returned in the event of a conversion error.
","TryFrom","gosling::context::HandshakeHandle"],["
1.34.0 · source§

impl TryFrom<u64> for usize

source§

fn try_from(value: u64) -> Result<usize, <usize as TryFrom<u64>>::Error>

Try to create the target number type from a source\nnumber type. This returns an error if the source value\nis outside of the range of the target type.

\n
§

type Error = TryFromIntError

The type returned in the event of a conversion error.
","TryFrom","gosling::context::HandshakeHandle"],["
§

impl Unsigned for usize

§

fn is_power_of_two(self) -> bool

Returns true if and only if self == 2^k for some k.
§

fn next_power_of_two(self) -> usize

Returns the smallest power of two greater than or equal to self. Read more
§

fn checked_next_power_of_two(self) -> Option<usize>

Returns the smallest power of two greater than or equal to n. If the\nnext power of two is greater than the type’s maximum value, None is\nreturned, otherwise the power of two is wrapped in Some.
","Unsigned","gosling::context::HandshakeHandle"],["
1.42.0 · source§

impl UpperExp for usize

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","UpperExp","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl UpperHex for usize

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","UpperHex","gosling::context::HandshakeHandle"],["
§

impl Value for usize

§

fn record(&self, key: &Field, visitor: &mut dyn Visit)

Visits this value with the given Visitor.
","Value","gosling::context::HandshakeHandle"],["
source§

impl WrappingAdd for usize

source§

fn wrapping_add(&self, v: &usize) -> usize

Wrapping (modular) addition. Computes self + other, wrapping around at the boundary of\nthe type.
","WrappingAdd","gosling::context::HandshakeHandle"],["
source§

impl WrappingMul for usize

source§

fn wrapping_mul(&self, v: &usize) -> usize

Wrapping (modular) multiplication. Computes self * other, wrapping around at the boundary\nof the type.
","WrappingMul","gosling::context::HandshakeHandle"],["
source§

impl WrappingNeg for usize

source§

fn wrapping_neg(&self) -> usize

Wrapping (modular) negation. Computes -self,\nwrapping around at the boundary of the type. Read more
","WrappingNeg","gosling::context::HandshakeHandle"],["
source§

impl WrappingShl for usize

source§

fn wrapping_shl(&self, rhs: u32) -> usize

Panic-free bitwise shift-left; yields self << mask(rhs),\nwhere mask removes any high order bits of rhs that would\ncause the shift to exceed the bitwidth of the type. Read more
","WrappingShl","gosling::context::HandshakeHandle"],["
source§

impl WrappingShr for usize

source§

fn wrapping_shr(&self, rhs: u32) -> usize

Panic-free bitwise shift-right; yields self >> mask(rhs),\nwhere mask removes any high order bits of rhs that would\ncause the shift to exceed the bitwidth of the type. Read more
","WrappingShr","gosling::context::HandshakeHandle"],["
source§

impl WrappingSub for usize

source§

fn wrapping_sub(&self, v: &usize) -> usize

Wrapping (modular) subtraction. Computes self - other, wrapping around at the boundary\nof the type.
","WrappingSub","gosling::context::HandshakeHandle"],["
§

impl WriteHex for usize

§

fn write_hex<W>(&self, writer: W) -> Result<(), Error>
where\n W: Write,

Write the value as hex.
","WriteHex","gosling::context::HandshakeHandle"],["
§

impl Writeable for usize

§

fn write_to<W>(&self, sink: &mut W) -> Result<(), Error>
where\n W: Write + ?Sized,

Writes a string to the given sink. Errors from the sink are bubbled up.\nThe default implementation delegates to write_to_parts, and discards any\nPart annotations.
§

fn writeable_length_hint(&self) -> LengthHint

Returns a hint for the number of UTF-8 bytes that will be written to the sink. Read more
§

fn write_to_parts<S>(&self, sink: &mut S) -> Result<(), Error>
where\n S: PartsWrite + ?Sized,

Write bytes and Part annotations to the given sink. Errors from the\nsink are bubbled up. The default implementation delegates to write_to,\nand doesn’t produce any Part annotations.
§

fn write_to_string(&self) -> Cow<'_, str>

Creates a new String with the data from this Writeable. Like ToString,\nbut smaller and faster. Read more
§

fn writeable_cmp_bytes(&self, other: &[u8]) -> Ordering

Compares the contents of this Writeable to the given bytes\nwithout allocating a String to hold the Writeable contents. Read more
","Writeable","gosling::context::HandshakeHandle"],["
§

impl<'a> Yokeable<'a> for usize

§

type Output = usize

This type MUST be Self with the 'static replaced with 'a, i.e. Self<'a>
§

fn transform(&self) -> &<usize as Yokeable<'a>>::Output

This method must cast self between &'a Self<'static> and &'a Self<'a>. Read more
§

fn transform_owned(self) -> <usize as Yokeable<'a>>::Output

This method must cast self between Self<'static> and Self<'a>. Read more
§

unsafe fn make(this: <usize as Yokeable<'a>>::Output) -> usize

This method can be used to cast away Self<'a>’s lifetime. Read more
§

fn transform_mut<F>(&'a mut self, f: F)
where\n F: 'static + for<'b> FnOnce(&'b mut <usize as Yokeable<'a>>::Output),

This method must cast self between &'a mut Self<'static> and &'a mut Self<'a>,\nand pass it to f. Read more
","Yokeable<'a>","gosling::context::HandshakeHandle"],["
source§

impl Zero for usize

source§

fn zero() -> usize

Returns the additive identity element of Self, 0. Read more
source§

fn is_zero(&self) -> bool

Returns true if self is equal to the additive identity.
source§

fn set_zero(&mut self)

Sets self to the additive identity element of Self, 0.
","Zero","gosling::context::HandshakeHandle"],["
§

impl<'a> ZeroFrom<'a, usize> for usize

§

fn zero_from(this: &'a usize) -> usize

Clone the other C into a struct that may retain references into C.
","ZeroFrom<'a, usize>","gosling::context::HandshakeHandle"],["
§

impl<'a> ZeroMapKV<'a> for usize

§

type Container = FlexZeroVec<'a>

The container that can be used with this type: [ZeroVec] or [VarZeroVec].
§

type Slice = FlexZeroSlice

§

type GetType = [u8]

The type produced by Container::get() Read more
§

type OwnedType = usize

The type produced by Container::replace() and Container::remove(),\nalso used during deserialization. If Self is human readable serialized,\ndeserializing to Self::OwnedType should produce the same value once\npassed through Self::owned_as_self() Read more
","ZeroMapKV<'a>","gosling::context::HandshakeHandle"],["
source§

impl usize

1.43.0 · source

pub const MIN: usize = 0usize

The smallest value that can be represented by this integer type.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(usize::MIN, 0);
\n
1.43.0 · source

pub const MAX: usize = 18_446_744_073_709_551_615usize

The largest value that can be represented by this integer type\n(264 − 1 on 64-bit targets).

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(usize::MAX, 18446744073709551615);
\n
1.53.0 · source

pub const BITS: u32 = 64u32

The size of this integer type in bits.

\n
§Examples
\n
assert_eq!(usize::BITS, 64);
\n
1.0.0 (const: 1.32.0) · source

pub const fn count_ones(self) -> u32

Returns the number of ones in the binary representation of self.

\n
§Examples
\n

Basic usage:

\n\n
let n = 0b01001100usize;\n\nassert_eq!(n.count_ones(), 3);
\n
1.0.0 (const: 1.32.0) · source

pub const fn count_zeros(self) -> u32

Returns the number of zeros in the binary representation of self.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(usize::MAX.count_zeros(), 0);
\n
1.0.0 (const: 1.32.0) · source

pub const fn leading_zeros(self) -> u32

Returns the number of leading zeros in the binary representation of self.

\n

Depending on what you’re doing with the value, you might also be interested in the\nilog2 function which returns a consistent number, even if the type widens.

\n
§Examples
\n

Basic usage:

\n\n
let n = usize::MAX >> 2;\n\nassert_eq!(n.leading_zeros(), 2);
\n
1.0.0 (const: 1.32.0) · source

pub const fn trailing_zeros(self) -> u32

Returns the number of trailing zeros in the binary representation\nof self.

\n
§Examples
\n

Basic usage:

\n\n
let n = 0b0101000usize;\n\nassert_eq!(n.trailing_zeros(), 3);
\n
1.46.0 (const: 1.46.0) · source

pub const fn leading_ones(self) -> u32

Returns the number of leading ones in the binary representation of self.

\n
§Examples
\n

Basic usage:

\n\n
let n = !(usize::MAX >> 2);\n\nassert_eq!(n.leading_ones(), 2);
\n
1.46.0 (const: 1.46.0) · source

pub const fn trailing_ones(self) -> u32

Returns the number of trailing ones in the binary representation\nof self.

\n
§Examples
\n

Basic usage:

\n\n
let n = 0b1010111usize;\n\nassert_eq!(n.trailing_ones(), 3);
\n
source

pub const fn cast_signed(self) -> isize

🔬This is a nightly-only experimental API. (integer_sign_cast)

Returns the bit pattern of self reinterpreted as a signed integer of the same size.

\n

This produces the same result as an as cast, but ensures that the bit-width remains\nthe same.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(integer_sign_cast)]\n\nlet n = usize::MAX;\n\nassert_eq!(n.cast_signed(), -1isize);
\n
1.0.0 (const: 1.32.0) · source

pub const fn rotate_left(self, n: u32) -> usize

Shifts the bits to the left by a specified amount, n,\nwrapping the truncated bits to the end of the resulting integer.

\n

Please note this isn’t the same operation as the << shifting operator!

\n
§Examples
\n

Basic usage:

\n\n
let n = 0xaa00000000006e1usize;\nlet m = 0x6e10aa;\n\nassert_eq!(n.rotate_left(12), m);
\n
1.0.0 (const: 1.32.0) · source

pub const fn rotate_right(self, n: u32) -> usize

Shifts the bits to the right by a specified amount, n,\nwrapping the truncated bits to the beginning of the resulting\ninteger.

\n

Please note this isn’t the same operation as the >> shifting operator!

\n
§Examples
\n

Basic usage:

\n\n
let n = 0x6e10aausize;\nlet m = 0xaa00000000006e1;\n\nassert_eq!(n.rotate_right(12), m);
\n
1.0.0 (const: 1.32.0) · source

pub const fn swap_bytes(self) -> usize

Reverses the byte order of the integer.

\n
§Examples
\n

Basic usage:

\n\n
let n = 0x1234567890123456usize;\nlet m = n.swap_bytes();\n\nassert_eq!(m, 0x5634129078563412);
\n
1.37.0 (const: 1.37.0) · source

pub const fn reverse_bits(self) -> usize

Reverses the order of bits in the integer. The least significant bit becomes the most significant bit,\nsecond least-significant bit becomes second most-significant bit, etc.

\n
§Examples
\n

Basic usage:

\n\n
let n = 0x1234567890123456usize;\nlet m = n.reverse_bits();\n\nassert_eq!(m, 0x6a2c48091e6a2c48);\nassert_eq!(0, 0usize.reverse_bits());
\n
1.0.0 (const: 1.32.0) · source

pub const fn from_be(x: usize) -> usize

Converts an integer from big endian to the target’s endianness.

\n

On big endian this is a no-op. On little endian the bytes are\nswapped.

\n
§Examples
\n

Basic usage:

\n\n
let n = 0x1Ausize;\n\nif cfg!(target_endian = \"big\") {\n    assert_eq!(usize::from_be(n), n)\n} else {\n    assert_eq!(usize::from_be(n), n.swap_bytes())\n}
\n
1.0.0 (const: 1.32.0) · source

pub const fn from_le(x: usize) -> usize

Converts an integer from little endian to the target’s endianness.

\n

On little endian this is a no-op. On big endian the bytes are\nswapped.

\n
§Examples
\n

Basic usage:

\n\n
let n = 0x1Ausize;\n\nif cfg!(target_endian = \"little\") {\n    assert_eq!(usize::from_le(n), n)\n} else {\n    assert_eq!(usize::from_le(n), n.swap_bytes())\n}
\n
1.0.0 (const: 1.32.0) · source

pub const fn to_be(self) -> usize

Converts self to big endian from the target’s endianness.

\n

On big endian this is a no-op. On little endian the bytes are\nswapped.

\n
§Examples
\n

Basic usage:

\n\n
let n = 0x1Ausize;\n\nif cfg!(target_endian = \"big\") {\n    assert_eq!(n.to_be(), n)\n} else {\n    assert_eq!(n.to_be(), n.swap_bytes())\n}
\n
1.0.0 (const: 1.32.0) · source

pub const fn to_le(self) -> usize

Converts self to little endian from the target’s endianness.

\n

On little endian this is a no-op. On big endian the bytes are\nswapped.

\n
§Examples
\n

Basic usage:

\n\n
let n = 0x1Ausize;\n\nif cfg!(target_endian = \"little\") {\n    assert_eq!(n.to_le(), n)\n} else {\n    assert_eq!(n.to_le(), n.swap_bytes())\n}
\n
1.0.0 (const: 1.47.0) · source

pub const fn checked_add(self, rhs: usize) -> Option<usize>

Checked integer addition. Computes self + rhs, returning None\nif overflow occurred.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!((usize::MAX - 2).checked_add(1), Some(usize::MAX - 1));\nassert_eq!((usize::MAX - 2).checked_add(3), None);
\n
source

pub const fn strict_add(self, rhs: usize) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict integer addition. Computes self + rhs, panicking\nif overflow occurred.

\n
§Panics
§Overflow behavior
\n

This function will always panic on overflow, regardless of whether overflow checks are enabled.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!((usize::MAX - 2).strict_add(1), usize::MAX - 1);
\n

The following panics because of overflow:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = (usize::MAX - 2).strict_add(3);
\n
1.79.0 (const: 1.79.0) · source

pub const unsafe fn unchecked_add(self, rhs: usize) -> usize

Unchecked integer addition. Computes self + rhs, assuming overflow\ncannot occur.

\n

Calling x.unchecked_add(y) is semantically equivalent to calling\nx.checked_add(y).unwrap_unchecked().

\n

If you’re just trying to avoid the panic in debug mode, then do not\nuse this. Instead, you’re looking for wrapping_add.

\n
§Safety
\n

This results in undefined behavior when\nself + rhs > usize::MAX or self + rhs < usize::MIN,\ni.e. when checked_add would return None.

\n
1.66.0 (const: 1.66.0) · source

pub const fn checked_add_signed(self, rhs: isize) -> Option<usize>

Checked addition with a signed integer. Computes self + rhs,\nreturning None if overflow occurred.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(1usize.checked_add_signed(2), Some(3));\nassert_eq!(1usize.checked_add_signed(-2), None);\nassert_eq!((usize::MAX - 2).checked_add_signed(3), None);
\n
source

pub const fn strict_add_signed(self, rhs: isize) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict addition with a signed integer. Computes self + rhs,\npanicking if overflow occurred.

\n
§Panics
§Overflow behavior
\n

This function will always panic on overflow, regardless of whether overflow checks are enabled.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(1usize.strict_add_signed(2), 3);
\n

The following panic because of overflow:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = 1usize.strict_add_signed(-2);
\n\n
#![feature(strict_overflow_ops)]\nlet _ = (usize::MAX - 2).strict_add_signed(3);
\n
1.0.0 (const: 1.47.0) · source

pub const fn checked_sub(self, rhs: usize) -> Option<usize>

Checked integer subtraction. Computes self - rhs, returning\nNone if overflow occurred.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(1usize.checked_sub(1), Some(0));\nassert_eq!(0usize.checked_sub(1), None);
\n
source

pub const fn strict_sub(self, rhs: usize) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict integer subtraction. Computes self - rhs, panicking if\noverflow occurred.

\n
§Panics
§Overflow behavior
\n

This function will always panic on overflow, regardless of whether overflow checks are enabled.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(1usize.strict_sub(1), 0);
\n

The following panics because of overflow:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = 0usize.strict_sub(1);
\n
1.79.0 (const: 1.79.0) · source

pub const unsafe fn unchecked_sub(self, rhs: usize) -> usize

Unchecked integer subtraction. Computes self - rhs, assuming overflow\ncannot occur.

\n

Calling x.unchecked_sub(y) is semantically equivalent to calling\nx.checked_sub(y).unwrap_unchecked().

\n

If you’re just trying to avoid the panic in debug mode, then do not\nuse this. Instead, you’re looking for wrapping_sub.

\n

If you find yourself writing code like this:

\n\n
if foo >= bar {\n    // SAFETY: just checked it will not overflow\n    let diff = unsafe { foo.unchecked_sub(bar) };\n    // ... use diff ...\n}
\n

Consider changing it to

\n\n
if let Some(diff) = foo.checked_sub(bar) {\n    // ... use diff ...\n}
\n

As that does exactly the same thing – including telling the optimizer\nthat the subtraction cannot overflow – but avoids needing unsafe.

\n
§Safety
\n

This results in undefined behavior when\nself - rhs > usize::MAX or self - rhs < usize::MIN,\ni.e. when checked_sub would return None.

\n
1.0.0 (const: 1.47.0) · source

pub const fn checked_mul(self, rhs: usize) -> Option<usize>

Checked integer multiplication. Computes self * rhs, returning\nNone if overflow occurred.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(5usize.checked_mul(1), Some(5));\nassert_eq!(usize::MAX.checked_mul(2), None);
\n
source

pub const fn strict_mul(self, rhs: usize) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict integer multiplication. Computes self * rhs, panicking if\noverflow occurred.

\n
§Panics
§Overflow behavior
\n

This function will always panic on overflow, regardless of whether overflow checks are enabled.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(5usize.strict_mul(1), 5);
\n

The following panics because of overflow:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = usize::MAX.strict_mul(2);
\n
1.79.0 (const: 1.79.0) · source

pub const unsafe fn unchecked_mul(self, rhs: usize) -> usize

Unchecked integer multiplication. Computes self * rhs, assuming overflow\ncannot occur.

\n

Calling x.unchecked_mul(y) is semantically equivalent to calling\nx.checked_mul(y).unwrap_unchecked().

\n

If you’re just trying to avoid the panic in debug mode, then do not\nuse this. Instead, you’re looking for wrapping_mul.

\n
§Safety
\n

This results in undefined behavior when\nself * rhs > usize::MAX or self * rhs < usize::MIN,\ni.e. when checked_mul would return None.

\n
1.0.0 (const: 1.52.0) · source

pub const fn checked_div(self, rhs: usize) -> Option<usize>

Checked integer division. Computes self / rhs, returning None\nif rhs == 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(128usize.checked_div(2), Some(64));\nassert_eq!(1usize.checked_div(0), None);
\n
source

pub const fn strict_div(self, rhs: usize) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict integer division. Computes self / rhs.\nStrict division on unsigned types is just normal division.\nThere’s no way overflow could ever happen.\nThis function exists, so that all operations\nare accounted for in the strict operations.

\n
§Panics
\n

This function will panic if rhs is zero.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(100usize.strict_div(10), 10);
\n

The following panics because of division by zero:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = (1usize).strict_div(0);
\n
1.38.0 (const: 1.52.0) · source

pub const fn checked_div_euclid(self, rhs: usize) -> Option<usize>

Checked Euclidean division. Computes self.div_euclid(rhs), returning None\nif rhs == 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(128usize.checked_div_euclid(2), Some(64));\nassert_eq!(1usize.checked_div_euclid(0), None);
\n
source

pub const fn strict_div_euclid(self, rhs: usize) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict Euclidean division. Computes self.div_euclid(rhs).\nStrict division on unsigned types is just normal division.\nThere’s no way overflow could ever happen.\nThis function exists, so that all operations\nare accounted for in the strict operations.\nSince, for the positive integers, all common\ndefinitions of division are equal, this\nis exactly equal to self.strict_div(rhs).

\n
§Panics
\n

This function will panic if rhs is zero.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(100usize.strict_div_euclid(10), 10);
\n

The following panics because of division by zero:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = (1usize).strict_div_euclid(0);
\n
1.7.0 (const: 1.52.0) · source

pub const fn checked_rem(self, rhs: usize) -> Option<usize>

Checked integer remainder. Computes self % rhs, returning None\nif rhs == 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(5usize.checked_rem(2), Some(1));\nassert_eq!(5usize.checked_rem(0), None);
\n
source

pub const fn strict_rem(self, rhs: usize) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict integer remainder. Computes self % rhs.\nStrict remainder calculation on unsigned types is\njust the regular remainder calculation.\nThere’s no way overflow could ever happen.\nThis function exists, so that all operations\nare accounted for in the strict operations.

\n
§Panics
\n

This function will panic if rhs is zero.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(100usize.strict_rem(10), 0);
\n

The following panics because of division by zero:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = 5usize.strict_rem(0);
\n
1.38.0 (const: 1.52.0) · source

pub const fn checked_rem_euclid(self, rhs: usize) -> Option<usize>

Checked Euclidean modulo. Computes self.rem_euclid(rhs), returning None\nif rhs == 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(5usize.checked_rem_euclid(2), Some(1));\nassert_eq!(5usize.checked_rem_euclid(0), None);
\n
source

pub const fn strict_rem_euclid(self, rhs: usize) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict Euclidean modulo. Computes self.rem_euclid(rhs).\nStrict modulo calculation on unsigned types is\njust the regular remainder calculation.\nThere’s no way overflow could ever happen.\nThis function exists, so that all operations\nare accounted for in the strict operations.\nSince, for the positive integers, all common\ndefinitions of division are equal, this\nis exactly equal to self.strict_rem(rhs).

\n
§Panics
\n

This function will panic if rhs is zero.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(100usize.strict_rem_euclid(10), 0);
\n

The following panics because of division by zero:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = 5usize.strict_rem_euclid(0);
\n
1.67.0 (const: 1.67.0) · source

pub const fn ilog(self, base: usize) -> u32

Returns the logarithm of the number with respect to an arbitrary base,\nrounded down.

\n

This method might not be optimized owing to implementation details;\nilog2 can produce results more efficiently for base 2, and ilog10\ncan produce results more efficiently for base 10.

\n
§Panics
\n

This function will panic if self is zero, or if base is less than 2.

\n
§Examples
\n
assert_eq!(5usize.ilog(5), 1);
\n
1.67.0 (const: 1.67.0) · source

pub const fn ilog2(self) -> u32

Returns the base 2 logarithm of the number, rounded down.

\n
§Panics
\n

This function will panic if self is zero.

\n
§Examples
\n
assert_eq!(2usize.ilog2(), 1);
\n
1.67.0 (const: 1.67.0) · source

pub const fn ilog10(self) -> u32

Returns the base 10 logarithm of the number, rounded down.

\n
§Panics
\n

This function will panic if self is zero.

\n
§Example
\n
assert_eq!(10usize.ilog10(), 1);
\n
1.67.0 (const: 1.67.0) · source

pub const fn checked_ilog(self, base: usize) -> Option<u32>

Returns the logarithm of the number with respect to an arbitrary base,\nrounded down.

\n

Returns None if the number is zero, or if the base is not at least 2.

\n

This method might not be optimized owing to implementation details;\nchecked_ilog2 can produce results more efficiently for base 2, and\nchecked_ilog10 can produce results more efficiently for base 10.

\n
§Examples
\n
assert_eq!(5usize.checked_ilog(5), Some(1));
\n
1.67.0 (const: 1.67.0) · source

pub const fn checked_ilog2(self) -> Option<u32>

Returns the base 2 logarithm of the number, rounded down.

\n

Returns None if the number is zero.

\n
§Examples
\n
assert_eq!(2usize.checked_ilog2(), Some(1));
\n
1.67.0 (const: 1.67.0) · source

pub const fn checked_ilog10(self) -> Option<u32>

Returns the base 10 logarithm of the number, rounded down.

\n

Returns None if the number is zero.

\n
§Examples
\n
assert_eq!(10usize.checked_ilog10(), Some(1));
\n
1.7.0 (const: 1.47.0) · source

pub const fn checked_neg(self) -> Option<usize>

Checked negation. Computes -self, returning None unless self == 0.

\n

Note that negating any positive integer will overflow.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(0usize.checked_neg(), Some(0));\nassert_eq!(1usize.checked_neg(), None);
\n
source

pub const fn strict_neg(self) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict negation. Computes -self, panicking unless self == 0.

\n

Note that negating any positive integer will overflow.

\n
§Panics
§Overflow behavior
\n

This function will always panic on overflow, regardless of whether overflow checks are enabled.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(0usize.strict_neg(), 0);
\n

The following panics because of overflow:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = 1usize.strict_neg();
\n
1.7.0 (const: 1.47.0) · source

pub const fn checked_shl(self, rhs: u32) -> Option<usize>

Checked shift left. Computes self << rhs, returning None\nif rhs is larger than or equal to the number of bits in self.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(0x1usize.checked_shl(4), Some(0x10));\nassert_eq!(0x10usize.checked_shl(129), None);
\n
source

pub const fn strict_shl(self, rhs: u32) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict shift left. Computes self << rhs, panicking if rhs is larger\nthan or equal to the number of bits in self.

\n
§Panics
§Overflow behavior
\n

This function will always panic on overflow, regardless of whether overflow checks are enabled.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(0x1usize.strict_shl(4), 0x10);
\n

The following panics because of overflow:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = 0x10usize.strict_shl(129);
\n
source

pub const unsafe fn unchecked_shl(self, rhs: u32) -> usize

🔬This is a nightly-only experimental API. (unchecked_shifts)

Unchecked shift left. Computes self << rhs, assuming that\nrhs is less than the number of bits in self.

\n
§Safety
\n

This results in undefined behavior if rhs is larger than\nor equal to the number of bits in self,\ni.e. when checked_shl would return None.

\n
1.7.0 (const: 1.47.0) · source

pub const fn checked_shr(self, rhs: u32) -> Option<usize>

Checked shift right. Computes self >> rhs, returning None\nif rhs is larger than or equal to the number of bits in self.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(0x10usize.checked_shr(4), Some(0x1));\nassert_eq!(0x10usize.checked_shr(129), None);
\n
source

pub const fn strict_shr(self, rhs: u32) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict shift right. Computes self >> rhs, panicking rhs is\nlarger than or equal to the number of bits in self.

\n
§Panics
§Overflow behavior
\n

This function will always panic on overflow, regardless of whether overflow checks are enabled.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(0x10usize.strict_shr(4), 0x1);
\n

The following panics because of overflow:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = 0x10usize.strict_shr(129);
\n
source

pub const unsafe fn unchecked_shr(self, rhs: u32) -> usize

🔬This is a nightly-only experimental API. (unchecked_shifts)

Unchecked shift right. Computes self >> rhs, assuming that\nrhs is less than the number of bits in self.

\n
§Safety
\n

This results in undefined behavior if rhs is larger than\nor equal to the number of bits in self,\ni.e. when checked_shr would return None.

\n
1.34.0 (const: 1.50.0) · source

pub const fn checked_pow(self, exp: u32) -> Option<usize>

Checked exponentiation. Computes self.pow(exp), returning None if\noverflow occurred.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(2usize.checked_pow(5), Some(32));\nassert_eq!(usize::MAX.checked_pow(2), None);
\n
source

pub const fn strict_pow(self, exp: u32) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict exponentiation. Computes self.pow(exp), panicking if\noverflow occurred.

\n
§Panics
§Overflow behavior
\n

This function will always panic on overflow, regardless of whether overflow checks are enabled.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(2usize.strict_pow(5), 32);
\n

The following panics because of overflow:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = usize::MAX.strict_pow(2);
\n
1.0.0 (const: 1.47.0) · source

pub const fn saturating_add(self, rhs: usize) -> usize

Saturating integer addition. Computes self + rhs, saturating at\nthe numeric bounds instead of overflowing.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(100usize.saturating_add(1), 101);\nassert_eq!(usize::MAX.saturating_add(127), usize::MAX);
\n
1.66.0 (const: 1.66.0) · source

pub const fn saturating_add_signed(self, rhs: isize) -> usize

Saturating addition with a signed integer. Computes self + rhs,\nsaturating at the numeric bounds instead of overflowing.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(1usize.saturating_add_signed(2), 3);\nassert_eq!(1usize.saturating_add_signed(-2), 0);\nassert_eq!((usize::MAX - 2).saturating_add_signed(4), usize::MAX);
\n
1.0.0 (const: 1.47.0) · source

pub const fn saturating_sub(self, rhs: usize) -> usize

Saturating integer subtraction. Computes self - rhs, saturating\nat the numeric bounds instead of overflowing.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(100usize.saturating_sub(27), 73);\nassert_eq!(13usize.saturating_sub(127), 0);
\n
1.7.0 (const: 1.47.0) · source

pub const fn saturating_mul(self, rhs: usize) -> usize

Saturating integer multiplication. Computes self * rhs,\nsaturating at the numeric bounds instead of overflowing.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(2usize.saturating_mul(10), 20);\nassert_eq!((usize::MAX).saturating_mul(10), usize::MAX);
\n
1.58.0 (const: 1.58.0) · source

pub const fn saturating_div(self, rhs: usize) -> usize

Saturating integer division. Computes self / rhs, saturating at the\nnumeric bounds instead of overflowing.

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(5usize.saturating_div(2), 2);\n
\n
1.34.0 (const: 1.50.0) · source

pub const fn saturating_pow(self, exp: u32) -> usize

Saturating integer exponentiation. Computes self.pow(exp),\nsaturating at the numeric bounds instead of overflowing.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(4usize.saturating_pow(3), 64);\nassert_eq!(usize::MAX.saturating_pow(2), usize::MAX);
\n
1.0.0 (const: 1.32.0) · source

pub const fn wrapping_add(self, rhs: usize) -> usize

Wrapping (modular) addition. Computes self + rhs,\nwrapping around at the boundary of the type.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(200usize.wrapping_add(55), 255);\nassert_eq!(200usize.wrapping_add(usize::MAX), 199);
\n
1.66.0 (const: 1.66.0) · source

pub const fn wrapping_add_signed(self, rhs: isize) -> usize

Wrapping (modular) addition with a signed integer. Computes\nself + rhs, wrapping around at the boundary of the type.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(1usize.wrapping_add_signed(2), 3);\nassert_eq!(1usize.wrapping_add_signed(-2), usize::MAX);\nassert_eq!((usize::MAX - 2).wrapping_add_signed(4), 1);
\n
1.0.0 (const: 1.32.0) · source

pub const fn wrapping_sub(self, rhs: usize) -> usize

Wrapping (modular) subtraction. Computes self - rhs,\nwrapping around at the boundary of the type.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(100usize.wrapping_sub(100), 0);\nassert_eq!(100usize.wrapping_sub(usize::MAX), 101);
\n
1.0.0 (const: 1.32.0) · source

pub const fn wrapping_mul(self, rhs: usize) -> usize

Wrapping (modular) multiplication. Computes self * rhs, wrapping around at the boundary of the type.

\n
§Examples
\n

Basic usage:

\n

Please note that this example is shared between integer types.\nWhich explains why u8 is used here.

\n\n
assert_eq!(10u8.wrapping_mul(12), 120);\nassert_eq!(25u8.wrapping_mul(12), 44);
\n
1.2.0 (const: 1.52.0) · source

pub const fn wrapping_div(self, rhs: usize) -> usize

Wrapping (modular) division. Computes self / rhs.\nWrapped division on unsigned types is just normal division.\nThere’s no way wrapping could ever happen.\nThis function exists, so that all operations\nare accounted for in the wrapping operations.

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(100usize.wrapping_div(10), 10);
\n
1.38.0 (const: 1.52.0) · source

pub const fn wrapping_div_euclid(self, rhs: usize) -> usize

Wrapping Euclidean division. Computes self.div_euclid(rhs).\nWrapped division on unsigned types is just normal division.\nThere’s no way wrapping could ever happen.\nThis function exists, so that all operations\nare accounted for in the wrapping operations.\nSince, for the positive integers, all common\ndefinitions of division are equal, this\nis exactly equal to self.wrapping_div(rhs).

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(100usize.wrapping_div_euclid(10), 10);
\n
1.2.0 (const: 1.52.0) · source

pub const fn wrapping_rem(self, rhs: usize) -> usize

Wrapping (modular) remainder. Computes self % rhs.\nWrapped remainder calculation on unsigned types is\njust the regular remainder calculation.\nThere’s no way wrapping could ever happen.\nThis function exists, so that all operations\nare accounted for in the wrapping operations.

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(100usize.wrapping_rem(10), 0);
\n
1.38.0 (const: 1.52.0) · source

pub const fn wrapping_rem_euclid(self, rhs: usize) -> usize

Wrapping Euclidean modulo. Computes self.rem_euclid(rhs).\nWrapped modulo calculation on unsigned types is\njust the regular remainder calculation.\nThere’s no way wrapping could ever happen.\nThis function exists, so that all operations\nare accounted for in the wrapping operations.\nSince, for the positive integers, all common\ndefinitions of division are equal, this\nis exactly equal to self.wrapping_rem(rhs).

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(100usize.wrapping_rem_euclid(10), 0);
\n
1.2.0 (const: 1.32.0) · source

pub const fn wrapping_neg(self) -> usize

Wrapping (modular) negation. Computes -self,\nwrapping around at the boundary of the type.

\n

Since unsigned types do not have negative equivalents\nall applications of this function will wrap (except for -0).\nFor values smaller than the corresponding signed type’s maximum\nthe result is the same as casting the corresponding signed value.\nAny larger values are equivalent to MAX + 1 - (val - MAX - 1) where\nMAX is the corresponding signed type’s maximum.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(0_usize.wrapping_neg(), 0);\nassert_eq!(usize::MAX.wrapping_neg(), 1);\nassert_eq!(13_usize.wrapping_neg(), (!13) + 1);\nassert_eq!(42_usize.wrapping_neg(), !(42 - 1));
\n
1.2.0 (const: 1.32.0) · source

pub const fn wrapping_shl(self, rhs: u32) -> usize

Panic-free bitwise shift-left; yields self << mask(rhs),\nwhere mask removes any high-order bits of rhs that\nwould cause the shift to exceed the bitwidth of the type.

\n

Note that this is not the same as a rotate-left; the\nRHS of a wrapping shift-left is restricted to the range\nof the type, rather than the bits shifted out of the LHS\nbeing returned to the other end. The primitive integer\ntypes all implement a rotate_left function,\nwhich may be what you want instead.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(1usize.wrapping_shl(7), 128);\nassert_eq!(1usize.wrapping_shl(128), 1);
\n
1.2.0 (const: 1.32.0) · source

pub const fn wrapping_shr(self, rhs: u32) -> usize

Panic-free bitwise shift-right; yields self >> mask(rhs),\nwhere mask removes any high-order bits of rhs that\nwould cause the shift to exceed the bitwidth of the type.

\n

Note that this is not the same as a rotate-right; the\nRHS of a wrapping shift-right is restricted to the range\nof the type, rather than the bits shifted out of the LHS\nbeing returned to the other end. The primitive integer\ntypes all implement a rotate_right function,\nwhich may be what you want instead.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(128usize.wrapping_shr(7), 1);\nassert_eq!(128usize.wrapping_shr(128), 128);
\n
1.34.0 (const: 1.50.0) · source

pub const fn wrapping_pow(self, exp: u32) -> usize

Wrapping (modular) exponentiation. Computes self.pow(exp),\nwrapping around at the boundary of the type.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(3usize.wrapping_pow(5), 243);\nassert_eq!(3u8.wrapping_pow(6), 217);
\n
1.7.0 (const: 1.32.0) · source

pub const fn overflowing_add(self, rhs: usize) -> (usize, bool)

Calculates self + rhs

\n

Returns a tuple of the addition along with a boolean indicating\nwhether an arithmetic overflow would occur. If an overflow would\nhave occurred then the wrapped value is returned.

\n
§Examples
\n

Basic usage

\n\n
assert_eq!(5usize.overflowing_add(2), (7, false));\nassert_eq!(usize::MAX.overflowing_add(1), (0, true));
\n
source

pub const fn carrying_add(self, rhs: usize, carry: bool) -> (usize, bool)

🔬This is a nightly-only experimental API. (bigint_helper_methods)

Calculates self + rhs + carry and returns a tuple containing\nthe sum and the output carry.

\n

Performs “ternary addition” of two integer operands and a carry-in\nbit, and returns an output integer and a carry-out bit. This allows\nchaining together multiple additions to create a wider addition, and\ncan be useful for bignum addition.

\n

This can be thought of as a 64-bit “full adder”, in the electronics sense.

\n

If the input carry is false, this method is equivalent to\noverflowing_add, and the output carry is\nequal to the overflow flag. Note that although carry and overflow\nflags are similar for unsigned integers, they are different for\nsigned integers.

\n
§Examples
\n
#![feature(bigint_helper_methods)]\n\n//    3  MAX    (a = 3 × 2^64 + 2^64 - 1)\n// +  5    7    (b = 5 × 2^64 + 7)\n// ---------\n//    9    6    (sum = 9 × 2^64 + 6)\n\nlet (a1, a0): (usize, usize) = (3, usize::MAX);\nlet (b1, b0): (usize, usize) = (5, 7);\nlet carry0 = false;\n\nlet (sum0, carry1) = a0.carrying_add(b0, carry0);\nassert_eq!(carry1, true);\nlet (sum1, carry2) = a1.carrying_add(b1, carry1);\nassert_eq!(carry2, false);\n\nassert_eq!((sum1, sum0), (9, 6));
\n
1.66.0 (const: 1.66.0) · source

pub const fn overflowing_add_signed(self, rhs: isize) -> (usize, bool)

Calculates self + rhs with a signed rhs

\n

Returns a tuple of the addition along with a boolean indicating\nwhether an arithmetic overflow would occur. If an overflow would\nhave occurred then the wrapped value is returned.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(1usize.overflowing_add_signed(2), (3, false));\nassert_eq!(1usize.overflowing_add_signed(-2), (usize::MAX, true));\nassert_eq!((usize::MAX - 2).overflowing_add_signed(4), (1, true));
\n
1.7.0 (const: 1.32.0) · source

pub const fn overflowing_sub(self, rhs: usize) -> (usize, bool)

Calculates self - rhs

\n

Returns a tuple of the subtraction along with a boolean indicating\nwhether an arithmetic overflow would occur. If an overflow would\nhave occurred then the wrapped value is returned.

\n
§Examples
\n

Basic usage

\n\n
assert_eq!(5usize.overflowing_sub(2), (3, false));\nassert_eq!(0usize.overflowing_sub(1), (usize::MAX, true));
\n
source

pub const fn borrowing_sub(self, rhs: usize, borrow: bool) -> (usize, bool)

🔬This is a nightly-only experimental API. (bigint_helper_methods)

Calculates selfrhsborrow and returns a tuple\ncontaining the difference and the output borrow.

\n

Performs “ternary subtraction” by subtracting both an integer\noperand and a borrow-in bit from self, and returns an output\ninteger and a borrow-out bit. This allows chaining together multiple\nsubtractions to create a wider subtraction, and can be useful for\nbignum subtraction.

\n
§Examples
\n
#![feature(bigint_helper_methods)]\n\n//    9    6    (a = 9 × 2^64 + 6)\n// -  5    7    (b = 5 × 2^64 + 7)\n// ---------\n//    3  MAX    (diff = 3 × 2^64 + 2^64 - 1)\n\nlet (a1, a0): (usize, usize) = (9, 6);\nlet (b1, b0): (usize, usize) = (5, 7);\nlet borrow0 = false;\n\nlet (diff0, borrow1) = a0.borrowing_sub(b0, borrow0);\nassert_eq!(borrow1, true);\nlet (diff1, borrow2) = a1.borrowing_sub(b1, borrow1);\nassert_eq!(borrow2, false);\n\nassert_eq!((diff1, diff0), (3, usize::MAX));
\n
1.60.0 (const: 1.60.0) · source

pub const fn abs_diff(self, other: usize) -> usize

Computes the absolute difference between self and other.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(100usize.abs_diff(80), 20usize);\nassert_eq!(100usize.abs_diff(110), 10usize);
\n
1.7.0 (const: 1.32.0) · source

pub const fn overflowing_mul(self, rhs: usize) -> (usize, bool)

Calculates the multiplication of self and rhs.

\n

Returns a tuple of the multiplication along with a boolean\nindicating whether an arithmetic overflow would occur. If an\noverflow would have occurred then the wrapped value is returned.

\n
§Examples
\n

Basic usage:

\n

Please note that this example is shared between integer types.\nWhich explains why u32 is used here.

\n\n
assert_eq!(5u32.overflowing_mul(2), (10, false));\nassert_eq!(1_000_000_000u32.overflowing_mul(10), (1410065408, true));
\n
1.7.0 (const: 1.52.0) · source

pub const fn overflowing_div(self, rhs: usize) -> (usize, bool)

Calculates the divisor when self is divided by rhs.

\n

Returns a tuple of the divisor along with a boolean indicating\nwhether an arithmetic overflow would occur. Note that for unsigned\nintegers overflow never occurs, so the second value is always\nfalse.

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage

\n\n
assert_eq!(5usize.overflowing_div(2), (2, false));
\n
1.38.0 (const: 1.52.0) · source

pub const fn overflowing_div_euclid(self, rhs: usize) -> (usize, bool)

Calculates the quotient of Euclidean division self.div_euclid(rhs).

\n

Returns a tuple of the divisor along with a boolean indicating\nwhether an arithmetic overflow would occur. Note that for unsigned\nintegers overflow never occurs, so the second value is always\nfalse.\nSince, for the positive integers, all common\ndefinitions of division are equal, this\nis exactly equal to self.overflowing_div(rhs).

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage

\n\n
assert_eq!(5usize.overflowing_div_euclid(2), (2, false));
\n
1.7.0 (const: 1.52.0) · source

pub const fn overflowing_rem(self, rhs: usize) -> (usize, bool)

Calculates the remainder when self is divided by rhs.

\n

Returns a tuple of the remainder after dividing along with a boolean\nindicating whether an arithmetic overflow would occur. Note that for\nunsigned integers overflow never occurs, so the second value is\nalways false.

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage

\n\n
assert_eq!(5usize.overflowing_rem(2), (1, false));
\n
1.38.0 (const: 1.52.0) · source

pub const fn overflowing_rem_euclid(self, rhs: usize) -> (usize, bool)

Calculates the remainder self.rem_euclid(rhs) as if by Euclidean division.

\n

Returns a tuple of the modulo after dividing along with a boolean\nindicating whether an arithmetic overflow would occur. Note that for\nunsigned integers overflow never occurs, so the second value is\nalways false.\nSince, for the positive integers, all common\ndefinitions of division are equal, this operation\nis exactly equal to self.overflowing_rem(rhs).

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage

\n\n
assert_eq!(5usize.overflowing_rem_euclid(2), (1, false));
\n
1.7.0 (const: 1.32.0) · source

pub const fn overflowing_neg(self) -> (usize, bool)

Negates self in an overflowing fashion.

\n

Returns !self + 1 using wrapping operations to return the value\nthat represents the negation of this unsigned value. Note that for\npositive unsigned values overflow always occurs, but negating 0 does\nnot overflow.

\n
§Examples
\n

Basic usage

\n\n
assert_eq!(0usize.overflowing_neg(), (0, false));\nassert_eq!(2usize.overflowing_neg(), (-2i32 as usize, true));
\n
1.7.0 (const: 1.32.0) · source

pub const fn overflowing_shl(self, rhs: u32) -> (usize, bool)

Shifts self left by rhs bits.

\n

Returns a tuple of the shifted version of self along with a boolean\nindicating whether the shift value was larger than or equal to the\nnumber of bits. If the shift value is too large, then value is\nmasked (N-1) where N is the number of bits, and this value is then\nused to perform the shift.

\n
§Examples
\n

Basic usage

\n\n
assert_eq!(0x1usize.overflowing_shl(4), (0x10, false));\nassert_eq!(0x1usize.overflowing_shl(132), (0x10, true));
\n
1.7.0 (const: 1.32.0) · source

pub const fn overflowing_shr(self, rhs: u32) -> (usize, bool)

Shifts self right by rhs bits.

\n

Returns a tuple of the shifted version of self along with a boolean\nindicating whether the shift value was larger than or equal to the\nnumber of bits. If the shift value is too large, then value is\nmasked (N-1) where N is the number of bits, and this value is then\nused to perform the shift.

\n
§Examples
\n

Basic usage

\n\n
assert_eq!(0x10usize.overflowing_shr(4), (0x1, false));\nassert_eq!(0x10usize.overflowing_shr(132), (0x1, true));
\n
1.34.0 (const: 1.50.0) · source

pub const fn overflowing_pow(self, exp: u32) -> (usize, bool)

Raises self to the power of exp, using exponentiation by squaring.

\n

Returns a tuple of the exponentiation along with a bool indicating\nwhether an overflow happened.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(3usize.overflowing_pow(5), (243, false));\nassert_eq!(3u8.overflowing_pow(6), (217, true));
\n
1.0.0 (const: 1.50.0) · source

pub const fn pow(self, exp: u32) -> usize

Raises self to the power of exp, using exponentiation by squaring.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(2usize.pow(5), 32);
\n
source

pub const fn isqrt(self) -> usize

🔬This is a nightly-only experimental API. (isqrt)

Returns the square root of the number, rounded down.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(isqrt)]\nassert_eq!(10usize.isqrt(), 3);
\n
1.38.0 (const: 1.52.0) · source

pub const fn div_euclid(self, rhs: usize) -> usize

Performs Euclidean division.

\n

Since, for the positive integers, all common\ndefinitions of division are equal, this\nis exactly equal to self / rhs.

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(7usize.div_euclid(4), 1); // or any other integer type
\n
1.38.0 (const: 1.52.0) · source

pub const fn rem_euclid(self, rhs: usize) -> usize

Calculates the least remainder of self (mod rhs).

\n

Since, for the positive integers, all common\ndefinitions of division are equal, this\nis exactly equal to self % rhs.

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(7usize.rem_euclid(4), 3); // or any other integer type
\n
source

pub const fn div_floor(self, rhs: usize) -> usize

🔬This is a nightly-only experimental API. (int_roundings)

Calculates the quotient of self and rhs, rounding the result towards negative infinity.

\n

This is the same as performing self / rhs for all unsigned integers.

\n
§Panics
\n

This function will panic if rhs is zero.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(int_roundings)]\nassert_eq!(7_usize.div_floor(4), 1);
\n
1.73.0 (const: 1.73.0) · source

pub const fn div_ceil(self, rhs: usize) -> usize

Calculates the quotient of self and rhs, rounding the result towards positive infinity.

\n
§Panics
\n

This function will panic if rhs is zero.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(7_usize.div_ceil(4), 2);
\n
1.73.0 (const: 1.73.0) · source

pub const fn next_multiple_of(self, rhs: usize) -> usize

Calculates the smallest value greater than or equal to self that\nis a multiple of rhs.

\n
§Panics
\n

This function will panic if rhs is zero.

\n
§Overflow behavior
\n

On overflow, this function will panic if overflow checks are enabled (default in debug\nmode) and wrap if overflow checks are disabled (default in release mode).

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(16_usize.next_multiple_of(8), 16);\nassert_eq!(23_usize.next_multiple_of(8), 24);
\n
1.73.0 (const: 1.73.0) · source

pub const fn checked_next_multiple_of(self, rhs: usize) -> Option<usize>

Calculates the smallest value greater than or equal to self that\nis a multiple of rhs. Returns None if rhs is zero or the\noperation would result in overflow.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(16_usize.checked_next_multiple_of(8), Some(16));\nassert_eq!(23_usize.checked_next_multiple_of(8), Some(24));\nassert_eq!(1_usize.checked_next_multiple_of(0), None);\nassert_eq!(usize::MAX.checked_next_multiple_of(2), None);
\n
1.0.0 (const: 1.32.0) · source

pub const fn is_power_of_two(self) -> bool

Returns true if and only if self == 2^k for some k.

\n
§Examples
\n

Basic usage:

\n\n
assert!(16usize.is_power_of_two());\nassert!(!10usize.is_power_of_two());
\n
1.0.0 (const: 1.50.0) · source

pub const fn next_power_of_two(self) -> usize

Returns the smallest power of two greater than or equal to self.

\n

When return value overflows (i.e., self > (1 << (N-1)) for type\nuN), it panics in debug mode and the return value is wrapped to 0 in\nrelease mode (the only situation in which this method can return 0).

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(2usize.next_power_of_two(), 2);\nassert_eq!(3usize.next_power_of_two(), 4);\nassert_eq!(0usize.next_power_of_two(), 1);
\n
1.0.0 (const: 1.50.0) · source

pub const fn checked_next_power_of_two(self) -> Option<usize>

Returns the smallest power of two greater than or equal to self. If\nthe next power of two is greater than the type’s maximum value,\nNone is returned, otherwise the power of two is wrapped in Some.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(2usize.checked_next_power_of_two(), Some(2));\nassert_eq!(3usize.checked_next_power_of_two(), Some(4));\nassert_eq!(usize::MAX.checked_next_power_of_two(), None);
\n
source

pub const fn wrapping_next_power_of_two(self) -> usize

🔬This is a nightly-only experimental API. (wrapping_next_power_of_two)

Returns the smallest power of two greater than or equal to n. If\nthe next power of two is greater than the type’s maximum value,\nthe return value is wrapped to 0.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(wrapping_next_power_of_two)]\n\nassert_eq!(2usize.wrapping_next_power_of_two(), 2);\nassert_eq!(3usize.wrapping_next_power_of_two(), 4);\nassert_eq!(usize::MAX.wrapping_next_power_of_two(), 0);
\n
1.32.0 (const: 1.44.0) · source

pub const fn to_be_bytes(self) -> [u8; 8]

Return the memory representation of this integer as a byte array in\nbig-endian (network) byte order.

\n

Note: This function returns an array of length 2, 4 or 8 bytes\ndepending on the target pointer size.

\n
§Examples
\n
let bytes = 0x1234567890123456usize.to_be_bytes();\nassert_eq!(bytes, [0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]);
\n
1.32.0 (const: 1.44.0) · source

pub const fn to_le_bytes(self) -> [u8; 8]

Return the memory representation of this integer as a byte array in\nlittle-endian byte order.

\n

Note: This function returns an array of length 2, 4 or 8 bytes\ndepending on the target pointer size.

\n
§Examples
\n
let bytes = 0x1234567890123456usize.to_le_bytes();\nassert_eq!(bytes, [0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]);
\n
1.32.0 (const: 1.44.0) · source

pub const fn to_ne_bytes(self) -> [u8; 8]

Return the memory representation of this integer as a byte array in\nnative byte order.

\n

As the target platform’s native endianness is used, portable code\nshould use to_be_bytes or to_le_bytes, as appropriate,\ninstead.

\n

Note: This function returns an array of length 2, 4 or 8 bytes\ndepending on the target pointer size.

\n
§Examples
\n
let bytes = 0x1234567890123456usize.to_ne_bytes();\nassert_eq!(\n    bytes,\n    if cfg!(target_endian = \"big\") {\n        [0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]\n    } else {\n        [0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]\n    }\n);
\n
1.32.0 (const: 1.44.0) · source

pub const fn from_be_bytes(bytes: [u8; 8]) -> usize

Create a native endian integer value from its representation\nas a byte array in big endian.

\n

Note: This function takes an array of length 2, 4 or 8 bytes\ndepending on the target pointer size.

\n
§Examples
\n
let value = usize::from_be_bytes([0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]);\nassert_eq!(value, 0x1234567890123456);
\n

When starting from a slice rather than an array, fallible conversion APIs can be used:

\n\n
fn read_be_usize(input: &mut &[u8]) -> usize {\n    let (int_bytes, rest) = input.split_at(std::mem::size_of::<usize>());\n    *input = rest;\n    usize::from_be_bytes(int_bytes.try_into().unwrap())\n}
\n
1.32.0 (const: 1.44.0) · source

pub const fn from_le_bytes(bytes: [u8; 8]) -> usize

Create a native endian integer value from its representation\nas a byte array in little endian.

\n

Note: This function takes an array of length 2, 4 or 8 bytes\ndepending on the target pointer size.

\n
§Examples
\n
let value = usize::from_le_bytes([0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]);\nassert_eq!(value, 0x1234567890123456);
\n

When starting from a slice rather than an array, fallible conversion APIs can be used:

\n\n
fn read_le_usize(input: &mut &[u8]) -> usize {\n    let (int_bytes, rest) = input.split_at(std::mem::size_of::<usize>());\n    *input = rest;\n    usize::from_le_bytes(int_bytes.try_into().unwrap())\n}
\n
1.32.0 (const: 1.44.0) · source

pub const fn from_ne_bytes(bytes: [u8; 8]) -> usize

Create a native endian integer value from its memory representation\nas a byte array in native endianness.

\n

As the target platform’s native endianness is used, portable code\nlikely wants to use from_be_bytes or from_le_bytes, as\nappropriate instead.

\n

Note: This function takes an array of length 2, 4 or 8 bytes\ndepending on the target pointer size.

\n
§Examples
\n
let value = usize::from_ne_bytes(if cfg!(target_endian = \"big\") {\n    [0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]\n} else {\n    [0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]\n});\nassert_eq!(value, 0x1234567890123456);
\n

When starting from a slice rather than an array, fallible conversion APIs can be used:

\n\n
fn read_ne_usize(input: &mut &[u8]) -> usize {\n    let (int_bytes, rest) = input.split_at(std::mem::size_of::<usize>());\n    *input = rest;\n    usize::from_ne_bytes(int_bytes.try_into().unwrap())\n}
\n
1.0.0 (const: 1.32.0) · source

pub const fn min_value() -> usize

👎Deprecating in a future version: replaced by the MIN associated constant on this type

New code should prefer to use\nusize::MIN instead.

\n

Returns the smallest value that can be represented by this integer type.

\n
1.0.0 (const: 1.32.0) · source

pub const fn max_value() -> usize

👎Deprecating in a future version: replaced by the MAX associated constant on this type

New code should prefer to use\nusize::MAX instead.

\n

Returns the largest value that can be represented by this integer type.

\n
source

pub const fn widening_mul(self, rhs: usize) -> (usize, usize)

🔬This is a nightly-only experimental API. (bigint_helper_methods)

Calculates the complete product self * rhs without the possibility to overflow.

\n

This returns the low-order (wrapping) bits and the high-order (overflow) bits\nof the result as two separate values, in that order.

\n

If you also need to add a carry to the wide result, then you want\nSelf::carrying_mul instead.

\n
§Examples
\n

Basic usage:

\n

Please note that this example is shared between integer types.\nWhich explains why u32 is used here.

\n\n
#![feature(bigint_helper_methods)]\nassert_eq!(5u32.widening_mul(2), (10, 0));\nassert_eq!(1_000_000_000u32.widening_mul(10), (1410065408, 2));
\n
source

pub const fn carrying_mul(self, rhs: usize, carry: usize) -> (usize, usize)

🔬This is a nightly-only experimental API. (bigint_helper_methods)

Calculates the “full multiplication” self * rhs + carry\nwithout the possibility to overflow.

\n

This returns the low-order (wrapping) bits and the high-order (overflow) bits\nof the result as two separate values, in that order.

\n

Performs “long multiplication” which takes in an extra amount to add, and may return an\nadditional amount of overflow. This allows for chaining together multiple\nmultiplications to create “big integers” which represent larger values.

\n

If you don’t need the carry, then you can use Self::widening_mul instead.

\n
§Examples
\n

Basic usage:

\n

Please note that this example is shared between integer types.\nWhich explains why u32 is used here.

\n\n
#![feature(bigint_helper_methods)]\nassert_eq!(5u32.carrying_mul(2, 0), (10, 0));\nassert_eq!(5u32.carrying_mul(2, 10), (20, 0));\nassert_eq!(1_000_000_000u32.carrying_mul(10, 0), (1410065408, 2));\nassert_eq!(1_000_000_000u32.carrying_mul(10, 10), (1410065418, 2));\nassert_eq!(usize::MAX.carrying_mul(usize::MAX, usize::MAX), (0, usize::MAX));
\n

This is the core operation needed for scalar multiplication when\nimplementing it for wider-than-native types.

\n\n
#![feature(bigint_helper_methods)]\nfn scalar_mul_eq(little_endian_digits: &mut Vec<u16>, multiplicand: u16) {\n    let mut carry = 0;\n    for d in little_endian_digits.iter_mut() {\n        (*d, carry) = d.carrying_mul(multiplicand, carry);\n    }\n    if carry != 0 {\n        little_endian_digits.push(carry);\n    }\n}\n\nlet mut v = vec![10, 20];\nscalar_mul_eq(&mut v, 3);\nassert_eq!(v, [30, 60]);\n\nassert_eq!(0x87654321_u64 * 0xFEED, 0x86D3D159E38D);\nlet mut v = vec![0x4321, 0x8765];\nscalar_mul_eq(&mut v, 0xFEED);\nassert_eq!(v, [0xE38D, 0xD159, 0x86D3]);
\n

If carry is zero, this is similar to overflowing_mul,\nexcept that it gives the value of the overflow instead of just whether one happened:

\n\n
#![feature(bigint_helper_methods)]\nlet r = u8::carrying_mul(7, 13, 0);\nassert_eq!((r.0, r.1 != 0), u8::overflowing_mul(7, 13));\nlet r = u8::carrying_mul(13, 42, 0);\nassert_eq!((r.0, r.1 != 0), u8::overflowing_mul(13, 42));
\n

The value of the first field in the returned tuple matches what you’d get\nby combining the wrapping_mul and\nwrapping_add methods:

\n\n
#![feature(bigint_helper_methods)]\nassert_eq!(\n    789_u16.carrying_mul(456, 123).0,\n    789_u16.wrapping_mul(456).wrapping_add(123),\n);
\n
source

pub const fn midpoint(self, rhs: usize) -> usize

🔬This is a nightly-only experimental API. (num_midpoint)

Calculates the middle point of self and rhs.

\n

midpoint(a, b) is (a + b) >> 1 as if it were performed in a\nsufficiently-large signed integral type. This implies that the result is\nalways rounded towards negative infinity and that no overflow will ever occur.

\n
§Examples
\n
#![feature(num_midpoint)]\nassert_eq!(0usize.midpoint(4), 2);\nassert_eq!(1usize.midpoint(4), 2);
\n
",0,"gosling::context::HandshakeHandle"],["
source§

impl usize

1.0.0 (const: unstable) · source

pub fn from_str_radix(src: &str, radix: u32) -> Result<usize, ParseIntError>

Converts a string slice in a given base to an integer.

\n

The string is expected to be an optional + sign\nfollowed by digits.\nLeading and trailing whitespace represent an error.\nDigits are a subset of these characters, depending on radix:

\n
    \n
  • 0-9
  • \n
  • a-z
  • \n
  • A-Z
  • \n
\n
§Panics
\n

This function panics if radix is not in the range from 2 to 36.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(usize::from_str_radix(\"A\", 16), Ok(10));
\n
",0,"gosling::context::HandshakeHandle"],["
§

impl AtLeast16 for usize

","AtLeast16","gosling::context::HandshakeHandle"],["
§

impl AtLeast32 for usize

","AtLeast32","gosling::context::HandshakeHandle"],["
§

impl AtLeast64 for usize

","AtLeast64","gosling::context::HandshakeHandle"],["
§

impl AtLeast8 for usize

","AtLeast8","gosling::context::HandshakeHandle"],["
§

impl AtMost128 for usize

","AtMost128","gosling::context::HandshakeHandle"],["
§

impl AtMost64 for usize

","AtMost64","gosling::context::HandshakeHandle"],["
§

impl BitOps for usize

","BitOps","gosling::context::HandshakeHandle"],["
source§

impl ConstParamTy for usize

","ConstParamTy","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Copy for usize

","Copy","gosling::context::HandshakeHandle"],["
§

impl DefaultIsZeroes for usize

","DefaultIsZeroes","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Eq for usize

","Eq","gosling::context::HandshakeHandle"],["
§

impl ExtendTarget<usize> for usize

","ExtendTarget","gosling::context::HandshakeHandle"],["
source§

impl Index for usize

","Index","gosling::context::HandshakeHandle"],["
§

impl Index for usize

","Index","gosling::context::HandshakeHandle"],["
source§

impl Integer for usize

","Integer","gosling::context::HandshakeHandle"],["
§

impl Is64 for usize

","Is64","gosling::context::HandshakeHandle"],["
§

impl NotAutoValue for usize

","NotAutoValue","gosling::context::HandshakeHandle"],["
§

impl NumericOps for usize

","NumericOps","gosling::context::HandshakeHandle"],["
source§

impl SimdCast for usize

","SimdCast","gosling::context::HandshakeHandle"],["
source§

impl StructuralPartialEq for usize

","StructuralPartialEq","gosling::context::HandshakeHandle"],["
§

impl TruncateTarget<u16> for usize

","TruncateTarget","gosling::context::HandshakeHandle"],["
§

impl TruncateTarget<u8> for usize

","TruncateTarget","gosling::context::HandshakeHandle"],["
§

impl TruncateTarget<usize> for usize

","TruncateTarget","gosling::context::HandshakeHandle"],["
source§

impl TrustedStep for usize

","TrustedStep","gosling::context::HandshakeHandle"],["
§

impl Uint for usize

","Uint","gosling::context::HandshakeHandle"],["
source§

impl Unsigned for usize

","Unsigned","gosling::context::HandshakeHandle"],["
source§

impl Weight for usize

","Weight","gosling::context::HandshakeHandle"],["
source§

impl ZeroablePrimitive for usize

","ZeroablePrimitive","gosling::context::HandshakeHandle"]], -"tor_interface":[["
§

impl<T> Accumulate<T> for usize

§

fn initial(_capacity: Option<usize>) -> usize

Create a new Extend of the correct type
§

fn accumulate(&mut self, _acc: T)

Accumulate the input into an accumulator
","Accumulate","tor_interface::tor_provider::CircuitToken"],["
source§

impl<'a> Add<&'a BigInt> for usize

§

type Output = BigInt

The resulting type after applying the + operator.
source§

fn add(self, other: &BigInt) -> BigInt

Performs the + operation. Read more
","Add<&'a BigInt>","tor_interface::tor_provider::CircuitToken"],["
source§

impl<'a> Add<&'a BigUint> for usize

§

type Output = BigUint

The resulting type after applying the + operator.
source§

fn add(self, other: &BigUint) -> BigUint

Performs the + operation. Read more
","Add<&'a BigUint>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Add<&usize> for usize

§

type Output = <usize as Add>::Output

The resulting type after applying the + operator.
source§

fn add(self, other: &usize) -> <usize as Add>::Output

Performs the + operation. Read more
","Add<&usize>","tor_interface::tor_provider::CircuitToken"],["
source§

impl Add<BigInt> for usize

§

type Output = BigInt

The resulting type after applying the + operator.
source§

fn add(self, other: BigInt) -> BigInt

Performs the + operation. Read more
","Add","tor_interface::tor_provider::CircuitToken"],["
source§

impl Add<BigUint> for usize

§

type Output = BigUint

The resulting type after applying the + operator.
source§

fn add(self, other: BigUint) -> BigUint

Performs the + operation. Read more
","Add","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Add for usize

§

type Output = usize

The resulting type after applying the + operator.
source§

fn add(self, other: usize) -> usize

Performs the + operation. Read more
","Add","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl AddAssign<&usize> for usize

source§

fn add_assign(&mut self, other: &usize)

Performs the += operation. Read more
","AddAssign<&usize>","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl AddAssign for usize

source§

fn add_assign(&mut self, other: usize)

Performs the += operation. Read more
","AddAssign","tor_interface::tor_provider::CircuitToken"],["
§

impl AsAny for usize

§

fn as_any(&self) -> &(dyn Any + 'static)

Returns thick pointer of &dyn Any type, that can be later downcasted\nback to a reference of the original type.
","AsAny","tor_interface::tor_provider::CircuitToken"],["
§

impl AsBytes for usize

§

fn as_bytes(&self) -> &[u8]

Gets the bytes of this value. Read more
§

fn as_bytes_mut(&mut self) -> &mut [u8]
where\n Self: FromBytes,

Gets the bytes of this value mutably. Read more
§

fn write_to(&self, bytes: &mut [u8]) -> Option<()>

Writes a copy of self to bytes. Read more
§

fn write_to_prefix(&self, bytes: &mut [u8]) -> Option<()>

Writes a copy of self to the prefix of bytes. Read more
§

fn write_to_suffix(&self, bytes: &mut [u8]) -> Option<()>

Writes a copy of self to the suffix of bytes. Read more
","AsBytes","tor_interface::tor_provider::CircuitToken"],["
source§

impl AsPrimitive<f32> for usize

source§

fn as_(self) -> f32

Convert a value to another, using the as operator.
","AsPrimitive","tor_interface::tor_provider::CircuitToken"],["
source§

impl AsPrimitive<f64> for usize

source§

fn as_(self) -> f64

Convert a value to another, using the as operator.
","AsPrimitive","tor_interface::tor_provider::CircuitToken"],["
source§

impl AsPrimitive<i128> for usize

source§

fn as_(self) -> i128

Convert a value to another, using the as operator.
","AsPrimitive","tor_interface::tor_provider::CircuitToken"],["
source§

impl AsPrimitive<i16> for usize

source§

fn as_(self) -> i16

Convert a value to another, using the as operator.
","AsPrimitive","tor_interface::tor_provider::CircuitToken"],["
source§

impl AsPrimitive<i32> for usize

source§

fn as_(self) -> i32

Convert a value to another, using the as operator.
","AsPrimitive","tor_interface::tor_provider::CircuitToken"],["
source§

impl AsPrimitive<i64> for usize

source§

fn as_(self) -> i64

Convert a value to another, using the as operator.
","AsPrimitive","tor_interface::tor_provider::CircuitToken"],["
source§

impl AsPrimitive<i8> for usize

source§

fn as_(self) -> i8

Convert a value to another, using the as operator.
","AsPrimitive","tor_interface::tor_provider::CircuitToken"],["
source§

impl AsPrimitive<isize> for usize

source§

fn as_(self) -> isize

Convert a value to another, using the as operator.
","AsPrimitive","tor_interface::tor_provider::CircuitToken"],["
source§

impl AsPrimitive<u128> for usize

source§

fn as_(self) -> u128

Convert a value to another, using the as operator.
","AsPrimitive","tor_interface::tor_provider::CircuitToken"],["
source§

impl AsPrimitive<u16> for usize

source§

fn as_(self) -> u16

Convert a value to another, using the as operator.
","AsPrimitive","tor_interface::tor_provider::CircuitToken"],["
source§

impl AsPrimitive<u32> for usize

source§

fn as_(self) -> u32

Convert a value to another, using the as operator.
","AsPrimitive","tor_interface::tor_provider::CircuitToken"],["
source§

impl AsPrimitive<u64> for usize

source§

fn as_(self) -> u64

Convert a value to another, using the as operator.
","AsPrimitive","tor_interface::tor_provider::CircuitToken"],["
source§

impl AsPrimitive<u8> for usize

source§

fn as_(self) -> u8

Convert a value to another, using the as operator.
","AsPrimitive","tor_interface::tor_provider::CircuitToken"],["
source§

impl AsPrimitive<usize> for usize

source§

fn as_(self) -> usize

Convert a value to another, using the as operator.
","AsPrimitive","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Binary for usize

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","Binary","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl BitAnd<&usize> for usize

§

type Output = <usize as BitAnd>::Output

The resulting type after applying the & operator.
source§

fn bitand(self, other: &usize) -> <usize as BitAnd>::Output

Performs the & operation. Read more
","BitAnd<&usize>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl BitAnd for usize

§

type Output = usize

The resulting type after applying the & operator.
source§

fn bitand(self, rhs: usize) -> usize

Performs the & operation. Read more
","BitAnd","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl BitAndAssign<&usize> for usize

source§

fn bitand_assign(&mut self, other: &usize)

Performs the &= operation. Read more
","BitAndAssign<&usize>","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl BitAndAssign for usize

source§

fn bitand_assign(&mut self, other: usize)

Performs the &= operation. Read more
","BitAndAssign","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl BitOr<&usize> for usize

§

type Output = <usize as BitOr>::Output

The resulting type after applying the | operator.
source§

fn bitor(self, other: &usize) -> <usize as BitOr>::Output

Performs the | operation. Read more
","BitOr<&usize>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl BitOr for usize

§

type Output = usize

The resulting type after applying the | operator.
source§

fn bitor(self, rhs: usize) -> usize

Performs the | operation. Read more
","BitOr","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl BitOrAssign<&usize> for usize

source§

fn bitor_assign(&mut self, other: &usize)

Performs the |= operation. Read more
","BitOrAssign<&usize>","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl BitOrAssign for usize

source§

fn bitor_assign(&mut self, other: usize)

Performs the |= operation. Read more
","BitOrAssign","tor_interface::tor_provider::CircuitToken"],["
§

impl BitRegister for usize

§

const ALL: usize = 18_446_744_073_709_551_615usize

The literal !0.
§

const INDX: u8 = _

The number of bits required to store an index in the range 0 .. BITS.
§

const MASK: u8 = _

A mask over all bits that can be used as an index within the element.\nThis is the value with the least significant INDX-many bits set high.
","BitRegister","tor_interface::tor_provider::CircuitToken"],["
§

impl<'a, T, O> BitSliceIndex<'a, T, O> for usize
where\n T: BitStore,\n O: BitOrder,

§

type Immut = BitRef<'a, Const, T, O>

The output type of immutable access.
§

type Mut = BitRef<'a, Mut, T, O>

The output type of mutable access.
§

fn get(\n self,\n bits: &'a BitSlice<T, O>,\n) -> Option<<usize as BitSliceIndex<'a, T, O>>::Immut>

Immutably indexes into a bit-slice, returning None if self is out of\nbounds. Read more
§

fn get_mut(\n self,\n bits: &'a mut BitSlice<T, O>,\n) -> Option<<usize as BitSliceIndex<'a, T, O>>::Mut>

Mutably indexes into a bit-slice, returning None if self is out of\nbounds. Read more
§

unsafe fn get_unchecked(\n self,\n bits: &'a BitSlice<T, O>,\n) -> <usize as BitSliceIndex<'a, T, O>>::Immut

Immutably indexes into a bit-slice without doing any bounds checking. Read more
§

unsafe fn get_unchecked_mut(\n self,\n bits: &'a mut BitSlice<T, O>,\n) -> <usize as BitSliceIndex<'a, T, O>>::Mut

Mutably indexes into a bit-slice without doing any bounds checking. Read more
§

fn index(\n self,\n bits: &'a BitSlice<T, O>,\n) -> <usize as BitSliceIndex<'a, T, O>>::Immut

Immutably indexes into a bit-slice, panicking if self is out of\nbounds. Read more
§

fn index_mut(\n self,\n bits: &'a mut BitSlice<T, O>,\n) -> <usize as BitSliceIndex<'a, T, O>>::Mut

Mutably indexes into a bit-slice, panicking if self is out of bounds. Read more
","BitSliceIndex<'a, T, O>","tor_interface::tor_provider::CircuitToken"],["
§

impl BitStore for usize

§

type Access = Cell<usize>

The unsigned integers will only be BitStore type parameters\nfor handles to unaliased memory, following the normal Rust\nreference rules.

\n
§

type Mem = usize

The element type used in the memory region underlying a BitSlice. It\nis always one of the unsigned integer fundamentals.
§

type Alias = BitSafeUsize

A sibling BitStore implementor that is known to be alias-safe. It is\nused when a BitSlice introduces multiple handles that view the same\nmemory location, and at least one of them has write capabilities to it.\nIt must have the same underlying memory type, and can only change access\npatterns or public-facing usage.
§

type Unalias = usize

The inverse of ::Alias. It is used when a BitSlice removes the\nconditions that required a T -> T::Alias transition.
§

const ZERO: usize = 0usize

The zero constant.
§

fn new(value: <usize as BitStore>::Mem) -> usize

Wraps a raw memory value as a BitStore type.
§

fn load_value(&self) -> <usize as BitStore>::Mem

Loads a value out of the memory system according to the ::Access\nrules. This may be called when the value is aliased by a write-capable\nreference.
§

fn store_value(&mut self, value: <usize as BitStore>::Mem)

Stores a value into the memory system. This is only called when there\nare no other handles to the value, and it may bypass ::Access\nconstraints.
§

const ALIGNED_TO_SIZE: [(); 1] = _

All implementors are required to have their alignment match their size. Read more
§

const ALIAS_WIDTH: [(); 1] = _

All implementors are required to have Self and Self::Alias be equal\nin representation. This is true by fiat for all types except the\nunsigned integers. Read more
§

fn get_bit<O>(&self, index: BitIdx<Self::Mem>) -> bool
where\n O: BitOrder,

Reads a single bit out of the memory system according to the ::Access\nrules. This is lifted from BitAccess so that it can be used\nelsewhere without additional casts. Read more
","BitStore","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl BitXor<&usize> for usize

§

type Output = <usize as BitXor>::Output

The resulting type after applying the ^ operator.
source§

fn bitxor(self, other: &usize) -> <usize as BitXor>::Output

Performs the ^ operation. Read more
","BitXor<&usize>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl BitXor for usize

§

type Output = usize

The resulting type after applying the ^ operator.
source§

fn bitxor(self, other: usize) -> usize

Performs the ^ operation. Read more
","BitXor","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl BitXorAssign<&usize> for usize

source§

fn bitxor_assign(&mut self, other: &usize)

Performs the ^= operation. Read more
","BitXorAssign<&usize>","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl BitXorAssign for usize

source§

fn bitxor_assign(&mut self, other: usize)

Performs the ^= operation. Read more
","BitXorAssign","tor_interface::tor_provider::CircuitToken"],["
§

impl Bits for usize

§

const EMPTY: usize = 0usize

A value with all bits unset.
§

const ALL: usize = 18_446_744_073_709_551_615usize

A value with all bits set.
","Bits","tor_interface::tor_provider::CircuitToken"],["
source§

impl Bounded for usize

source§

fn min_value() -> usize

Returns the smallest finite number this type can represent
source§

fn max_value() -> usize

Returns the largest finite number this type can represent
","Bounded","tor_interface::tor_provider::CircuitToken"],["
§

impl CastSigned for usize

§

type Signed = isize

The signed integer type with the same size as Self.
§

fn cast_signed(self) -> <usize as CastSigned>::Signed

Cast an integer to the signed integer of the same size.
","CastSigned","tor_interface::tor_provider::CircuitToken"],["
§

impl CastUnsigned for usize

§

type Unsigned = usize

The unsigned integer type with the same size as Self.
§

fn cast_unsigned(self) -> <usize as CastUnsigned>::Unsigned

Cast an integer to the unsigned integer of the same size.
","CastUnsigned","tor_interface::tor_provider::CircuitToken"],["
source§

impl CheckedAdd for usize

source§

fn checked_add(&self, v: &usize) -> Option<usize>

Adds two numbers, checking for overflow. If overflow happens, None is\nreturned.
","CheckedAdd","tor_interface::tor_provider::CircuitToken"],["
source§

impl CheckedDiv for usize

source§

fn checked_div(&self, v: &usize) -> Option<usize>

Divides two numbers, checking for underflow, overflow and division by\nzero. If any of that happens, None is returned.
","CheckedDiv","tor_interface::tor_provider::CircuitToken"],["
source§

impl CheckedEuclid for usize

source§

fn checked_div_euclid(&self, v: &usize) -> Option<usize>

Performs euclid division that returns None instead of panicking on division by zero\nand instead of wrapping around on underflow and overflow.
source§

fn checked_rem_euclid(&self, v: &usize) -> Option<usize>

Finds the euclid remainder of dividing two numbers, checking for underflow, overflow and\ndivision by zero. If any of that happens, None is returned.
source§

fn checked_div_rem_euclid(&self, v: &Self) -> Option<(Self, Self)>

Returns both the quotient and remainder from checked Euclidean division. Read more
","CheckedEuclid","tor_interface::tor_provider::CircuitToken"],["
source§

impl CheckedMul for usize

source§

fn checked_mul(&self, v: &usize) -> Option<usize>

Multiplies two numbers, checking for underflow or overflow. If underflow\nor overflow happens, None is returned.
","CheckedMul","tor_interface::tor_provider::CircuitToken"],["
source§

impl CheckedNeg for usize

source§

fn checked_neg(&self) -> Option<usize>

Negates a number, returning None for results that can’t be represented, like signed MIN\nvalues that can’t be positive, or non-zero unsigned values that can’t be negative. Read more
","CheckedNeg","tor_interface::tor_provider::CircuitToken"],["
source§

impl CheckedRem for usize

source§

fn checked_rem(&self, v: &usize) -> Option<usize>

Finds the remainder of dividing two numbers, checking for underflow, overflow and division\nby zero. If any of that happens, None is returned. Read more
","CheckedRem","tor_interface::tor_provider::CircuitToken"],["
source§

impl CheckedShl for usize

source§

fn checked_shl(&self, rhs: u32) -> Option<usize>

Checked shift left. Computes self << rhs, returning None\nif rhs is larger than or equal to the number of bits in self. Read more
","CheckedShl","tor_interface::tor_provider::CircuitToken"],["
source§

impl CheckedShr for usize

source§

fn checked_shr(&self, rhs: u32) -> Option<usize>

Checked shift right. Computes self >> rhs, returning None\nif rhs is larger than or equal to the number of bits in self. Read more
","CheckedShr","tor_interface::tor_provider::CircuitToken"],["
source§

impl CheckedSub for usize

source§

fn checked_sub(&self, v: &usize) -> Option<usize>

Subtracts two numbers, checking for underflow. If underflow happens,\nNone is returned.
","CheckedSub","tor_interface::tor_provider::CircuitToken"],["
§

impl<T> CheckedSum<usize> for T
where\n T: IntoIterator<Item = usize>,

§

fn checked_sum(self) -> Result<usize, Error>

Iterate over the values of this type, computing a checked sum. Read more
","CheckedSum","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Clone for usize

source§

fn clone(&self) -> usize

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
","Clone","tor_interface::tor_provider::CircuitToken"],["
source§

impl ConstOne for usize

source§

const ONE: usize = 1usize

The multiplicative identity element of Self, 1.
","ConstOne","tor_interface::tor_provider::CircuitToken"],["
source§

impl ConstZero for usize

source§

const ZERO: usize = 0usize

The additive identity element of Self, 0.
","ConstZero","tor_interface::tor_provider::CircuitToken"],["
source§

impl ConstantTimeEq for usize

source§

fn ct_eq(&self, other: &usize) -> Choice

Determine if two items are equal. Read more
source§

fn ct_ne(&self, other: &Self) -> Choice

Determine if two items are NOT equal. Read more
","ConstantTimeEq","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Debug for usize

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","Debug","tor_interface::tor_provider::CircuitToken"],["
§

impl Decode for usize

Decode a usize.

\n

Uses [Decode] impl on u32 and then converts to a usize, handling\npotential overflow if usize is smaller than u32.

\n

Enforces a library-internal limit of 1048575, as the main use case for\nusize is length prefixes.

\n
§

type Error = Error

Type returned in the event of a decoding error.
§

fn decode(reader: &mut impl Reader) -> Result<usize, Error>

Attempt to decode a value of this type using the provided [Reader].
","Decode","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Default for usize

source§

fn default() -> usize

Returns the default value of 0

\n
","Default","tor_interface::tor_provider::CircuitToken"],["
source§

impl<'de> Deserialize<'de> for usize

source§

fn deserialize<D>(\n deserializer: D,\n) -> Result<usize, <D as Deserializer<'de>>::Error>
where\n D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
","Deserialize<'de>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Display for usize

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","Display","tor_interface::tor_provider::CircuitToken"],["
source§

impl<'a> Div<&'a BigInt> for usize

§

type Output = BigInt

The resulting type after applying the / operator.
source§

fn div(self, other: &BigInt) -> BigInt

Performs the / operation. Read more
","Div<&'a BigInt>","tor_interface::tor_provider::CircuitToken"],["
source§

impl<'a> Div<&'a BigUint> for usize

§

type Output = BigUint

The resulting type after applying the / operator.
source§

fn div(self, other: &BigUint) -> BigUint

Performs the / operation. Read more
","Div<&'a BigUint>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Div<&usize> for usize

§

type Output = <usize as Div>::Output

The resulting type after applying the / operator.
source§

fn div(self, other: &usize) -> <usize as Div>::Output

Performs the / operation. Read more
","Div<&usize>","tor_interface::tor_provider::CircuitToken"],["
source§

impl Div<BigInt> for usize

§

type Output = BigInt

The resulting type after applying the / operator.
source§

fn div(self, other: BigInt) -> BigInt

Performs the / operation. Read more
","Div","tor_interface::tor_provider::CircuitToken"],["
source§

impl Div<BigUint> for usize

§

type Output = BigUint

The resulting type after applying the / operator.
source§

fn div(self, other: BigUint) -> BigUint

Performs the / operation. Read more
","Div","tor_interface::tor_provider::CircuitToken"],["
1.51.0 · source§

impl Div<NonZero<usize>> for usize

source§

fn div(self, other: NonZero<usize>) -> usize

This operation rounds towards zero, truncating any fractional\npart of the exact result, and cannot panic.

\n
§

type Output = usize

The resulting type after applying the / operator.
","Div>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Div for usize

This operation rounds towards zero, truncating any\nfractional part of the exact result.

\n

§Panics

\n

This operation will panic if other == 0.

\n
§

type Output = usize

The resulting type after applying the / operator.
source§

fn div(self, other: usize) -> usize

Performs the / operation. Read more
","Div","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl DivAssign<&usize> for usize

source§

fn div_assign(&mut self, other: &usize)

Performs the /= operation. Read more
","DivAssign<&usize>","tor_interface::tor_provider::CircuitToken"],["
1.79.0 · source§

impl DivAssign<NonZero<usize>> for usize

source§

fn div_assign(&mut self, other: NonZero<usize>)

This operation rounds towards zero, truncating any fractional\npart of the exact result, and cannot panic.

\n
","DivAssign>","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl DivAssign for usize

source§

fn div_assign(&mut self, other: usize)

Performs the /= operation. Read more
","DivAssign","tor_interface::tor_provider::CircuitToken"],["
§

impl Encode for usize

Encode a usize as a uint32 as described in RFC4251 § 5.

\n

Uses [Encode] impl on u32 after converting from a usize, handling\npotential overflow if usize is bigger than u32.

\n
§

fn encoded_len(&self) -> Result<usize, Error>

Get the length of this type encoded in bytes, prior to Base64 encoding.
§

fn encode(&self, writer: &mut impl Writer) -> Result<(), Error>

Encode this value using the provided [Writer].
§

fn encoded_len_prefixed(&self) -> Result<usize, Error>

Return the length of this type after encoding when prepended with a\nuint32 length prefix.
§

fn encode_prefixed(&self, writer: &mut impl Writer) -> Result<(), Error>

Encode this value, first prepending a uint32 length prefix\nset to [Encode::encoded_len].
","Encode","tor_interface::tor_provider::CircuitToken"],["
source§

impl Euclid for usize

source§

fn div_euclid(&self, v: &usize) -> usize

Calculates Euclidean division, the matching method for rem_euclid. Read more
source§

fn rem_euclid(&self, v: &usize) -> usize

Calculates the least nonnegative remainder of self (mod v). Read more
source§

fn div_rem_euclid(&self, v: &Self) -> (Self, Self)

Returns both the quotient and remainder from Euclidean division. Read more
","Euclid","tor_interface::tor_provider::CircuitToken"],["
source§

impl FmtConst for usize

source§

fn fmt_const(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Print a const expression representing this value.
","FmtConst","tor_interface::tor_provider::CircuitToken"],["
source§

impl From<Alignment> for usize

source§

fn from(align: Alignment) -> usize

Converts to this type from the input type.
","From","tor_interface::tor_provider::CircuitToken"],["
§

impl From<ByteQty> for usize

§

fn from(value: ByteQty) -> usize

Converts to this type from the input type.
","From","tor_interface::tor_provider::CircuitToken"],["
§

impl From<HopNum> for usize

§

fn from(hop: HopNum) -> usize

Converts to this type from the input type.
","From","tor_interface::tor_provider::CircuitToken"],["
§

impl From<HsDirPos> for usize

§

fn from(value: HsDirPos) -> usize

Converts to this type from the input type.
","From","tor_interface::tor_provider::CircuitToken"],["
§

impl From<IntroPtIndex> for usize

§

fn from(value: IntroPtIndex) -> usize

Converts to this type from the input type.
","From","tor_interface::tor_provider::CircuitToken"],["
§

impl<const MIN: usize, const MAX: usize> From<RangedUsize<MIN, MAX>> for usize

§

fn from(value: RangedUsize<MIN, MAX>) -> usize

Converts to this type from the input type.
","From>","tor_interface::tor_provider::CircuitToken"],["
§

impl From<RouterStatusIdx> for usize

§

fn from(value: RouterStatusIdx) -> usize

Converts to this type from the input type.
","From","tor_interface::tor_provider::CircuitToken"],["
§

impl From<State> for usize

§

fn from(src: State) -> usize

Converts to this type from the input type.
","From","tor_interface::tor_provider::CircuitToken"],["
§

impl From<Token> for usize

§

fn from(val: Token) -> usize

Converts to this type from the input type.
","From","tor_interface::tor_provider::CircuitToken"],["
§

impl<O> From<U16<O>> for usize
where\n O: ByteOrder,

§

fn from(x: U16<O>) -> usize

Converts to this type from the input type.
","From>","tor_interface::tor_provider::CircuitToken"],["
1.28.0 · source§

impl From<bool> for usize

source§

fn from(small: bool) -> usize

Converts a bool to usize losslessly.\nThe resulting value is 0 for false and 1 for true values.

\n
§Examples
\n
assert_eq!(usize::from(true), 1);\nassert_eq!(usize::from(false), 0);
\n
","From","tor_interface::tor_provider::CircuitToken"],["
1.26.0 · source§

impl From<u16> for usize

source§

fn from(small: u16) -> usize

Converts u16 to usize losslessly.

\n
","From","tor_interface::tor_provider::CircuitToken"],["
§

impl From<u24> for usize

§

fn from(val: u24) -> usize

Converts to this type from the input type.
","From","tor_interface::tor_provider::CircuitToken"],["
§

impl From<u40> for usize

§

fn from(val: u40) -> usize

Converts to this type from the input type.
","From","tor_interface::tor_provider::CircuitToken"],["
§

impl From<u48> for usize

§

fn from(val: u48) -> usize

Converts to this type from the input type.
","From","tor_interface::tor_provider::CircuitToken"],["
§

impl From<u56> for usize

§

fn from(val: u56) -> usize

Converts to this type from the input type.
","From","tor_interface::tor_provider::CircuitToken"],["
1.5.0 · source§

impl From<u8> for usize

source§

fn from(small: u8) -> usize

Converts u8 to usize losslessly.

\n
","From","tor_interface::tor_provider::CircuitToken"],["
source§

impl FromBytes for usize

§

type Bytes = [u8; 8]

source§

fn from_be_bytes(bytes: &<usize as FromBytes>::Bytes) -> usize

Create a number from its representation as a byte array in big endian. Read more
source§

fn from_le_bytes(bytes: &<usize as FromBytes>::Bytes) -> usize

Create a number from its representation as a byte array in little endian. Read more
source§

fn from_ne_bytes(bytes: &<usize as FromBytes>::Bytes) -> usize

Create a number from its memory representation as a byte array in native endianness. Read more
","FromBytes","tor_interface::tor_provider::CircuitToken"],["
§

impl FromBytes for usize

§

fn ref_from(bytes: &[u8]) -> Option<&Self>
where\n Self: Sized,

Interprets the given bytes as a &Self without copying. Read more
§

fn ref_from_prefix(bytes: &[u8]) -> Option<&Self>
where\n Self: Sized,

Interprets the prefix of the given bytes as a &Self without copying. Read more
§

fn ref_from_suffix(bytes: &[u8]) -> Option<&Self>
where\n Self: Sized,

Interprets the suffix of the given bytes as a &Self without copying. Read more
§

fn mut_from(bytes: &mut [u8]) -> Option<&mut Self>
where\n Self: Sized + AsBytes,

Interprets the given bytes as a &mut Self without copying. Read more
§

fn mut_from_prefix(bytes: &mut [u8]) -> Option<&mut Self>
where\n Self: Sized + AsBytes,

Interprets the prefix of the given bytes as a &mut Self without\ncopying. Read more
§

fn mut_from_suffix(bytes: &mut [u8]) -> Option<&mut Self>
where\n Self: Sized + AsBytes,

Interprets the suffix of the given bytes as a &mut Self without copying. Read more
§

fn slice_from(bytes: &[u8]) -> Option<&[Self]>
where\n Self: Sized,

Interprets the given bytes as a &[Self] without copying. Read more
§

fn slice_from_prefix(bytes: &[u8], count: usize) -> Option<(&[Self], &[u8])>
where\n Self: Sized,

Interprets the prefix of the given bytes as a &[Self] with length\nequal to count without copying. Read more
§

fn slice_from_suffix(bytes: &[u8], count: usize) -> Option<(&[u8], &[Self])>
where\n Self: Sized,

Interprets the suffix of the given bytes as a &[Self] with length\nequal to count without copying. Read more
§

fn mut_slice_from(bytes: &mut [u8]) -> Option<&mut [Self]>
where\n Self: Sized + AsBytes,

Interprets the given bytes as a &mut [Self] without copying. Read more
§

fn mut_slice_from_prefix(\n bytes: &mut [u8],\n count: usize,\n) -> Option<(&mut [Self], &mut [u8])>
where\n Self: Sized + AsBytes,

Interprets the prefix of the given bytes as a &mut [Self] with length\nequal to count without copying. Read more
§

fn mut_slice_from_suffix(\n bytes: &mut [u8],\n count: usize,\n) -> Option<(&mut [u8], &mut [Self])>
where\n Self: Sized + AsBytes,

Interprets the suffix of the given bytes as a &mut [Self] with length\nequal to count without copying. Read more
§

fn read_from(bytes: &[u8]) -> Option<Self>
where\n Self: Sized,

Reads a copy of Self from bytes. Read more
§

fn read_from_prefix(bytes: &[u8]) -> Option<Self>
where\n Self: Sized,

Reads a copy of Self from the prefix of bytes. Read more
§

fn read_from_suffix(bytes: &[u8]) -> Option<Self>
where\n Self: Sized,

Reads a copy of Self from the suffix of bytes. Read more
","FromBytes","tor_interface::tor_provider::CircuitToken"],["
source§

impl FromPrimitive for usize

source§

fn from_isize(n: isize) -> Option<usize>

Converts an isize to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_i8(n: i8) -> Option<usize>

Converts an i8 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_i16(n: i16) -> Option<usize>

Converts an i16 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_i32(n: i32) -> Option<usize>

Converts an i32 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_i64(n: i64) -> Option<usize>

Converts an i64 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_i128(n: i128) -> Option<usize>

Converts an i128 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned. Read more
source§

fn from_usize(n: usize) -> Option<usize>

Converts a usize to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_u8(n: u8) -> Option<usize>

Converts an u8 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_u16(n: u16) -> Option<usize>

Converts an u16 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_u32(n: u32) -> Option<usize>

Converts an u32 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_u64(n: u64) -> Option<usize>

Converts an u64 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_u128(n: u128) -> Option<usize>

Converts an u128 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned. Read more
source§

fn from_f32(n: f32) -> Option<usize>

Converts a f32 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_f64(n: f64) -> Option<usize>

Converts a f64 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned. Read more
","FromPrimitive","tor_interface::tor_provider::CircuitToken"],["
§

impl FromSql for usize

§

fn column_result(value: ValueRef<'_>) -> Result<usize, FromSqlError>

Converts SQLite value into Rust value.
","FromSql","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl FromStr for usize

§

type Err = ParseIntError

The associated error which can be returned from parsing.
source§

fn from_str(src: &str) -> Result<usize, ParseIntError>

Parses a string s to return a value of this type. Read more
","FromStr","tor_interface::tor_provider::CircuitToken"],["
§

impl FromZeroes for usize

§

fn zero(&mut self)

Overwrites self with zeroes. Read more
§

fn new_zeroed() -> Self
where\n Self: Sized,

Creates an instance of Self from zeroed bytes. Read more
","FromZeroes","tor_interface::tor_provider::CircuitToken"],["
§

impl Fundamental for usize

§

fn as_bool(self) -> bool

Tests self != 0.
§

fn as_char(self) -> Option<char>

Represents self as a Unicode Scalar Value, if possible.
§

fn as_i8(self) -> i8

Performs self as i8.
§

fn as_i16(self) -> i16

Performs self as i16.
§

fn as_i32(self) -> i32

Performs self as i32.
§

fn as_i64(self) -> i64

Performs self as i64.
§

fn as_i128(self) -> i128

Performs self as i128.
§

fn as_isize(self) -> isize

Performs self as isize.
§

fn as_u8(self) -> u8

Performs self as u8.
§

fn as_u16(self) -> u16

Performs self as u16.
§

fn as_u32(self) -> u32

Performs self as u32.
§

fn as_u64(self) -> u64

Performs self as u64.
§

fn as_u128(self) -> u128

Performs self as u128.
§

fn as_usize(self) -> usize

Performs self as usize.
§

fn as_f32(self) -> f32

Performs self as f32.
§

fn as_f64(self) -> f64

Performs self as f64.
","Fundamental","tor_interface::tor_provider::CircuitToken"],["
§

impl HasMemoryCostStructural for usize

§

fn indirect_memory_cost(&self, _et: EnabledToken) -> usize

Memory cost of data stored out-of-line Read more
","HasMemoryCostStructural","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Hash for usize

source§

fn hash<H>(&self, state: &mut H)
where\n H: Hasher,

Feeds this value into the given Hasher. Read more
source§

fn hash_slice<H>(data: &[usize], state: &mut H)
where\n H: Hasher,

Feeds a slice of this type into the given Hasher. Read more
","Hash","tor_interface::tor_provider::CircuitToken"],["
source§

impl Integer for usize

source§

fn div_floor(&self, other: &usize) -> usize

Unsigned integer division. Returns the same result as div (/).

\n
source§

fn mod_floor(&self, other: &usize) -> usize

Unsigned integer modulo operation. Returns the same result as rem (%).

\n
source§

fn gcd(&self, other: &usize) -> usize

Calculates the Greatest Common Divisor (GCD) of the number and other

\n
source§

fn lcm(&self, other: &usize) -> usize

Calculates the Lowest Common Multiple (LCM) of the number and other.

\n
source§

fn gcd_lcm(&self, other: &usize) -> (usize, usize)

Calculates the Greatest Common Divisor (GCD) and\nLowest Common Multiple (LCM) of the number and other.

\n
source§

fn is_multiple_of(&self, other: &usize) -> bool

Returns true if the number is a multiple of other.

\n
source§

fn is_even(&self) -> bool

Returns true if the number is divisible by 2.

\n
source§

fn is_odd(&self) -> bool

Returns true if the number is not divisible by 2.

\n
source§

fn div_rem(&self, other: &usize) -> (usize, usize)

Simultaneous truncated integer division and modulus.

\n
source§

fn div_ceil(&self, other: &usize) -> usize

Ceiled integer division. Read more
source§

fn extended_gcd_lcm(&self, other: &usize) -> (ExtendedGcd<usize>, usize)

Greatest common divisor, least common multiple, and Bézout coefficients.
source§

fn extended_gcd(&self, other: &Self) -> ExtendedGcd<Self>
where\n Self: Clone,

Greatest common divisor and Bézout coefficients. Read more
source§

fn divides(&self, other: &Self) -> bool

👎Deprecated: Please use is_multiple_of instead
Deprecated, use is_multiple_of instead.
source§

fn div_mod_floor(&self, other: &Self) -> (Self, Self)

Simultaneous floored integer division and modulus.\nReturns (quotient, remainder). Read more
source§

fn next_multiple_of(&self, other: &Self) -> Self
where\n Self: Clone,

Rounds up to nearest multiple of argument. Read more
source§

fn prev_multiple_of(&self, other: &Self) -> Self
where\n Self: Clone,

Rounds down to nearest multiple of argument. Read more
source§

fn dec(&mut self)
where\n Self: Clone,

Decrements self by one. Read more
source§

fn inc(&mut self)
where\n Self: Clone,

Increments self by one. Read more
","Integer","tor_interface::tor_provider::CircuitToken"],["
§

impl Integral for usize

§

const ZERO: usize = 0usize

The type’s zero value.
§

const ONE: usize = 1usize

The type’s step value.
§

const MIN: usize = 0usize

The type’s minimum value. This is zero for unsigned integers.
§

const MAX: usize = 18_446_744_073_709_551_615usize

The type’s maximum value.
§

const BITS: u32 = 64u32

The size of this type in bits.
§

fn min_value() -> usize

Returns the smallest value that can be represented by this integer type.
§

fn max_value() -> usize

Returns the largest value that can be represented by this integer type.
§

fn from_str_radix(src: &str, radix: u32) -> Result<usize, ParseIntError>

Converts a string slice in a given base to an integer. Read more
§

fn count_ones(self) -> u32

Returns the number of ones in the binary representation of self.
§

fn count_zeros(self) -> u32

Returns the number of zeros in the binary representation of self.
§

fn leading_zeros(self) -> u32

Returns the number of leading zeros in the binary representation of\nself.
§

fn trailing_zeros(self) -> u32

Returns the number of trailing zeros in the binary representation of\nself.
§

fn leading_ones(self) -> u32

Returns the number of leading ones in the binary representation of\nself.
§

fn trailing_ones(self) -> u32

Returns the number of trailing ones in the binary representation of\nself.
§

fn rotate_left(self, n: u32) -> usize

Shifts the bits to the left by a specified amount, n, wrapping the\ntruncated bits to the end of the resulting integer. Read more
§

fn rotate_right(self, n: u32) -> usize

Shifts the bits to the right by a specified amount, n, wrapping the\ntruncated bits to the beginning of the resulting integer. Read more
§

fn swap_bytes(self) -> usize

Reverses the byte order of the integer.
§

fn reverse_bits(self) -> usize

Reverses the bit pattern of the integer.
§

fn from_be(self) -> usize

Converts an integer from big endian to the target’s endianness. Read more
§

fn from_le(self) -> usize

Converts an integer frm little endian to the target’s endianness. Read more
§

fn to_be(self) -> usize

Converts self to big endian from the target’s endianness. Read more
§

fn to_le(self) -> usize

Converts self to little endian from the target’s endianness. Read more
§

fn checked_add(self, rhs: usize) -> Option<usize>

Checked integer addition. Computes self + rhs, returning None if\noverflow occurred.
§

fn checked_sub(self, rhs: usize) -> Option<usize>

Checked integer subtraction. Computes self - rhs, returning None if\noverflow occurred.
§

fn checked_mul(self, rhs: usize) -> Option<usize>

Checked integer multiplication. Computes self * rhs, returning None\nif overflow occurred.
§

fn checked_div(self, rhs: usize) -> Option<usize>

Checked integer division. Computes self / rhs, returning None if\nrhs == 0 or the division results in overflow.
§

fn checked_div_euclid(self, rhs: usize) -> Option<usize>

Checked Euclidean division. Computes self.div_euclid(rhs), returning\nNone if rhs == 0 or the division results in overflow.
§

fn checked_rem(self, rhs: usize) -> Option<usize>

Checked integer remainder. Computes self % rhs, returning None if\nrhs == 0 or the division results in overflow.
§

fn checked_rem_euclid(self, rhs: usize) -> Option<usize>

Checked Euclidean remainder. Computes self.rem_euclid(rhs), returning\nNone if rhs == 0 or the division results in overflow.
§

fn checked_neg(self) -> Option<usize>

Checked negation. Computes -self, returning None if self == MIN. Read more
§

fn checked_shl(self, rhs: u32) -> Option<usize>

Checked shift left. Computes self << rhs, returning None if rhs is\nlarger than or equal to the number of bits in self.
§

fn checked_shr(self, rhs: u32) -> Option<usize>

Checked shift right. Computes self >> rhs, returning None if rhs\nis larger than or equal to the number of bits in self.
§

fn checked_pow(self, rhs: u32) -> Option<usize>

Checked exponentiation. Computes self.pow(exp), returning None if\noverflow occurred.
§

fn saturating_add(self, rhs: usize) -> usize

Saturating integer addition. Computes self + rhs, saturating at the\nnumeric bounds instead of overflowing.
§

fn saturating_sub(self, rhs: usize) -> usize

Saturating integer subtraction. Computes self - rhs, saturating at the\nnumeric bounds instead of overflowing.
§

fn saturating_mul(self, rhs: usize) -> usize

Saturating integer multiplication. Computes self * rhs, saturating at\nthe numeric bounds instead of overflowing.
§

fn saturating_pow(self, rhs: u32) -> usize

Saturating integer exponentiation. Computes self.pow(exp), saturating\nat the numeric bounds instead of overflowing.
§

fn wrapping_add(self, rhs: usize) -> usize

Wrapping (modular) addition. Computes self + rhs, wrapping around at\nthe boundary of the type.
§

fn wrapping_sub(self, rhs: usize) -> usize

Wrapping (modular) subtraction. Computes self - rhs, wrapping around\nat the boundary of the type.
§

fn wrapping_mul(self, rhs: usize) -> usize

Wrapping (modular) multiplication. Computes self * rhs, wrapping\naround at the boundary of the type.
§

fn wrapping_div(self, rhs: usize) -> usize

Wrapping (modular) division. Computes self / rhs, wrapping around at\nthe boundary of the type. Read more
§

fn wrapping_div_euclid(self, rhs: usize) -> usize

Wrapping Euclidean division. Computes self.div_euclid(rhs), wrapping\naround at the boundary of the type. Read more
§

fn wrapping_rem(self, rhs: usize) -> usize

Wrapping (modular) remainder. Computes self % rhs, wrapping around at\nthe boundary of the type. Read more
§

fn wrapping_rem_euclid(self, rhs: usize) -> usize

Wrapping Euclidean remainder. Computes self.rem_euclid(rhs), wrapping\naround at the boundary of the type. Read more
§

fn wrapping_neg(self) -> usize

Wrapping (modular) negation. Computes -self, wrapping around at the\nboundary of the type. Read more
§

fn wrapping_shl(self, rhs: u32) -> usize

Panic-free bitwise shift-left; yields self << mask(rhs), where mask\nremoves any high-order bits of rhs that would cause the shift to\nexceed the bit-width of the type. Read more
§

fn wrapping_shr(self, rhs: u32) -> usize

Panic-free bitwise shift-right; yields self >> mask(rhs), where mask\nremoves any high-order bits of rhs that would cause the shift to\nexceed the bit-width of the type. Read more
§

fn wrapping_pow(self, rhs: u32) -> usize

Wrapping (modular) exponentiation. Computes self.pow(exp), wrapping\naround at the boundary of the type.
§

fn overflowing_add(self, rhs: usize) -> (usize, bool)

Calculates self + rhs Read more
§

fn overflowing_sub(self, rhs: usize) -> (usize, bool)

Calculates self - rhs Read more
§

fn overflowing_mul(self, rhs: usize) -> (usize, bool)

Calculates the multiplication of self and rhs. Read more
§

fn overflowing_div(self, rhs: usize) -> (usize, bool)

Calculates the divisor when self is divided by rhs. Read more
§

fn overflowing_div_euclid(self, rhs: usize) -> (usize, bool)

Calculates the quotient of Euclidean division self.div_euclid(rhs). Read more
§

fn overflowing_rem(self, rhs: usize) -> (usize, bool)

Calculates the remainder when self is divided by rhs. Read more
§

fn overflowing_rem_euclid(self, rhs: usize) -> (usize, bool)

Overflowing Euclidean remainder. Calculates self.rem_euclid(rhs). Read more
§

fn overflowing_neg(self) -> (usize, bool)

Negates self, overflowing if this is equal to the minimum value. Read more
§

fn overflowing_shl(self, rhs: u32) -> (usize, bool)

Shifts self left by rhs bits. Read more
§

fn overflowing_shr(self, rhs: u32) -> (usize, bool)

Shifts self right by rhs bits. Read more
§

fn overflowing_pow(self, rhs: u32) -> (usize, bool)

Raises self to the power of exp, using exponentiation by squaring. Read more
§

fn pow(self, rhs: u32) -> usize

Raises self to the power of exp, using exponentiation by squaring.
§

fn div_euclid(self, rhs: usize) -> usize

Calculates the quotient of Euclidean division of self by rhs. Read more
§

fn rem_euclid(self, rhs: usize) -> usize

Calculates the least nonnegative remainder of self (mod rhs). Read more
","Integral","tor_interface::tor_provider::CircuitToken"],["
source§

impl IntoBigInt for usize

source§

fn into_bigint(self) -> Option<BigInt>

Converts the value of self to a BigInt.
","IntoBigInt","tor_interface::tor_provider::CircuitToken"],["
source§

impl IntoBigUint for usize

source§

fn into_biguint(self) -> Option<BigUint>

Converts the value of self to a BigUint.
","IntoBigUint","tor_interface::tor_provider::CircuitToken"],["
source§

impl<'de, E> IntoDeserializer<'de, E> for usize
where\n E: Error,

§

type Deserializer = UsizeDeserializer<E>

The type of the deserializer being converted into.
source§

fn into_deserializer(self) -> UsizeDeserializer<E>

Convert this value into a deserializer.
","IntoDeserializer<'de, E>","tor_interface::tor_provider::CircuitToken"],["
§

impl IntoNotification for usize

§

type Tag = ()

The tag data associated with a notification. Read more
§

type Notify = Notify

The notification type. Read more
§

fn into_notification(self) -> <usize as IntoNotification>::Notify

Convert this value into a notification. Read more
§

fn additional(self) -> Additional<Self::Notify>
where\n Self: Sized,

Convert this value into an additional notification. Read more
§

fn relaxed(self) -> Relaxed<Self::Notify>
where\n Self: Sized,

Don’t emit a fence for this notification. Read more
§

fn tag<T>(self, tag: T) -> Tag<Self::Notify, T>
where\n T: Clone,\n Self: Sized + IntoNotification<Tag = ()>,

Use a tag with this notification. Read more
§

fn tag_with<T, F>(self, tag: F) -> TagWith<Self::Notify, F>
where\n Self: Sized + IntoNotification<Tag = ()>,\n F: FnMut() -> T,

Use a function to generate a tag with this notification. Read more
","IntoNotification","tor_interface::tor_provider::CircuitToken"],["
1.42.0 · source§

impl LowerExp for usize

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","LowerExp","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl LowerHex for usize

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","LowerHex","tor_interface::tor_provider::CircuitToken"],["
source§

impl<'a> Mul<&'a BigInt> for usize

§

type Output = BigInt

The resulting type after applying the * operator.
source§

fn mul(self, other: &BigInt) -> BigInt

Performs the * operation. Read more
","Mul<&'a BigInt>","tor_interface::tor_provider::CircuitToken"],["
source§

impl<'a> Mul<&'a BigUint> for usize

§

type Output = BigUint

The resulting type after applying the * operator.
source§

fn mul(self, other: &BigUint) -> BigUint

Performs the * operation. Read more
","Mul<&'a BigUint>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Mul<&usize> for usize

§

type Output = <usize as Mul>::Output

The resulting type after applying the * operator.
source§

fn mul(self, other: &usize) -> <usize as Mul>::Output

Performs the * operation. Read more
","Mul<&usize>","tor_interface::tor_provider::CircuitToken"],["
source§

impl Mul<BigInt> for usize

§

type Output = BigInt

The resulting type after applying the * operator.
source§

fn mul(self, other: BigInt) -> BigInt

Performs the * operation. Read more
","Mul","tor_interface::tor_provider::CircuitToken"],["
source§

impl Mul<BigUint> for usize

§

type Output = BigUint

The resulting type after applying the * operator.
source§

fn mul(self, other: BigUint) -> BigUint

Performs the * operation. Read more
","Mul","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Mul for usize

§

type Output = usize

The resulting type after applying the * operator.
source§

fn mul(self, other: usize) -> usize

Performs the * operation. Read more
","Mul","tor_interface::tor_provider::CircuitToken"],["
source§

impl MulAdd for usize

§

type Output = usize

The resulting type after applying the fused multiply-add.
source§

fn mul_add(self, a: usize, b: usize) -> <usize as MulAdd>::Output

Performs the fused multiply-add operation (self * a) + b
","MulAdd","tor_interface::tor_provider::CircuitToken"],["
source§

impl MulAddAssign for usize

source§

fn mul_add_assign(&mut self, a: usize, b: usize)

Performs the fused multiply-add assignment operation *self = (*self * a) + b
","MulAddAssign","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl MulAssign<&usize> for usize

source§

fn mul_assign(&mut self, other: &usize)

Performs the *= operation. Read more
","MulAssign<&usize>","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl MulAssign for usize

source§

fn mul_assign(&mut self, other: usize)

Performs the *= operation. Read more
","MulAssign","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Not for usize

§

type Output = usize

The resulting type after applying the ! operator.
source§

fn not(self) -> usize

Performs the unary ! operation. Read more
","Not","tor_interface::tor_provider::CircuitToken"],["
source§

impl Num for usize

§

type FromStrRadixErr = ParseIntError

source§

fn from_str_radix(s: &str, radix: u32) -> Result<usize, ParseIntError>

Convert from a string and radix (typically 2..=36). Read more
","Num","tor_interface::tor_provider::CircuitToken"],["
source§

impl NumCast for usize

source§

fn from<N>(n: N) -> Option<usize>
where\n N: ToPrimitive,

Creates a number from another value that can be converted into\na primitive via the ToPrimitive trait. If the source value cannot be\nrepresented by the target type, then None is returned. Read more
","NumCast","tor_interface::tor_provider::CircuitToken"],["
§

impl Numeric for usize

§

type Bytes = [u8; 8]

The [u8; N] byte array that stores values of Self.
§

fn to_be_bytes(self) -> <usize as Numeric>::Bytes

Return the memory representation of this number as a byte array in\nbig-endian (network) byte order.
§

fn to_le_bytes(self) -> <usize as Numeric>::Bytes

Return the memory representation of this number as a byte array in\nlittle-endian byte order.
§

fn to_ne_bytes(self) -> <usize as Numeric>::Bytes

Return the memory representation of this number as a byte array in\nnative byte order.
§

fn from_be_bytes(bytes: <usize as Numeric>::Bytes) -> usize

Create a numeric value from its representation as a byte array in big\nendian.
§

fn from_le_bytes(bytes: <usize as Numeric>::Bytes) -> usize

Create a numeric value from its representation as a byte array in little\nendian.
§

fn from_ne_bytes(bytes: <usize as Numeric>::Bytes) -> usize

Create a numeric value from its memory representation as a byte array in\nnative endianness.
","Numeric","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Octal for usize

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","Octal","tor_interface::tor_provider::CircuitToken"],["
source§

impl One for usize

source§

fn one() -> usize

Returns the multiplicative identity element of Self, 1. Read more
source§

fn is_one(&self) -> bool

Returns true if self is equal to the multiplicative identity. Read more
source§

fn set_one(&mut self)

Sets self to the multiplicative identity element of Self, 1.
","One","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Ord for usize

source§

fn cmp(&self, other: &usize) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where\n Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where\n Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where\n Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
","Ord","tor_interface::tor_provider::CircuitToken"],["
source§

impl OverflowingAdd for usize

source§

fn overflowing_add(&self, v: &usize) -> (usize, bool)

Returns a tuple of the sum along with a boolean indicating whether an arithmetic overflow would occur.\nIf an overflow would have occurred then the wrapped value is returned.
","OverflowingAdd","tor_interface::tor_provider::CircuitToken"],["
source§

impl OverflowingMul for usize

source§

fn overflowing_mul(&self, v: &usize) -> (usize, bool)

Returns a tuple of the product along with a boolean indicating whether an arithmetic overflow would occur.\nIf an overflow would have occurred then the wrapped value is returned.
","OverflowingMul","tor_interface::tor_provider::CircuitToken"],["
source§

impl OverflowingSub for usize

source§

fn overflowing_sub(&self, v: &usize) -> (usize, bool)

Returns a tuple of the difference along with a boolean indicating whether an arithmetic overflow would occur.\nIf an overflow would have occurred then the wrapped value is returned.
","OverflowingSub","tor_interface::tor_provider::CircuitToken"],["
§

impl ParseHex for usize

§

fn parse_hex(input: &str) -> Result<usize, ParseError>

Parse the value from hex.
","ParseHex","tor_interface::tor_provider::CircuitToken"],["
source§

impl PartialEq<Value> for usize

source§

fn eq(&self, other: &Value) -> bool

This method tests for self and other values to be equal, and is used\nby ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
","PartialEq","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl PartialEq for usize

source§

fn eq(&self, other: &usize) -> bool

This method tests for self and other values to be equal, and is used\nby ==.
source§

fn ne(&self, other: &usize) -> bool

This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
","PartialEq","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl PartialOrd for usize

source§

fn partial_cmp(&self, other: &usize) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, other: &usize) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, other: &usize) -> bool

This method tests less than or equal to (for self and other) and is used by the <=\noperator. Read more
source§

fn ge(&self, other: &usize) -> bool

This method tests greater than or equal to (for self and other) and is used by the >=\noperator. Read more
source§

fn gt(&self, other: &usize) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
","PartialOrd","tor_interface::tor_provider::CircuitToken"],["
source§

impl PhfBorrow<usize> for usize

source§

fn borrow(&self) -> &usize

Convert a reference to self to a reference to the borrowed type.
","PhfBorrow","tor_interface::tor_provider::CircuitToken"],["
source§

impl PhfHash for usize

source§

fn phf_hash<H>(&self, state: &mut H)
where\n H: Hasher,

Feeds the value into the state given, updating the hasher as necessary.
source§

fn phf_hash_slice<H>(data: &[Self], state: &mut H)
where\n H: Hasher,\n Self: Sized,

Feeds a slice of this type into the state provided.
","PhfHash","tor_interface::tor_provider::CircuitToken"],["
source§

impl<'a> Pow<&'a u16> for usize

§

type Output = usize

The result after applying the operator.
source§

fn pow(self, rhs: &'a u16) -> usize

Returns self to the power rhs. Read more
","Pow<&'a u16>","tor_interface::tor_provider::CircuitToken"],["
source§

impl<'a> Pow<&'a u32> for usize

§

type Output = usize

The result after applying the operator.
source§

fn pow(self, rhs: &'a u32) -> usize

Returns self to the power rhs. Read more
","Pow<&'a u32>","tor_interface::tor_provider::CircuitToken"],["
source§

impl<'a> Pow<&'a u8> for usize

§

type Output = usize

The result after applying the operator.
source§

fn pow(self, rhs: &'a u8) -> usize

Returns self to the power rhs. Read more
","Pow<&'a u8>","tor_interface::tor_provider::CircuitToken"],["
source§

impl<'a> Pow<&'a usize> for usize

§

type Output = usize

The result after applying the operator.
source§

fn pow(self, rhs: &'a usize) -> usize

Returns self to the power rhs. Read more
","Pow<&'a usize>","tor_interface::tor_provider::CircuitToken"],["
source§

impl<U> Pow<PInt<U>> for usize
where\n U: Unsigned + NonZero,

§

type Output = usize

The result of the exponentiation.
source§

fn powi(self, _: PInt<U>) -> <usize as Pow<PInt<U>>>::Output

This function isn’t used in this crate, but may be useful for others.\nIt is implemented for primitives. Read more
","Pow>","tor_interface::tor_provider::CircuitToken"],["
source§

impl<U, B> Pow<UInt<U, B>> for usize
where\n U: Unsigned,\n B: Bit,

§

type Output = usize

The result of the exponentiation.
source§

fn powi(self, _: UInt<U, B>) -> <usize as Pow<UInt<U, B>>>::Output

This function isn’t used in this crate, but may be useful for others.\nIt is implemented for primitives. Read more
","Pow>","tor_interface::tor_provider::CircuitToken"],["
source§

impl Pow<UTerm> for usize

§

type Output = usize

The result of the exponentiation.
source§

fn powi(self, _: UTerm) -> <usize as Pow<UTerm>>::Output

This function isn’t used in this crate, but may be useful for others.\nIt is implemented for primitives. Read more
","Pow","tor_interface::tor_provider::CircuitToken"],["
source§

impl Pow<Z0> for usize

§

type Output = usize

The result of the exponentiation.
source§

fn powi(self, _: Z0) -> <usize as Pow<Z0>>::Output

This function isn’t used in this crate, but may be useful for others.\nIt is implemented for primitives. Read more
","Pow","tor_interface::tor_provider::CircuitToken"],["
source§

impl Pow<u16> for usize

§

type Output = usize

The result after applying the operator.
source§

fn pow(self, rhs: u16) -> usize

Returns self to the power rhs. Read more
","Pow","tor_interface::tor_provider::CircuitToken"],["
source§

impl Pow<u32> for usize

§

type Output = usize

The result after applying the operator.
source§

fn pow(self, rhs: u32) -> usize

Returns self to the power rhs. Read more
","Pow","tor_interface::tor_provider::CircuitToken"],["
source§

impl Pow<u8> for usize

§

type Output = usize

The result after applying the operator.
source§

fn pow(self, rhs: u8) -> usize

Returns self to the power rhs. Read more
","Pow","tor_interface::tor_provider::CircuitToken"],["
source§

impl Pow<usize> for usize

§

type Output = usize

The result after applying the operator.
source§

fn pow(self, rhs: usize) -> usize

Returns self to the power rhs. Read more
","Pow","tor_interface::tor_provider::CircuitToken"],["
source§

impl PrimInt for usize

source§

fn count_ones(self) -> u32

Returns the number of ones in the binary representation of self. Read more
source§

fn count_zeros(self) -> u32

Returns the number of zeros in the binary representation of self. Read more
source§

fn leading_ones(self) -> u32

Returns the number of leading ones in the binary representation\nof self. Read more
source§

fn leading_zeros(self) -> u32

Returns the number of leading zeros in the binary representation\nof self. Read more
source§

fn trailing_ones(self) -> u32

Returns the number of trailing ones in the binary representation\nof self. Read more
source§

fn trailing_zeros(self) -> u32

Returns the number of trailing zeros in the binary representation\nof self. Read more
source§

fn rotate_left(self, n: u32) -> usize

Shifts the bits to the left by a specified amount, n, wrapping\nthe truncated bits to the end of the resulting integer. Read more
source§

fn rotate_right(self, n: u32) -> usize

Shifts the bits to the right by a specified amount, n, wrapping\nthe truncated bits to the beginning of the resulting integer. Read more
source§

fn signed_shl(self, n: u32) -> usize

Shifts the bits to the left by a specified amount, n, filling\nzeros in the least significant bits. Read more
source§

fn signed_shr(self, n: u32) -> usize

Shifts the bits to the right by a specified amount, n, copying\nthe “sign bit” in the most significant bits even for unsigned types. Read more
source§

fn unsigned_shl(self, n: u32) -> usize

Shifts the bits to the left by a specified amount, n, filling\nzeros in the least significant bits. Read more
source§

fn unsigned_shr(self, n: u32) -> usize

Shifts the bits to the right by a specified amount, n, filling\nzeros in the most significant bits. Read more
source§

fn swap_bytes(self) -> usize

Reverses the byte order of the integer. Read more
source§

fn reverse_bits(self) -> usize

Reverses the order of bits in the integer. Read more
source§

fn from_be(x: usize) -> usize

Convert an integer from big endian to the target’s endianness. Read more
source§

fn from_le(x: usize) -> usize

Convert an integer from little endian to the target’s endianness. Read more
source§

fn to_be(self) -> usize

Convert self to big endian from the target’s endianness. Read more
source§

fn to_le(self) -> usize

Convert self to little endian from the target’s endianness. Read more
source§

fn pow(self, exp: u32) -> usize

Raises self to the power of exp, using exponentiation by squaring. Read more
","PrimInt","tor_interface::tor_provider::CircuitToken"],["
1.12.0 · source§

impl<'a> Product<&'a usize> for usize

source§

fn product<I>(iter: I) -> usize
where\n I: Iterator<Item = &'a usize>,

Method which takes an iterator and generates Self from the elements by\nmultiplying the items.
","Product<&'a usize>","tor_interface::tor_provider::CircuitToken"],["
1.12.0 · source§

impl Product for usize

source§

fn product<I>(iter: I) -> usize
where\n I: Iterator<Item = usize>,

Method which takes an iterator and generates Self from the elements by\nmultiplying the items.
","Product","tor_interface::tor_provider::CircuitToken"],["
§

impl<R> RangeExt<usize> for R
where\n R: RangeBounds<usize>,

§

fn normalize(\n self,\n start: impl Into<Option<usize>>,\n end: impl Into<Option<usize>>,\n) -> Range<usize>

Normalizes a range-like type to a canonical half-open Range. Read more
§

fn intersection<R2>(self, other: R2) -> Option<Range<usize>>
where\n R2: RangeExt<usize>,

Finds the intersection between two range-likes. The produced Range\nspans only the elements common to both. Read more
§

fn union<R2>(self, other: R2) -> Option<Range<usize>>
where\n R2: RangeExt<usize>,

Finds the union between two range-likes. The produced Range spans all\nelements present in at least one of them. Read more
","RangeExt","tor_interface::tor_provider::CircuitToken"],["
source§

impl<'a> Rem<&'a BigInt> for usize

§

type Output = BigInt

The resulting type after applying the % operator.
source§

fn rem(self, other: &BigInt) -> BigInt

Performs the % operation. Read more
","Rem<&'a BigInt>","tor_interface::tor_provider::CircuitToken"],["
source§

impl<'a> Rem<&'a BigUint> for usize

§

type Output = BigUint

The resulting type after applying the % operator.
source§

fn rem(self, other: &BigUint) -> BigUint

Performs the % operation. Read more
","Rem<&'a BigUint>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Rem<&usize> for usize

§

type Output = <usize as Rem>::Output

The resulting type after applying the % operator.
source§

fn rem(self, other: &usize) -> <usize as Rem>::Output

Performs the % operation. Read more
","Rem<&usize>","tor_interface::tor_provider::CircuitToken"],["
source§

impl Rem<BigInt> for usize

§

type Output = BigInt

The resulting type after applying the % operator.
source§

fn rem(self, other: BigInt) -> BigInt

Performs the % operation. Read more
","Rem","tor_interface::tor_provider::CircuitToken"],["
source§

impl Rem<BigUint> for usize

§

type Output = BigUint

The resulting type after applying the % operator.
source§

fn rem(self, other: BigUint) -> BigUint

Performs the % operation. Read more
","Rem","tor_interface::tor_provider::CircuitToken"],["
1.51.0 · source§

impl Rem<NonZero<usize>> for usize

source§

fn rem(self, other: NonZero<usize>) -> usize

This operation satisfies n % d == n - (n / d) * d, and cannot panic.

\n
§

type Output = usize

The resulting type after applying the % operator.
","Rem>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Rem for usize

This operation satisfies n % d == n - (n / d) * d. The\nresult has the same sign as the left operand.

\n

§Panics

\n

This operation will panic if other == 0.

\n
§

type Output = usize

The resulting type after applying the % operator.
source§

fn rem(self, other: usize) -> usize

Performs the % operation. Read more
","Rem","tor_interface::tor_provider::CircuitToken"],["
source§

impl<'a> RemAssign<&'a BigUint> for usize

source§

fn rem_assign(&mut self, other: &BigUint)

Performs the %= operation. Read more
","RemAssign<&'a BigUint>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl RemAssign<&usize> for usize

source§

fn rem_assign(&mut self, other: &usize)

Performs the %= operation. Read more
","RemAssign<&usize>","tor_interface::tor_provider::CircuitToken"],["
source§

impl RemAssign<BigUint> for usize

source§

fn rem_assign(&mut self, other: BigUint)

Performs the %= operation. Read more
","RemAssign","tor_interface::tor_provider::CircuitToken"],["
1.79.0 · source§

impl RemAssign<NonZero<usize>> for usize

source§

fn rem_assign(&mut self, other: NonZero<usize>)

This operation satisfies n % d == n - (n / d) * d, and cannot panic.

\n
","RemAssign>","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl RemAssign for usize

source§

fn rem_assign(&mut self, other: usize)

Performs the %= operation. Read more
","RemAssign","tor_interface::tor_provider::CircuitToken"],["
source§

impl Roots for usize

source§

fn nth_root(&self, n: u32) -> usize

Returns the truncated principal nth root of an integer\n– if x >= 0 { ⌊ⁿ√x⌋ } else { ⌈ⁿ√x⌉ } Read more
source§

fn sqrt(&self) -> usize

Returns the truncated principal square root of an integer – ⌊√x⌋ Read more
source§

fn cbrt(&self) -> usize

Returns the truncated principal cube root of an integer –\nif x >= 0 { ⌊∛x⌋ } else { ⌈∛x⌉ } Read more
","Roots","tor_interface::tor_provider::CircuitToken"],["
§

impl RowIndex for usize

§

fn idx(&self, stmt: &Statement<'_>) -> Result<usize, Error>

Returns the index of the appropriate column, or None if no such\ncolumn exists.
","RowIndex","tor_interface::tor_provider::CircuitToken"],["
source§

impl SampleUniform for usize

§

type Sampler = UniformInt<usize>

The UniformSampler implementation supporting type X.
","SampleUniform","tor_interface::tor_provider::CircuitToken"],["
source§

impl Saturating for usize

source§

fn saturating_add(self, v: usize) -> usize

Saturating addition operator.\nReturns a+b, saturating at the numeric bounds instead of overflowing.
source§

fn saturating_sub(self, v: usize) -> usize

Saturating subtraction operator.\nReturns a-b, saturating at the numeric bounds instead of overflowing.
","Saturating","tor_interface::tor_provider::CircuitToken"],["
source§

impl SaturatingAdd for usize

source§

fn saturating_add(&self, v: &usize) -> usize

Saturating addition. Computes self + other, saturating at the relevant high or low boundary of\nthe type.
","SaturatingAdd","tor_interface::tor_provider::CircuitToken"],["
source§

impl SaturatingMul for usize

source§

fn saturating_mul(&self, v: &usize) -> usize

Saturating multiplication. Computes self * other, saturating at the relevant high or low boundary of\nthe type.
","SaturatingMul","tor_interface::tor_provider::CircuitToken"],["
source§

impl SaturatingSub for usize

source§

fn saturating_sub(&self, v: &usize) -> usize

Saturating subtraction. Computes self - other, saturating at the relevant high or low boundary of\nthe type.
","SaturatingSub","tor_interface::tor_provider::CircuitToken"],["
§

impl SeekNum for usize

§

fn from_block_byte<T>(\n block: T,\n byte: u8,\n bs: u8,\n) -> Result<usize, OverflowError>
where\n T: Counter,

Try to get position for block number block, byte position inside\nblock byte, and block size bs.
§

fn into_block_byte<T>(self, bs: u8) -> Result<(T, u8), OverflowError>
where\n T: Counter,

Try to get block number and bytes position for given block size bs.
","SeekNum","tor_interface::tor_provider::CircuitToken"],["
source§

impl Serialize for usize

source§

fn serialize<S>(\n &self,\n serializer: S,\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where\n S: Serializer,

Serialize this value into the given Serde serializer. Read more
","Serialize","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<&i128> for usize

§

type Output = <usize as Shl<i128>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &i128) -> <usize as Shl<i128>>::Output

Performs the << operation. Read more
","Shl<&i128>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<&i16> for usize

§

type Output = <usize as Shl<i16>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &i16) -> <usize as Shl<i16>>::Output

Performs the << operation. Read more
","Shl<&i16>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<&i32> for usize

§

type Output = <usize as Shl<i32>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &i32) -> <usize as Shl<i32>>::Output

Performs the << operation. Read more
","Shl<&i32>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<&i64> for usize

§

type Output = <usize as Shl<i64>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &i64) -> <usize as Shl<i64>>::Output

Performs the << operation. Read more
","Shl<&i64>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<&i8> for usize

§

type Output = <usize as Shl<i8>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &i8) -> <usize as Shl<i8>>::Output

Performs the << operation. Read more
","Shl<&i8>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<&isize> for usize

§

type Output = <usize as Shl<isize>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &isize) -> <usize as Shl<isize>>::Output

Performs the << operation. Read more
","Shl<&isize>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<&u128> for usize

§

type Output = <usize as Shl<u128>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &u128) -> <usize as Shl<u128>>::Output

Performs the << operation. Read more
","Shl<&u128>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<&u16> for usize

§

type Output = <usize as Shl<u16>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &u16) -> <usize as Shl<u16>>::Output

Performs the << operation. Read more
","Shl<&u16>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<&u32> for usize

§

type Output = <usize as Shl<u32>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &u32) -> <usize as Shl<u32>>::Output

Performs the << operation. Read more
","Shl<&u32>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<&u64> for usize

§

type Output = <usize as Shl<u64>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &u64) -> <usize as Shl<u64>>::Output

Performs the << operation. Read more
","Shl<&u64>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<&u8> for usize

§

type Output = <usize as Shl<u8>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &u8) -> <usize as Shl<u8>>::Output

Performs the << operation. Read more
","Shl<&u8>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<&usize> for usize

§

type Output = <usize as Shl>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &usize) -> <usize as Shl>::Output

Performs the << operation. Read more
","Shl<&usize>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<i128> for usize

§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: i128) -> usize

Performs the << operation. Read more
","Shl","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<i16> for usize

§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: i16) -> usize

Performs the << operation. Read more
","Shl","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<i32> for usize

§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: i32) -> usize

Performs the << operation. Read more
","Shl","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<i64> for usize

§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: i64) -> usize

Performs the << operation. Read more
","Shl","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<i8> for usize

§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: i8) -> usize

Performs the << operation. Read more
","Shl","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<isize> for usize

§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: isize) -> usize

Performs the << operation. Read more
","Shl","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<u128> for usize

§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: u128) -> usize

Performs the << operation. Read more
","Shl","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<u16> for usize

§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: u16) -> usize

Performs the << operation. Read more
","Shl","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<u32> for usize

§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: u32) -> usize

Performs the << operation. Read more
","Shl","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<u64> for usize

§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: u64) -> usize

Performs the << operation. Read more
","Shl","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<u8> for usize

§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: u8) -> usize

Performs the << operation. Read more
","Shl","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl for usize

§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: usize) -> usize

Performs the << operation. Read more
","Shl","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShlAssign<&i128> for usize

source§

fn shl_assign(&mut self, other: &i128)

Performs the <<= operation. Read more
","ShlAssign<&i128>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShlAssign<&i16> for usize

source§

fn shl_assign(&mut self, other: &i16)

Performs the <<= operation. Read more
","ShlAssign<&i16>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShlAssign<&i32> for usize

source§

fn shl_assign(&mut self, other: &i32)

Performs the <<= operation. Read more
","ShlAssign<&i32>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShlAssign<&i64> for usize

source§

fn shl_assign(&mut self, other: &i64)

Performs the <<= operation. Read more
","ShlAssign<&i64>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShlAssign<&i8> for usize

source§

fn shl_assign(&mut self, other: &i8)

Performs the <<= operation. Read more
","ShlAssign<&i8>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShlAssign<&isize> for usize

source§

fn shl_assign(&mut self, other: &isize)

Performs the <<= operation. Read more
","ShlAssign<&isize>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShlAssign<&u128> for usize

source§

fn shl_assign(&mut self, other: &u128)

Performs the <<= operation. Read more
","ShlAssign<&u128>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShlAssign<&u16> for usize

source§

fn shl_assign(&mut self, other: &u16)

Performs the <<= operation. Read more
","ShlAssign<&u16>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShlAssign<&u32> for usize

source§

fn shl_assign(&mut self, other: &u32)

Performs the <<= operation. Read more
","ShlAssign<&u32>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShlAssign<&u64> for usize

source§

fn shl_assign(&mut self, other: &u64)

Performs the <<= operation. Read more
","ShlAssign<&u64>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShlAssign<&u8> for usize

source§

fn shl_assign(&mut self, other: &u8)

Performs the <<= operation. Read more
","ShlAssign<&u8>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShlAssign<&usize> for usize

source§

fn shl_assign(&mut self, other: &usize)

Performs the <<= operation. Read more
","ShlAssign<&usize>","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShlAssign<i128> for usize

source§

fn shl_assign(&mut self, other: i128)

Performs the <<= operation. Read more
","ShlAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShlAssign<i16> for usize

source§

fn shl_assign(&mut self, other: i16)

Performs the <<= operation. Read more
","ShlAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShlAssign<i32> for usize

source§

fn shl_assign(&mut self, other: i32)

Performs the <<= operation. Read more
","ShlAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShlAssign<i64> for usize

source§

fn shl_assign(&mut self, other: i64)

Performs the <<= operation. Read more
","ShlAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShlAssign<i8> for usize

source§

fn shl_assign(&mut self, other: i8)

Performs the <<= operation. Read more
","ShlAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShlAssign<isize> for usize

source§

fn shl_assign(&mut self, other: isize)

Performs the <<= operation. Read more
","ShlAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShlAssign<u128> for usize

source§

fn shl_assign(&mut self, other: u128)

Performs the <<= operation. Read more
","ShlAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShlAssign<u16> for usize

source§

fn shl_assign(&mut self, other: u16)

Performs the <<= operation. Read more
","ShlAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShlAssign<u32> for usize

source§

fn shl_assign(&mut self, other: u32)

Performs the <<= operation. Read more
","ShlAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShlAssign<u64> for usize

source§

fn shl_assign(&mut self, other: u64)

Performs the <<= operation. Read more
","ShlAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShlAssign<u8> for usize

source§

fn shl_assign(&mut self, other: u8)

Performs the <<= operation. Read more
","ShlAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShlAssign for usize

source§

fn shl_assign(&mut self, other: usize)

Performs the <<= operation. Read more
","ShlAssign","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<&i128> for usize

§

type Output = <usize as Shr<i128>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &i128) -> <usize as Shr<i128>>::Output

Performs the >> operation. Read more
","Shr<&i128>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<&i16> for usize

§

type Output = <usize as Shr<i16>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &i16) -> <usize as Shr<i16>>::Output

Performs the >> operation. Read more
","Shr<&i16>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<&i32> for usize

§

type Output = <usize as Shr<i32>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &i32) -> <usize as Shr<i32>>::Output

Performs the >> operation. Read more
","Shr<&i32>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<&i64> for usize

§

type Output = <usize as Shr<i64>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &i64) -> <usize as Shr<i64>>::Output

Performs the >> operation. Read more
","Shr<&i64>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<&i8> for usize

§

type Output = <usize as Shr<i8>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &i8) -> <usize as Shr<i8>>::Output

Performs the >> operation. Read more
","Shr<&i8>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<&isize> for usize

§

type Output = <usize as Shr<isize>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &isize) -> <usize as Shr<isize>>::Output

Performs the >> operation. Read more
","Shr<&isize>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<&u128> for usize

§

type Output = <usize as Shr<u128>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &u128) -> <usize as Shr<u128>>::Output

Performs the >> operation. Read more
","Shr<&u128>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<&u16> for usize

§

type Output = <usize as Shr<u16>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &u16) -> <usize as Shr<u16>>::Output

Performs the >> operation. Read more
","Shr<&u16>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<&u32> for usize

§

type Output = <usize as Shr<u32>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &u32) -> <usize as Shr<u32>>::Output

Performs the >> operation. Read more
","Shr<&u32>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<&u64> for usize

§

type Output = <usize as Shr<u64>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &u64) -> <usize as Shr<u64>>::Output

Performs the >> operation. Read more
","Shr<&u64>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<&u8> for usize

§

type Output = <usize as Shr<u8>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &u8) -> <usize as Shr<u8>>::Output

Performs the >> operation. Read more
","Shr<&u8>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<&usize> for usize

§

type Output = <usize as Shr>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &usize) -> <usize as Shr>::Output

Performs the >> operation. Read more
","Shr<&usize>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<i128> for usize

§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: i128) -> usize

Performs the >> operation. Read more
","Shr","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<i16> for usize

§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: i16) -> usize

Performs the >> operation. Read more
","Shr","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<i32> for usize

§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: i32) -> usize

Performs the >> operation. Read more
","Shr","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<i64> for usize

§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: i64) -> usize

Performs the >> operation. Read more
","Shr","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<i8> for usize

§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: i8) -> usize

Performs the >> operation. Read more
","Shr","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<isize> for usize

§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: isize) -> usize

Performs the >> operation. Read more
","Shr","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<u128> for usize

§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: u128) -> usize

Performs the >> operation. Read more
","Shr","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<u16> for usize

§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: u16) -> usize

Performs the >> operation. Read more
","Shr","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<u32> for usize

§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: u32) -> usize

Performs the >> operation. Read more
","Shr","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<u64> for usize

§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: u64) -> usize

Performs the >> operation. Read more
","Shr","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<u8> for usize

§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: u8) -> usize

Performs the >> operation. Read more
","Shr","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr for usize

§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: usize) -> usize

Performs the >> operation. Read more
","Shr","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShrAssign<&i128> for usize

source§

fn shr_assign(&mut self, other: &i128)

Performs the >>= operation. Read more
","ShrAssign<&i128>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShrAssign<&i16> for usize

source§

fn shr_assign(&mut self, other: &i16)

Performs the >>= operation. Read more
","ShrAssign<&i16>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShrAssign<&i32> for usize

source§

fn shr_assign(&mut self, other: &i32)

Performs the >>= operation. Read more
","ShrAssign<&i32>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShrAssign<&i64> for usize

source§

fn shr_assign(&mut self, other: &i64)

Performs the >>= operation. Read more
","ShrAssign<&i64>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShrAssign<&i8> for usize

source§

fn shr_assign(&mut self, other: &i8)

Performs the >>= operation. Read more
","ShrAssign<&i8>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShrAssign<&isize> for usize

source§

fn shr_assign(&mut self, other: &isize)

Performs the >>= operation. Read more
","ShrAssign<&isize>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShrAssign<&u128> for usize

source§

fn shr_assign(&mut self, other: &u128)

Performs the >>= operation. Read more
","ShrAssign<&u128>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShrAssign<&u16> for usize

source§

fn shr_assign(&mut self, other: &u16)

Performs the >>= operation. Read more
","ShrAssign<&u16>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShrAssign<&u32> for usize

source§

fn shr_assign(&mut self, other: &u32)

Performs the >>= operation. Read more
","ShrAssign<&u32>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShrAssign<&u64> for usize

source§

fn shr_assign(&mut self, other: &u64)

Performs the >>= operation. Read more
","ShrAssign<&u64>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShrAssign<&u8> for usize

source§

fn shr_assign(&mut self, other: &u8)

Performs the >>= operation. Read more
","ShrAssign<&u8>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShrAssign<&usize> for usize

source§

fn shr_assign(&mut self, other: &usize)

Performs the >>= operation. Read more
","ShrAssign<&usize>","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShrAssign<i128> for usize

source§

fn shr_assign(&mut self, other: i128)

Performs the >>= operation. Read more
","ShrAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShrAssign<i16> for usize

source§

fn shr_assign(&mut self, other: i16)

Performs the >>= operation. Read more
","ShrAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShrAssign<i32> for usize

source§

fn shr_assign(&mut self, other: i32)

Performs the >>= operation. Read more
","ShrAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShrAssign<i64> for usize

source§

fn shr_assign(&mut self, other: i64)

Performs the >>= operation. Read more
","ShrAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShrAssign<i8> for usize

source§

fn shr_assign(&mut self, other: i8)

Performs the >>= operation. Read more
","ShrAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShrAssign<isize> for usize

source§

fn shr_assign(&mut self, other: isize)

Performs the >>= operation. Read more
","ShrAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShrAssign<u128> for usize

source§

fn shr_assign(&mut self, other: u128)

Performs the >>= operation. Read more
","ShrAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShrAssign<u16> for usize

source§

fn shr_assign(&mut self, other: u16)

Performs the >>= operation. Read more
","ShrAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShrAssign<u32> for usize

source§

fn shr_assign(&mut self, other: u32)

Performs the >>= operation. Read more
","ShrAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShrAssign<u64> for usize

source§

fn shr_assign(&mut self, other: u64)

Performs the >>= operation. Read more
","ShrAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShrAssign<u8> for usize

source§

fn shr_assign(&mut self, other: u8)

Performs the >>= operation. Read more
","ShrAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShrAssign for usize

source§

fn shr_assign(&mut self, other: usize)

Performs the >>= operation. Read more
","ShrAssign","tor_interface::tor_provider::CircuitToken"],["
source§

impl SimdElement for usize

§

type Mask = isize

🔬This is a nightly-only experimental API. (portable_simd)
The mask element type corresponding to this element type.
","SimdElement","tor_interface::tor_provider::CircuitToken"],["
1.15.0 (const: unstable) · source§

impl<T> SliceIndex<[T]> for usize

The methods index and index_mut panic if the index is out of bounds.

\n
§

type Output = T

The output type returned by methods.
source§

fn get(self, slice: &[T]) -> Option<&T>

🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a shared reference to the output at this location, if in\nbounds.
source§

fn get_mut(self, slice: &mut [T]) -> Option<&mut T>

🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a mutable reference to the output at this location, if in\nbounds.
source§

unsafe fn get_unchecked(self, slice: *const [T]) -> *const T

🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a pointer to the output at this location, without\nperforming any bounds checking.\nCalling this method with an out-of-bounds index or a dangling slice pointer\nis undefined behavior even if the resulting pointer is not used.
source§

unsafe fn get_unchecked_mut(self, slice: *mut [T]) -> *mut T

🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a mutable pointer to the output at this location, without\nperforming any bounds checking.\nCalling this method with an out-of-bounds index or a dangling slice pointer\nis undefined behavior even if the resulting pointer is not used.
source§

fn index(self, slice: &[T]) -> &T

🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a shared reference to the output at this location, panicking\nif out of bounds.
source§

fn index_mut(self, slice: &mut [T]) -> &mut T

🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a mutable reference to the output at this location, panicking\nif out of bounds.
","SliceIndex<[T]>","tor_interface::tor_provider::CircuitToken"],["
§

impl SmartDisplay for usize

§

type Metadata = ()

User-provided metadata type.
§

fn metadata(&self, f: FormatterOptions) -> Metadata<'_, usize>

Compute any information needed to format the value. This must, at a minimum, determine the\nwidth of the value before any padding is added by the formatter. Read more
§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Format the value using the given formatter. This is the same as Display::fmt. Read more
§

fn fmt_with_metadata(\n &self,\n f: &mut Formatter<'_>,\n _metadata: Metadata<'_, Self>,\n) -> Result<(), Error>

Format the value using the given formatter and metadata. The formatted output should have\nthe width indicated by the metadata. This is before any padding is added by the\nformatter. Read more
","SmartDisplay","tor_interface::tor_provider::CircuitToken"],["
source§

impl Step for usize

source§

fn forward(start: usize, n: usize) -> usize

🔬This is a nightly-only experimental API. (step_trait)
Returns the value that would be obtained by taking the successor\nof self count times. Read more
source§

fn backward(start: usize, n: usize) -> usize

🔬This is a nightly-only experimental API. (step_trait)
Returns the value that would be obtained by taking the predecessor\nof self count times. Read more
source§

unsafe fn forward_unchecked(start: usize, n: usize) -> usize

🔬This is a nightly-only experimental API. (step_trait)
Returns the value that would be obtained by taking the successor\nof self count times. Read more
source§

unsafe fn backward_unchecked(start: usize, n: usize) -> usize

🔬This is a nightly-only experimental API. (step_trait)
Returns the value that would be obtained by taking the predecessor\nof self count times. Read more
source§

fn steps_between(start: &usize, end: &usize) -> Option<usize>

🔬This is a nightly-only experimental API. (step_trait)
Returns the number of successor steps required to get from start to end. Read more
source§

fn forward_checked(start: usize, n: usize) -> Option<usize>

🔬This is a nightly-only experimental API. (step_trait)
Returns the value that would be obtained by taking the successor\nof self count times. Read more
source§

fn backward_checked(start: usize, n: usize) -> Option<usize>

🔬This is a nightly-only experimental API. (step_trait)
Returns the value that would be obtained by taking the predecessor\nof self count times. Read more
","Step","tor_interface::tor_provider::CircuitToken"],["
source§

impl<'a> Sub<&'a BigInt> for usize

§

type Output = BigInt

The resulting type after applying the - operator.
source§

fn sub(self, other: &BigInt) -> BigInt

Performs the - operation. Read more
","Sub<&'a BigInt>","tor_interface::tor_provider::CircuitToken"],["
source§

impl<'a> Sub<&'a BigUint> for usize

§

type Output = BigUint

The resulting type after applying the - operator.
source§

fn sub(self, other: &BigUint) -> BigUint

Performs the - operation. Read more
","Sub<&'a BigUint>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Sub<&usize> for usize

§

type Output = <usize as Sub>::Output

The resulting type after applying the - operator.
source§

fn sub(self, other: &usize) -> <usize as Sub>::Output

Performs the - operation. Read more
","Sub<&usize>","tor_interface::tor_provider::CircuitToken"],["
source§

impl Sub<BigInt> for usize

§

type Output = BigInt

The resulting type after applying the - operator.
source§

fn sub(self, other: BigInt) -> BigInt

Performs the - operation. Read more
","Sub","tor_interface::tor_provider::CircuitToken"],["
source§

impl Sub<BigUint> for usize

§

type Output = BigUint

The resulting type after applying the - operator.
source§

fn sub(self, other: BigUint) -> BigUint

Performs the - operation. Read more
","Sub","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Sub for usize

§

type Output = usize

The resulting type after applying the - operator.
source§

fn sub(self, other: usize) -> usize

Performs the - operation. Read more
","Sub","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl SubAssign<&usize> for usize

source§

fn sub_assign(&mut self, other: &usize)

Performs the -= operation. Read more
","SubAssign<&usize>","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl SubAssign for usize

source§

fn sub_assign(&mut self, other: usize)

Performs the -= operation. Read more
","SubAssign","tor_interface::tor_provider::CircuitToken"],["
1.12.0 · source§

impl<'a> Sum<&'a usize> for usize

source§

fn sum<I>(iter: I) -> usize
where\n I: Iterator<Item = &'a usize>,

Method which takes an iterator and generates Self from the elements by\n“summing up” the items.
","Sum<&'a usize>","tor_interface::tor_provider::CircuitToken"],["
1.12.0 · source§

impl Sum for usize

source§

fn sum<I>(iter: I) -> usize
where\n I: Iterator<Item = usize>,

Method which takes an iterator and generates Self from the elements by\n“summing up” the items.
","Sum","tor_interface::tor_provider::CircuitToken"],["
source§

impl ToBigInt for usize

source§

fn to_bigint(&self) -> Option<BigInt>

Converts the value of self to a BigInt.
","ToBigInt","tor_interface::tor_provider::CircuitToken"],["
source§

impl ToBigUint for usize

source§

fn to_biguint(&self) -> Option<BigUint>

Converts the value of self to a BigUint.
","ToBigUint","tor_interface::tor_provider::CircuitToken"],["
source§

impl ToBytes for usize

§

type Bytes = [u8; 8]

source§

fn to_be_bytes(&self) -> <usize as ToBytes>::Bytes

Return the memory representation of this number as a byte array in big-endian byte order. Read more
source§

fn to_le_bytes(&self) -> <usize as ToBytes>::Bytes

Return the memory representation of this number as a byte array in little-endian byte order. Read more
source§

fn to_ne_bytes(&self) -> <usize as ToBytes>::Bytes

Return the memory representation of this number as a byte array in native byte order. Read more
","ToBytes","tor_interface::tor_provider::CircuitToken"],["
source§

impl ToPrimitive for usize

source§

fn to_isize(&self) -> Option<isize>

Converts the value of self to an isize. If the value cannot be\nrepresented by an isize, then None is returned.
source§

fn to_i8(&self) -> Option<i8>

Converts the value of self to an i8. If the value cannot be\nrepresented by an i8, then None is returned.
source§

fn to_i16(&self) -> Option<i16>

Converts the value of self to an i16. If the value cannot be\nrepresented by an i16, then None is returned.
source§

fn to_i32(&self) -> Option<i32>

Converts the value of self to an i32. If the value cannot be\nrepresented by an i32, then None is returned.
source§

fn to_i64(&self) -> Option<i64>

Converts the value of self to an i64. If the value cannot be\nrepresented by an i64, then None is returned.
source§

fn to_i128(&self) -> Option<i128>

Converts the value of self to an i128. If the value cannot be\nrepresented by an i128 (i64 under the default implementation), then\nNone is returned. Read more
source§

fn to_usize(&self) -> Option<usize>

Converts the value of self to a usize. If the value cannot be\nrepresented by a usize, then None is returned.
source§

fn to_u8(&self) -> Option<u8>

Converts the value of self to a u8. If the value cannot be\nrepresented by a u8, then None is returned.
source§

fn to_u16(&self) -> Option<u16>

Converts the value of self to a u16. If the value cannot be\nrepresented by a u16, then None is returned.
source§

fn to_u32(&self) -> Option<u32>

Converts the value of self to a u32. If the value cannot be\nrepresented by a u32, then None is returned.
source§

fn to_u64(&self) -> Option<u64>

Converts the value of self to a u64. If the value cannot be\nrepresented by a u64, then None is returned.
source§

fn to_u128(&self) -> Option<u128>

Converts the value of self to a u128. If the value cannot be\nrepresented by a u128 (u64 under the default implementation), then\nNone is returned. Read more
source§

fn to_f32(&self) -> Option<f32>

Converts the value of self to an f32. Overflows may map to positive\nor negative inifinity, otherwise None is returned if the value cannot\nbe represented by an f32.
source§

fn to_f64(&self) -> Option<f64>

Converts the value of self to an f64. Overflows may map to positive\nor negative inifinity, otherwise None is returned if the value cannot\nbe represented by an f64. Read more
","ToPrimitive","tor_interface::tor_provider::CircuitToken"],["
§

impl ToSql for usize

§

fn to_sql(&self) -> Result<ToSqlOutput<'_>, Error>

Converts Rust value to SQLite value
","ToSql","tor_interface::tor_provider::CircuitToken"],["
§

impl ToUsize for usize

§

fn to_usize(&self) -> usize

converts self to usize
","ToUsize","tor_interface::tor_provider::CircuitToken"],["
§

impl ToUsize for usize

§

fn to_usize(&self) -> usize

converts self to usize
","ToUsize","tor_interface::tor_provider::CircuitToken"],["
§

impl<const L: i32, const H: i32> TryFrom<BoundedInt32<L, H>> for usize

§

type Error = Error

The type returned in the event of a conversion error.
§

fn try_from(\n val: BoundedInt32<L, H>,\n) -> Result<usize, <usize as TryFrom<BoundedInt32<L, H>>>::Error>

Performs the conversion.
","TryFrom>","tor_interface::tor_provider::CircuitToken"],["
§

impl TryFrom<Length> for usize

§

type Error = Error

The type returned in the event of a conversion error.
§

fn try_from(len: Length) -> Result<usize, Error>

Performs the conversion.
","TryFrom","tor_interface::tor_provider::CircuitToken"],["
1.34.0 · source§

impl TryFrom<i128> for usize

source§

fn try_from(u: i128) -> Result<usize, <usize as TryFrom<i128>>::Error>

Try to create the target number type from a source\nnumber type. This returns an error if the source value\nis outside of the range of the target type.

\n
§

type Error = TryFromIntError

The type returned in the event of a conversion error.
","TryFrom","tor_interface::tor_provider::CircuitToken"],["
1.34.0 · source§

impl TryFrom<i16> for usize

source§

fn try_from(u: i16) -> Result<usize, <usize as TryFrom<i16>>::Error>

Try to create the target number type from a source\nnumber type. This returns an error if the source value\nis outside of the range of the target type.

\n
§

type Error = TryFromIntError

The type returned in the event of a conversion error.
","TryFrom","tor_interface::tor_provider::CircuitToken"],["
1.34.0 · source§

impl TryFrom<i32> for usize

source§

fn try_from(u: i32) -> Result<usize, <usize as TryFrom<i32>>::Error>

Try to create the target number type from a source\nnumber type. This returns an error if the source value\nis outside of the range of the target type.

\n
§

type Error = TryFromIntError

The type returned in the event of a conversion error.
","TryFrom","tor_interface::tor_provider::CircuitToken"],["
1.34.0 · source§

impl TryFrom<i64> for usize

source§

fn try_from(u: i64) -> Result<usize, <usize as TryFrom<i64>>::Error>

Try to create the target number type from a source\nnumber type. This returns an error if the source value\nis outside of the range of the target type.

\n
§

type Error = TryFromIntError

The type returned in the event of a conversion error.
","TryFrom","tor_interface::tor_provider::CircuitToken"],["
1.34.0 · source§

impl TryFrom<i8> for usize

source§

fn try_from(u: i8) -> Result<usize, <usize as TryFrom<i8>>::Error>

Try to create the target number type from a source\nnumber type. This returns an error if the source value\nis outside of the range of the target type.

\n
§

type Error = TryFromIntError

The type returned in the event of a conversion error.
","TryFrom","tor_interface::tor_provider::CircuitToken"],["
1.34.0 · source§

impl TryFrom<isize> for usize

source§

fn try_from(u: isize) -> Result<usize, <usize as TryFrom<isize>>::Error>

Try to create the target number type from a source\nnumber type. This returns an error if the source value\nis outside of the range of the target type.

\n
§

type Error = TryFromIntError

The type returned in the event of a conversion error.
","TryFrom","tor_interface::tor_provider::CircuitToken"],["
1.34.0 · source§

impl TryFrom<u128> for usize

source§

fn try_from(u: u128) -> Result<usize, <usize as TryFrom<u128>>::Error>

Try to create the target number type from a source\nnumber type. This returns an error if the source value\nis outside of the range of the target type.

\n
§

type Error = TryFromIntError

The type returned in the event of a conversion error.
","TryFrom","tor_interface::tor_provider::CircuitToken"],["
1.34.0 · source§

impl TryFrom<u32> for usize

source§

fn try_from(value: u32) -> Result<usize, <usize as TryFrom<u32>>::Error>

Try to create the target number type from a source\nnumber type. This returns an error if the source value\nis outside of the range of the target type.

\n
§

type Error = TryFromIntError

The type returned in the event of a conversion error.
","TryFrom","tor_interface::tor_provider::CircuitToken"],["
1.34.0 · source§

impl TryFrom<u64> for usize

source§

fn try_from(value: u64) -> Result<usize, <usize as TryFrom<u64>>::Error>

Try to create the target number type from a source\nnumber type. This returns an error if the source value\nis outside of the range of the target type.

\n
§

type Error = TryFromIntError

The type returned in the event of a conversion error.
","TryFrom","tor_interface::tor_provider::CircuitToken"],["
§

impl Unsigned for usize

§

fn is_power_of_two(self) -> bool

Returns true if and only if self == 2^k for some k.
§

fn next_power_of_two(self) -> usize

Returns the smallest power of two greater than or equal to self. Read more
§

fn checked_next_power_of_two(self) -> Option<usize>

Returns the smallest power of two greater than or equal to n. If the\nnext power of two is greater than the type’s maximum value, None is\nreturned, otherwise the power of two is wrapped in Some.
","Unsigned","tor_interface::tor_provider::CircuitToken"],["
1.42.0 · source§

impl UpperExp for usize

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","UpperExp","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl UpperHex for usize

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","UpperHex","tor_interface::tor_provider::CircuitToken"],["
§

impl Value for usize

§

fn record(&self, key: &Field, visitor: &mut dyn Visit)

Visits this value with the given Visitor.
","Value","tor_interface::tor_provider::CircuitToken"],["
source§

impl WrappingAdd for usize

source§

fn wrapping_add(&self, v: &usize) -> usize

Wrapping (modular) addition. Computes self + other, wrapping around at the boundary of\nthe type.
","WrappingAdd","tor_interface::tor_provider::CircuitToken"],["
source§

impl WrappingMul for usize

source§

fn wrapping_mul(&self, v: &usize) -> usize

Wrapping (modular) multiplication. Computes self * other, wrapping around at the boundary\nof the type.
","WrappingMul","tor_interface::tor_provider::CircuitToken"],["
source§

impl WrappingNeg for usize

source§

fn wrapping_neg(&self) -> usize

Wrapping (modular) negation. Computes -self,\nwrapping around at the boundary of the type. Read more
","WrappingNeg","tor_interface::tor_provider::CircuitToken"],["
source§

impl WrappingShl for usize

source§

fn wrapping_shl(&self, rhs: u32) -> usize

Panic-free bitwise shift-left; yields self << mask(rhs),\nwhere mask removes any high order bits of rhs that would\ncause the shift to exceed the bitwidth of the type. Read more
","WrappingShl","tor_interface::tor_provider::CircuitToken"],["
source§

impl WrappingShr for usize

source§

fn wrapping_shr(&self, rhs: u32) -> usize

Panic-free bitwise shift-right; yields self >> mask(rhs),\nwhere mask removes any high order bits of rhs that would\ncause the shift to exceed the bitwidth of the type. Read more
","WrappingShr","tor_interface::tor_provider::CircuitToken"],["
source§

impl WrappingSub for usize

source§

fn wrapping_sub(&self, v: &usize) -> usize

Wrapping (modular) subtraction. Computes self - other, wrapping around at the boundary\nof the type.
","WrappingSub","tor_interface::tor_provider::CircuitToken"],["
§

impl WriteHex for usize

§

fn write_hex<W>(&self, writer: W) -> Result<(), Error>
where\n W: Write,

Write the value as hex.
","WriteHex","tor_interface::tor_provider::CircuitToken"],["
§

impl Writeable for usize

§

fn write_to<W>(&self, sink: &mut W) -> Result<(), Error>
where\n W: Write + ?Sized,

Writes a string to the given sink. Errors from the sink are bubbled up.\nThe default implementation delegates to write_to_parts, and discards any\nPart annotations.
§

fn writeable_length_hint(&self) -> LengthHint

Returns a hint for the number of UTF-8 bytes that will be written to the sink. Read more
§

fn write_to_parts<S>(&self, sink: &mut S) -> Result<(), Error>
where\n S: PartsWrite + ?Sized,

Write bytes and Part annotations to the given sink. Errors from the\nsink are bubbled up. The default implementation delegates to write_to,\nand doesn’t produce any Part annotations.
§

fn write_to_string(&self) -> Cow<'_, str>

Creates a new String with the data from this Writeable. Like ToString,\nbut smaller and faster. Read more
§

fn writeable_cmp_bytes(&self, other: &[u8]) -> Ordering

Compares the contents of this Writeable to the given bytes\nwithout allocating a String to hold the Writeable contents. Read more
","Writeable","tor_interface::tor_provider::CircuitToken"],["
§

impl<'a> Yokeable<'a> for usize

§

type Output = usize

This type MUST be Self with the 'static replaced with 'a, i.e. Self<'a>
§

fn transform(&self) -> &<usize as Yokeable<'a>>::Output

This method must cast self between &'a Self<'static> and &'a Self<'a>. Read more
§

fn transform_owned(self) -> <usize as Yokeable<'a>>::Output

This method must cast self between Self<'static> and Self<'a>. Read more
§

unsafe fn make(this: <usize as Yokeable<'a>>::Output) -> usize

This method can be used to cast away Self<'a>’s lifetime. Read more
§

fn transform_mut<F>(&'a mut self, f: F)
where\n F: 'static + for<'b> FnOnce(&'b mut <usize as Yokeable<'a>>::Output),

This method must cast self between &'a mut Self<'static> and &'a mut Self<'a>,\nand pass it to f. Read more
","Yokeable<'a>","tor_interface::tor_provider::CircuitToken"],["
source§

impl Zero for usize

source§

fn zero() -> usize

Returns the additive identity element of Self, 0. Read more
source§

fn is_zero(&self) -> bool

Returns true if self is equal to the additive identity.
source§

fn set_zero(&mut self)

Sets self to the additive identity element of Self, 0.
","Zero","tor_interface::tor_provider::CircuitToken"],["
§

impl<'a> ZeroFrom<'a, usize> for usize

§

fn zero_from(this: &'a usize) -> usize

Clone the other C into a struct that may retain references into C.
","ZeroFrom<'a, usize>","tor_interface::tor_provider::CircuitToken"],["
§

impl<'a> ZeroMapKV<'a> for usize

§

type Container = FlexZeroVec<'a>

The container that can be used with this type: [ZeroVec] or [VarZeroVec].
§

type Slice = FlexZeroSlice

§

type GetType = [u8]

The type produced by Container::get() Read more
§

type OwnedType = usize

The type produced by Container::replace() and Container::remove(),\nalso used during deserialization. If Self is human readable serialized,\ndeserializing to Self::OwnedType should produce the same value once\npassed through Self::owned_as_self() Read more
","ZeroMapKV<'a>","tor_interface::tor_provider::CircuitToken"],["
source§

impl usize

1.43.0 · source

pub const MIN: usize = 0usize

The smallest value that can be represented by this integer type.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(usize::MIN, 0);
\n
1.43.0 · source

pub const MAX: usize = 18_446_744_073_709_551_615usize

The largest value that can be represented by this integer type\n(264 − 1 on 64-bit targets).

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(usize::MAX, 18446744073709551615);
\n
1.53.0 · source

pub const BITS: u32 = 64u32

The size of this integer type in bits.

\n
§Examples
\n
assert_eq!(usize::BITS, 64);
\n
1.0.0 (const: 1.32.0) · source

pub const fn count_ones(self) -> u32

Returns the number of ones in the binary representation of self.

\n
§Examples
\n

Basic usage:

\n\n
let n = 0b01001100usize;\n\nassert_eq!(n.count_ones(), 3);
\n
1.0.0 (const: 1.32.0) · source

pub const fn count_zeros(self) -> u32

Returns the number of zeros in the binary representation of self.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(usize::MAX.count_zeros(), 0);
\n
1.0.0 (const: 1.32.0) · source

pub const fn leading_zeros(self) -> u32

Returns the number of leading zeros in the binary representation of self.

\n

Depending on what you’re doing with the value, you might also be interested in the\nilog2 function which returns a consistent number, even if the type widens.

\n
§Examples
\n

Basic usage:

\n\n
let n = usize::MAX >> 2;\n\nassert_eq!(n.leading_zeros(), 2);
\n
1.0.0 (const: 1.32.0) · source

pub const fn trailing_zeros(self) -> u32

Returns the number of trailing zeros in the binary representation\nof self.

\n
§Examples
\n

Basic usage:

\n\n
let n = 0b0101000usize;\n\nassert_eq!(n.trailing_zeros(), 3);
\n
1.46.0 (const: 1.46.0) · source

pub const fn leading_ones(self) -> u32

Returns the number of leading ones in the binary representation of self.

\n
§Examples
\n

Basic usage:

\n\n
let n = !(usize::MAX >> 2);\n\nassert_eq!(n.leading_ones(), 2);
\n
1.46.0 (const: 1.46.0) · source

pub const fn trailing_ones(self) -> u32

Returns the number of trailing ones in the binary representation\nof self.

\n
§Examples
\n

Basic usage:

\n\n
let n = 0b1010111usize;\n\nassert_eq!(n.trailing_ones(), 3);
\n
source

pub const fn cast_signed(self) -> isize

🔬This is a nightly-only experimental API. (integer_sign_cast)

Returns the bit pattern of self reinterpreted as a signed integer of the same size.

\n

This produces the same result as an as cast, but ensures that the bit-width remains\nthe same.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(integer_sign_cast)]\n\nlet n = usize::MAX;\n\nassert_eq!(n.cast_signed(), -1isize);
\n
1.0.0 (const: 1.32.0) · source

pub const fn rotate_left(self, n: u32) -> usize

Shifts the bits to the left by a specified amount, n,\nwrapping the truncated bits to the end of the resulting integer.

\n

Please note this isn’t the same operation as the << shifting operator!

\n
§Examples
\n

Basic usage:

\n\n
let n = 0xaa00000000006e1usize;\nlet m = 0x6e10aa;\n\nassert_eq!(n.rotate_left(12), m);
\n
1.0.0 (const: 1.32.0) · source

pub const fn rotate_right(self, n: u32) -> usize

Shifts the bits to the right by a specified amount, n,\nwrapping the truncated bits to the beginning of the resulting\ninteger.

\n

Please note this isn’t the same operation as the >> shifting operator!

\n
§Examples
\n

Basic usage:

\n\n
let n = 0x6e10aausize;\nlet m = 0xaa00000000006e1;\n\nassert_eq!(n.rotate_right(12), m);
\n
1.0.0 (const: 1.32.0) · source

pub const fn swap_bytes(self) -> usize

Reverses the byte order of the integer.

\n
§Examples
\n

Basic usage:

\n\n
let n = 0x1234567890123456usize;\nlet m = n.swap_bytes();\n\nassert_eq!(m, 0x5634129078563412);
\n
1.37.0 (const: 1.37.0) · source

pub const fn reverse_bits(self) -> usize

Reverses the order of bits in the integer. The least significant bit becomes the most significant bit,\nsecond least-significant bit becomes second most-significant bit, etc.

\n
§Examples
\n

Basic usage:

\n\n
let n = 0x1234567890123456usize;\nlet m = n.reverse_bits();\n\nassert_eq!(m, 0x6a2c48091e6a2c48);\nassert_eq!(0, 0usize.reverse_bits());
\n
1.0.0 (const: 1.32.0) · source

pub const fn from_be(x: usize) -> usize

Converts an integer from big endian to the target’s endianness.

\n

On big endian this is a no-op. On little endian the bytes are\nswapped.

\n
§Examples
\n

Basic usage:

\n\n
let n = 0x1Ausize;\n\nif cfg!(target_endian = \"big\") {\n    assert_eq!(usize::from_be(n), n)\n} else {\n    assert_eq!(usize::from_be(n), n.swap_bytes())\n}
\n
1.0.0 (const: 1.32.0) · source

pub const fn from_le(x: usize) -> usize

Converts an integer from little endian to the target’s endianness.

\n

On little endian this is a no-op. On big endian the bytes are\nswapped.

\n
§Examples
\n

Basic usage:

\n\n
let n = 0x1Ausize;\n\nif cfg!(target_endian = \"little\") {\n    assert_eq!(usize::from_le(n), n)\n} else {\n    assert_eq!(usize::from_le(n), n.swap_bytes())\n}
\n
1.0.0 (const: 1.32.0) · source

pub const fn to_be(self) -> usize

Converts self to big endian from the target’s endianness.

\n

On big endian this is a no-op. On little endian the bytes are\nswapped.

\n
§Examples
\n

Basic usage:

\n\n
let n = 0x1Ausize;\n\nif cfg!(target_endian = \"big\") {\n    assert_eq!(n.to_be(), n)\n} else {\n    assert_eq!(n.to_be(), n.swap_bytes())\n}
\n
1.0.0 (const: 1.32.0) · source

pub const fn to_le(self) -> usize

Converts self to little endian from the target’s endianness.

\n

On little endian this is a no-op. On big endian the bytes are\nswapped.

\n
§Examples
\n

Basic usage:

\n\n
let n = 0x1Ausize;\n\nif cfg!(target_endian = \"little\") {\n    assert_eq!(n.to_le(), n)\n} else {\n    assert_eq!(n.to_le(), n.swap_bytes())\n}
\n
1.0.0 (const: 1.47.0) · source

pub const fn checked_add(self, rhs: usize) -> Option<usize>

Checked integer addition. Computes self + rhs, returning None\nif overflow occurred.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!((usize::MAX - 2).checked_add(1), Some(usize::MAX - 1));\nassert_eq!((usize::MAX - 2).checked_add(3), None);
\n
source

pub const fn strict_add(self, rhs: usize) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict integer addition. Computes self + rhs, panicking\nif overflow occurred.

\n
§Panics
§Overflow behavior
\n

This function will always panic on overflow, regardless of whether overflow checks are enabled.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!((usize::MAX - 2).strict_add(1), usize::MAX - 1);
\n

The following panics because of overflow:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = (usize::MAX - 2).strict_add(3);
\n
1.79.0 (const: 1.79.0) · source

pub const unsafe fn unchecked_add(self, rhs: usize) -> usize

Unchecked integer addition. Computes self + rhs, assuming overflow\ncannot occur.

\n

Calling x.unchecked_add(y) is semantically equivalent to calling\nx.checked_add(y).unwrap_unchecked().

\n

If you’re just trying to avoid the panic in debug mode, then do not\nuse this. Instead, you’re looking for wrapping_add.

\n
§Safety
\n

This results in undefined behavior when\nself + rhs > usize::MAX or self + rhs < usize::MIN,\ni.e. when checked_add would return None.

\n
1.66.0 (const: 1.66.0) · source

pub const fn checked_add_signed(self, rhs: isize) -> Option<usize>

Checked addition with a signed integer. Computes self + rhs,\nreturning None if overflow occurred.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(1usize.checked_add_signed(2), Some(3));\nassert_eq!(1usize.checked_add_signed(-2), None);\nassert_eq!((usize::MAX - 2).checked_add_signed(3), None);
\n
source

pub const fn strict_add_signed(self, rhs: isize) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict addition with a signed integer. Computes self + rhs,\npanicking if overflow occurred.

\n
§Panics
§Overflow behavior
\n

This function will always panic on overflow, regardless of whether overflow checks are enabled.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(1usize.strict_add_signed(2), 3);
\n

The following panic because of overflow:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = 1usize.strict_add_signed(-2);
\n\n
#![feature(strict_overflow_ops)]\nlet _ = (usize::MAX - 2).strict_add_signed(3);
\n
1.0.0 (const: 1.47.0) · source

pub const fn checked_sub(self, rhs: usize) -> Option<usize>

Checked integer subtraction. Computes self - rhs, returning\nNone if overflow occurred.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(1usize.checked_sub(1), Some(0));\nassert_eq!(0usize.checked_sub(1), None);
\n
source

pub const fn strict_sub(self, rhs: usize) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict integer subtraction. Computes self - rhs, panicking if\noverflow occurred.

\n
§Panics
§Overflow behavior
\n

This function will always panic on overflow, regardless of whether overflow checks are enabled.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(1usize.strict_sub(1), 0);
\n

The following panics because of overflow:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = 0usize.strict_sub(1);
\n
1.79.0 (const: 1.79.0) · source

pub const unsafe fn unchecked_sub(self, rhs: usize) -> usize

Unchecked integer subtraction. Computes self - rhs, assuming overflow\ncannot occur.

\n

Calling x.unchecked_sub(y) is semantically equivalent to calling\nx.checked_sub(y).unwrap_unchecked().

\n

If you’re just trying to avoid the panic in debug mode, then do not\nuse this. Instead, you’re looking for wrapping_sub.

\n

If you find yourself writing code like this:

\n\n
if foo >= bar {\n    // SAFETY: just checked it will not overflow\n    let diff = unsafe { foo.unchecked_sub(bar) };\n    // ... use diff ...\n}
\n

Consider changing it to

\n\n
if let Some(diff) = foo.checked_sub(bar) {\n    // ... use diff ...\n}
\n

As that does exactly the same thing – including telling the optimizer\nthat the subtraction cannot overflow – but avoids needing unsafe.

\n
§Safety
\n

This results in undefined behavior when\nself - rhs > usize::MAX or self - rhs < usize::MIN,\ni.e. when checked_sub would return None.

\n
1.0.0 (const: 1.47.0) · source

pub const fn checked_mul(self, rhs: usize) -> Option<usize>

Checked integer multiplication. Computes self * rhs, returning\nNone if overflow occurred.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(5usize.checked_mul(1), Some(5));\nassert_eq!(usize::MAX.checked_mul(2), None);
\n
source

pub const fn strict_mul(self, rhs: usize) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict integer multiplication. Computes self * rhs, panicking if\noverflow occurred.

\n
§Panics
§Overflow behavior
\n

This function will always panic on overflow, regardless of whether overflow checks are enabled.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(5usize.strict_mul(1), 5);
\n

The following panics because of overflow:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = usize::MAX.strict_mul(2);
\n
1.79.0 (const: 1.79.0) · source

pub const unsafe fn unchecked_mul(self, rhs: usize) -> usize

Unchecked integer multiplication. Computes self * rhs, assuming overflow\ncannot occur.

\n

Calling x.unchecked_mul(y) is semantically equivalent to calling\nx.checked_mul(y).unwrap_unchecked().

\n

If you’re just trying to avoid the panic in debug mode, then do not\nuse this. Instead, you’re looking for wrapping_mul.

\n
§Safety
\n

This results in undefined behavior when\nself * rhs > usize::MAX or self * rhs < usize::MIN,\ni.e. when checked_mul would return None.

\n
1.0.0 (const: 1.52.0) · source

pub const fn checked_div(self, rhs: usize) -> Option<usize>

Checked integer division. Computes self / rhs, returning None\nif rhs == 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(128usize.checked_div(2), Some(64));\nassert_eq!(1usize.checked_div(0), None);
\n
source

pub const fn strict_div(self, rhs: usize) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict integer division. Computes self / rhs.\nStrict division on unsigned types is just normal division.\nThere’s no way overflow could ever happen.\nThis function exists, so that all operations\nare accounted for in the strict operations.

\n
§Panics
\n

This function will panic if rhs is zero.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(100usize.strict_div(10), 10);
\n

The following panics because of division by zero:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = (1usize).strict_div(0);
\n
1.38.0 (const: 1.52.0) · source

pub const fn checked_div_euclid(self, rhs: usize) -> Option<usize>

Checked Euclidean division. Computes self.div_euclid(rhs), returning None\nif rhs == 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(128usize.checked_div_euclid(2), Some(64));\nassert_eq!(1usize.checked_div_euclid(0), None);
\n
source

pub const fn strict_div_euclid(self, rhs: usize) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict Euclidean division. Computes self.div_euclid(rhs).\nStrict division on unsigned types is just normal division.\nThere’s no way overflow could ever happen.\nThis function exists, so that all operations\nare accounted for in the strict operations.\nSince, for the positive integers, all common\ndefinitions of division are equal, this\nis exactly equal to self.strict_div(rhs).

\n
§Panics
\n

This function will panic if rhs is zero.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(100usize.strict_div_euclid(10), 10);
\n

The following panics because of division by zero:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = (1usize).strict_div_euclid(0);
\n
1.7.0 (const: 1.52.0) · source

pub const fn checked_rem(self, rhs: usize) -> Option<usize>

Checked integer remainder. Computes self % rhs, returning None\nif rhs == 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(5usize.checked_rem(2), Some(1));\nassert_eq!(5usize.checked_rem(0), None);
\n
source

pub const fn strict_rem(self, rhs: usize) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict integer remainder. Computes self % rhs.\nStrict remainder calculation on unsigned types is\njust the regular remainder calculation.\nThere’s no way overflow could ever happen.\nThis function exists, so that all operations\nare accounted for in the strict operations.

\n
§Panics
\n

This function will panic if rhs is zero.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(100usize.strict_rem(10), 0);
\n

The following panics because of division by zero:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = 5usize.strict_rem(0);
\n
1.38.0 (const: 1.52.0) · source

pub const fn checked_rem_euclid(self, rhs: usize) -> Option<usize>

Checked Euclidean modulo. Computes self.rem_euclid(rhs), returning None\nif rhs == 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(5usize.checked_rem_euclid(2), Some(1));\nassert_eq!(5usize.checked_rem_euclid(0), None);
\n
source

pub const fn strict_rem_euclid(self, rhs: usize) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict Euclidean modulo. Computes self.rem_euclid(rhs).\nStrict modulo calculation on unsigned types is\njust the regular remainder calculation.\nThere’s no way overflow could ever happen.\nThis function exists, so that all operations\nare accounted for in the strict operations.\nSince, for the positive integers, all common\ndefinitions of division are equal, this\nis exactly equal to self.strict_rem(rhs).

\n
§Panics
\n

This function will panic if rhs is zero.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(100usize.strict_rem_euclid(10), 0);
\n

The following panics because of division by zero:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = 5usize.strict_rem_euclid(0);
\n
1.67.0 (const: 1.67.0) · source

pub const fn ilog(self, base: usize) -> u32

Returns the logarithm of the number with respect to an arbitrary base,\nrounded down.

\n

This method might not be optimized owing to implementation details;\nilog2 can produce results more efficiently for base 2, and ilog10\ncan produce results more efficiently for base 10.

\n
§Panics
\n

This function will panic if self is zero, or if base is less than 2.

\n
§Examples
\n
assert_eq!(5usize.ilog(5), 1);
\n
1.67.0 (const: 1.67.0) · source

pub const fn ilog2(self) -> u32

Returns the base 2 logarithm of the number, rounded down.

\n
§Panics
\n

This function will panic if self is zero.

\n
§Examples
\n
assert_eq!(2usize.ilog2(), 1);
\n
1.67.0 (const: 1.67.0) · source

pub const fn ilog10(self) -> u32

Returns the base 10 logarithm of the number, rounded down.

\n
§Panics
\n

This function will panic if self is zero.

\n
§Example
\n
assert_eq!(10usize.ilog10(), 1);
\n
1.67.0 (const: 1.67.0) · source

pub const fn checked_ilog(self, base: usize) -> Option<u32>

Returns the logarithm of the number with respect to an arbitrary base,\nrounded down.

\n

Returns None if the number is zero, or if the base is not at least 2.

\n

This method might not be optimized owing to implementation details;\nchecked_ilog2 can produce results more efficiently for base 2, and\nchecked_ilog10 can produce results more efficiently for base 10.

\n
§Examples
\n
assert_eq!(5usize.checked_ilog(5), Some(1));
\n
1.67.0 (const: 1.67.0) · source

pub const fn checked_ilog2(self) -> Option<u32>

Returns the base 2 logarithm of the number, rounded down.

\n

Returns None if the number is zero.

\n
§Examples
\n
assert_eq!(2usize.checked_ilog2(), Some(1));
\n
1.67.0 (const: 1.67.0) · source

pub const fn checked_ilog10(self) -> Option<u32>

Returns the base 10 logarithm of the number, rounded down.

\n

Returns None if the number is zero.

\n
§Examples
\n
assert_eq!(10usize.checked_ilog10(), Some(1));
\n
1.7.0 (const: 1.47.0) · source

pub const fn checked_neg(self) -> Option<usize>

Checked negation. Computes -self, returning None unless self == 0.

\n

Note that negating any positive integer will overflow.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(0usize.checked_neg(), Some(0));\nassert_eq!(1usize.checked_neg(), None);
\n
source

pub const fn strict_neg(self) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict negation. Computes -self, panicking unless self == 0.

\n

Note that negating any positive integer will overflow.

\n
§Panics
§Overflow behavior
\n

This function will always panic on overflow, regardless of whether overflow checks are enabled.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(0usize.strict_neg(), 0);
\n

The following panics because of overflow:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = 1usize.strict_neg();
\n
1.7.0 (const: 1.47.0) · source

pub const fn checked_shl(self, rhs: u32) -> Option<usize>

Checked shift left. Computes self << rhs, returning None\nif rhs is larger than or equal to the number of bits in self.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(0x1usize.checked_shl(4), Some(0x10));\nassert_eq!(0x10usize.checked_shl(129), None);
\n
source

pub const fn strict_shl(self, rhs: u32) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict shift left. Computes self << rhs, panicking if rhs is larger\nthan or equal to the number of bits in self.

\n
§Panics
§Overflow behavior
\n

This function will always panic on overflow, regardless of whether overflow checks are enabled.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(0x1usize.strict_shl(4), 0x10);
\n

The following panics because of overflow:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = 0x10usize.strict_shl(129);
\n
source

pub const unsafe fn unchecked_shl(self, rhs: u32) -> usize

🔬This is a nightly-only experimental API. (unchecked_shifts)

Unchecked shift left. Computes self << rhs, assuming that\nrhs is less than the number of bits in self.

\n
§Safety
\n

This results in undefined behavior if rhs is larger than\nor equal to the number of bits in self,\ni.e. when checked_shl would return None.

\n
1.7.0 (const: 1.47.0) · source

pub const fn checked_shr(self, rhs: u32) -> Option<usize>

Checked shift right. Computes self >> rhs, returning None\nif rhs is larger than or equal to the number of bits in self.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(0x10usize.checked_shr(4), Some(0x1));\nassert_eq!(0x10usize.checked_shr(129), None);
\n
source

pub const fn strict_shr(self, rhs: u32) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict shift right. Computes self >> rhs, panicking rhs is\nlarger than or equal to the number of bits in self.

\n
§Panics
§Overflow behavior
\n

This function will always panic on overflow, regardless of whether overflow checks are enabled.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(0x10usize.strict_shr(4), 0x1);
\n

The following panics because of overflow:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = 0x10usize.strict_shr(129);
\n
source

pub const unsafe fn unchecked_shr(self, rhs: u32) -> usize

🔬This is a nightly-only experimental API. (unchecked_shifts)

Unchecked shift right. Computes self >> rhs, assuming that\nrhs is less than the number of bits in self.

\n
§Safety
\n

This results in undefined behavior if rhs is larger than\nor equal to the number of bits in self,\ni.e. when checked_shr would return None.

\n
1.34.0 (const: 1.50.0) · source

pub const fn checked_pow(self, exp: u32) -> Option<usize>

Checked exponentiation. Computes self.pow(exp), returning None if\noverflow occurred.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(2usize.checked_pow(5), Some(32));\nassert_eq!(usize::MAX.checked_pow(2), None);
\n
source

pub const fn strict_pow(self, exp: u32) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict exponentiation. Computes self.pow(exp), panicking if\noverflow occurred.

\n
§Panics
§Overflow behavior
\n

This function will always panic on overflow, regardless of whether overflow checks are enabled.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(2usize.strict_pow(5), 32);
\n

The following panics because of overflow:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = usize::MAX.strict_pow(2);
\n
1.0.0 (const: 1.47.0) · source

pub const fn saturating_add(self, rhs: usize) -> usize

Saturating integer addition. Computes self + rhs, saturating at\nthe numeric bounds instead of overflowing.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(100usize.saturating_add(1), 101);\nassert_eq!(usize::MAX.saturating_add(127), usize::MAX);
\n
1.66.0 (const: 1.66.0) · source

pub const fn saturating_add_signed(self, rhs: isize) -> usize

Saturating addition with a signed integer. Computes self + rhs,\nsaturating at the numeric bounds instead of overflowing.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(1usize.saturating_add_signed(2), 3);\nassert_eq!(1usize.saturating_add_signed(-2), 0);\nassert_eq!((usize::MAX - 2).saturating_add_signed(4), usize::MAX);
\n
1.0.0 (const: 1.47.0) · source

pub const fn saturating_sub(self, rhs: usize) -> usize

Saturating integer subtraction. Computes self - rhs, saturating\nat the numeric bounds instead of overflowing.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(100usize.saturating_sub(27), 73);\nassert_eq!(13usize.saturating_sub(127), 0);
\n
1.7.0 (const: 1.47.0) · source

pub const fn saturating_mul(self, rhs: usize) -> usize

Saturating integer multiplication. Computes self * rhs,\nsaturating at the numeric bounds instead of overflowing.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(2usize.saturating_mul(10), 20);\nassert_eq!((usize::MAX).saturating_mul(10), usize::MAX);
\n
1.58.0 (const: 1.58.0) · source

pub const fn saturating_div(self, rhs: usize) -> usize

Saturating integer division. Computes self / rhs, saturating at the\nnumeric bounds instead of overflowing.

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(5usize.saturating_div(2), 2);\n
\n
1.34.0 (const: 1.50.0) · source

pub const fn saturating_pow(self, exp: u32) -> usize

Saturating integer exponentiation. Computes self.pow(exp),\nsaturating at the numeric bounds instead of overflowing.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(4usize.saturating_pow(3), 64);\nassert_eq!(usize::MAX.saturating_pow(2), usize::MAX);
\n
1.0.0 (const: 1.32.0) · source

pub const fn wrapping_add(self, rhs: usize) -> usize

Wrapping (modular) addition. Computes self + rhs,\nwrapping around at the boundary of the type.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(200usize.wrapping_add(55), 255);\nassert_eq!(200usize.wrapping_add(usize::MAX), 199);
\n
1.66.0 (const: 1.66.0) · source

pub const fn wrapping_add_signed(self, rhs: isize) -> usize

Wrapping (modular) addition with a signed integer. Computes\nself + rhs, wrapping around at the boundary of the type.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(1usize.wrapping_add_signed(2), 3);\nassert_eq!(1usize.wrapping_add_signed(-2), usize::MAX);\nassert_eq!((usize::MAX - 2).wrapping_add_signed(4), 1);
\n
1.0.0 (const: 1.32.0) · source

pub const fn wrapping_sub(self, rhs: usize) -> usize

Wrapping (modular) subtraction. Computes self - rhs,\nwrapping around at the boundary of the type.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(100usize.wrapping_sub(100), 0);\nassert_eq!(100usize.wrapping_sub(usize::MAX), 101);
\n
1.0.0 (const: 1.32.0) · source

pub const fn wrapping_mul(self, rhs: usize) -> usize

Wrapping (modular) multiplication. Computes self * rhs, wrapping around at the boundary of the type.

\n
§Examples
\n

Basic usage:

\n

Please note that this example is shared between integer types.\nWhich explains why u8 is used here.

\n\n
assert_eq!(10u8.wrapping_mul(12), 120);\nassert_eq!(25u8.wrapping_mul(12), 44);
\n
1.2.0 (const: 1.52.0) · source

pub const fn wrapping_div(self, rhs: usize) -> usize

Wrapping (modular) division. Computes self / rhs.\nWrapped division on unsigned types is just normal division.\nThere’s no way wrapping could ever happen.\nThis function exists, so that all operations\nare accounted for in the wrapping operations.

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(100usize.wrapping_div(10), 10);
\n
1.38.0 (const: 1.52.0) · source

pub const fn wrapping_div_euclid(self, rhs: usize) -> usize

Wrapping Euclidean division. Computes self.div_euclid(rhs).\nWrapped division on unsigned types is just normal division.\nThere’s no way wrapping could ever happen.\nThis function exists, so that all operations\nare accounted for in the wrapping operations.\nSince, for the positive integers, all common\ndefinitions of division are equal, this\nis exactly equal to self.wrapping_div(rhs).

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(100usize.wrapping_div_euclid(10), 10);
\n
1.2.0 (const: 1.52.0) · source

pub const fn wrapping_rem(self, rhs: usize) -> usize

Wrapping (modular) remainder. Computes self % rhs.\nWrapped remainder calculation on unsigned types is\njust the regular remainder calculation.\nThere’s no way wrapping could ever happen.\nThis function exists, so that all operations\nare accounted for in the wrapping operations.

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(100usize.wrapping_rem(10), 0);
\n
1.38.0 (const: 1.52.0) · source

pub const fn wrapping_rem_euclid(self, rhs: usize) -> usize

Wrapping Euclidean modulo. Computes self.rem_euclid(rhs).\nWrapped modulo calculation on unsigned types is\njust the regular remainder calculation.\nThere’s no way wrapping could ever happen.\nThis function exists, so that all operations\nare accounted for in the wrapping operations.\nSince, for the positive integers, all common\ndefinitions of division are equal, this\nis exactly equal to self.wrapping_rem(rhs).

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(100usize.wrapping_rem_euclid(10), 0);
\n
1.2.0 (const: 1.32.0) · source

pub const fn wrapping_neg(self) -> usize

Wrapping (modular) negation. Computes -self,\nwrapping around at the boundary of the type.

\n

Since unsigned types do not have negative equivalents\nall applications of this function will wrap (except for -0).\nFor values smaller than the corresponding signed type’s maximum\nthe result is the same as casting the corresponding signed value.\nAny larger values are equivalent to MAX + 1 - (val - MAX - 1) where\nMAX is the corresponding signed type’s maximum.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(0_usize.wrapping_neg(), 0);\nassert_eq!(usize::MAX.wrapping_neg(), 1);\nassert_eq!(13_usize.wrapping_neg(), (!13) + 1);\nassert_eq!(42_usize.wrapping_neg(), !(42 - 1));
\n
1.2.0 (const: 1.32.0) · source

pub const fn wrapping_shl(self, rhs: u32) -> usize

Panic-free bitwise shift-left; yields self << mask(rhs),\nwhere mask removes any high-order bits of rhs that\nwould cause the shift to exceed the bitwidth of the type.

\n

Note that this is not the same as a rotate-left; the\nRHS of a wrapping shift-left is restricted to the range\nof the type, rather than the bits shifted out of the LHS\nbeing returned to the other end. The primitive integer\ntypes all implement a rotate_left function,\nwhich may be what you want instead.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(1usize.wrapping_shl(7), 128);\nassert_eq!(1usize.wrapping_shl(128), 1);
\n
1.2.0 (const: 1.32.0) · source

pub const fn wrapping_shr(self, rhs: u32) -> usize

Panic-free bitwise shift-right; yields self >> mask(rhs),\nwhere mask removes any high-order bits of rhs that\nwould cause the shift to exceed the bitwidth of the type.

\n

Note that this is not the same as a rotate-right; the\nRHS of a wrapping shift-right is restricted to the range\nof the type, rather than the bits shifted out of the LHS\nbeing returned to the other end. The primitive integer\ntypes all implement a rotate_right function,\nwhich may be what you want instead.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(128usize.wrapping_shr(7), 1);\nassert_eq!(128usize.wrapping_shr(128), 128);
\n
1.34.0 (const: 1.50.0) · source

pub const fn wrapping_pow(self, exp: u32) -> usize

Wrapping (modular) exponentiation. Computes self.pow(exp),\nwrapping around at the boundary of the type.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(3usize.wrapping_pow(5), 243);\nassert_eq!(3u8.wrapping_pow(6), 217);
\n
1.7.0 (const: 1.32.0) · source

pub const fn overflowing_add(self, rhs: usize) -> (usize, bool)

Calculates self + rhs

\n

Returns a tuple of the addition along with a boolean indicating\nwhether an arithmetic overflow would occur. If an overflow would\nhave occurred then the wrapped value is returned.

\n
§Examples
\n

Basic usage

\n\n
assert_eq!(5usize.overflowing_add(2), (7, false));\nassert_eq!(usize::MAX.overflowing_add(1), (0, true));
\n
source

pub const fn carrying_add(self, rhs: usize, carry: bool) -> (usize, bool)

🔬This is a nightly-only experimental API. (bigint_helper_methods)

Calculates self + rhs + carry and returns a tuple containing\nthe sum and the output carry.

\n

Performs “ternary addition” of two integer operands and a carry-in\nbit, and returns an output integer and a carry-out bit. This allows\nchaining together multiple additions to create a wider addition, and\ncan be useful for bignum addition.

\n

This can be thought of as a 64-bit “full adder”, in the electronics sense.

\n

If the input carry is false, this method is equivalent to\noverflowing_add, and the output carry is\nequal to the overflow flag. Note that although carry and overflow\nflags are similar for unsigned integers, they are different for\nsigned integers.

\n
§Examples
\n
#![feature(bigint_helper_methods)]\n\n//    3  MAX    (a = 3 × 2^64 + 2^64 - 1)\n// +  5    7    (b = 5 × 2^64 + 7)\n// ---------\n//    9    6    (sum = 9 × 2^64 + 6)\n\nlet (a1, a0): (usize, usize) = (3, usize::MAX);\nlet (b1, b0): (usize, usize) = (5, 7);\nlet carry0 = false;\n\nlet (sum0, carry1) = a0.carrying_add(b0, carry0);\nassert_eq!(carry1, true);\nlet (sum1, carry2) = a1.carrying_add(b1, carry1);\nassert_eq!(carry2, false);\n\nassert_eq!((sum1, sum0), (9, 6));
\n
1.66.0 (const: 1.66.0) · source

pub const fn overflowing_add_signed(self, rhs: isize) -> (usize, bool)

Calculates self + rhs with a signed rhs

\n

Returns a tuple of the addition along with a boolean indicating\nwhether an arithmetic overflow would occur. If an overflow would\nhave occurred then the wrapped value is returned.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(1usize.overflowing_add_signed(2), (3, false));\nassert_eq!(1usize.overflowing_add_signed(-2), (usize::MAX, true));\nassert_eq!((usize::MAX - 2).overflowing_add_signed(4), (1, true));
\n
1.7.0 (const: 1.32.0) · source

pub const fn overflowing_sub(self, rhs: usize) -> (usize, bool)

Calculates self - rhs

\n

Returns a tuple of the subtraction along with a boolean indicating\nwhether an arithmetic overflow would occur. If an overflow would\nhave occurred then the wrapped value is returned.

\n
§Examples
\n

Basic usage

\n\n
assert_eq!(5usize.overflowing_sub(2), (3, false));\nassert_eq!(0usize.overflowing_sub(1), (usize::MAX, true));
\n
source

pub const fn borrowing_sub(self, rhs: usize, borrow: bool) -> (usize, bool)

🔬This is a nightly-only experimental API. (bigint_helper_methods)

Calculates selfrhsborrow and returns a tuple\ncontaining the difference and the output borrow.

\n

Performs “ternary subtraction” by subtracting both an integer\noperand and a borrow-in bit from self, and returns an output\ninteger and a borrow-out bit. This allows chaining together multiple\nsubtractions to create a wider subtraction, and can be useful for\nbignum subtraction.

\n
§Examples
\n
#![feature(bigint_helper_methods)]\n\n//    9    6    (a = 9 × 2^64 + 6)\n// -  5    7    (b = 5 × 2^64 + 7)\n// ---------\n//    3  MAX    (diff = 3 × 2^64 + 2^64 - 1)\n\nlet (a1, a0): (usize, usize) = (9, 6);\nlet (b1, b0): (usize, usize) = (5, 7);\nlet borrow0 = false;\n\nlet (diff0, borrow1) = a0.borrowing_sub(b0, borrow0);\nassert_eq!(borrow1, true);\nlet (diff1, borrow2) = a1.borrowing_sub(b1, borrow1);\nassert_eq!(borrow2, false);\n\nassert_eq!((diff1, diff0), (3, usize::MAX));
\n
1.60.0 (const: 1.60.0) · source

pub const fn abs_diff(self, other: usize) -> usize

Computes the absolute difference between self and other.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(100usize.abs_diff(80), 20usize);\nassert_eq!(100usize.abs_diff(110), 10usize);
\n
1.7.0 (const: 1.32.0) · source

pub const fn overflowing_mul(self, rhs: usize) -> (usize, bool)

Calculates the multiplication of self and rhs.

\n

Returns a tuple of the multiplication along with a boolean\nindicating whether an arithmetic overflow would occur. If an\noverflow would have occurred then the wrapped value is returned.

\n
§Examples
\n

Basic usage:

\n

Please note that this example is shared between integer types.\nWhich explains why u32 is used here.

\n\n
assert_eq!(5u32.overflowing_mul(2), (10, false));\nassert_eq!(1_000_000_000u32.overflowing_mul(10), (1410065408, true));
\n
1.7.0 (const: 1.52.0) · source

pub const fn overflowing_div(self, rhs: usize) -> (usize, bool)

Calculates the divisor when self is divided by rhs.

\n

Returns a tuple of the divisor along with a boolean indicating\nwhether an arithmetic overflow would occur. Note that for unsigned\nintegers overflow never occurs, so the second value is always\nfalse.

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage

\n\n
assert_eq!(5usize.overflowing_div(2), (2, false));
\n
1.38.0 (const: 1.52.0) · source

pub const fn overflowing_div_euclid(self, rhs: usize) -> (usize, bool)

Calculates the quotient of Euclidean division self.div_euclid(rhs).

\n

Returns a tuple of the divisor along with a boolean indicating\nwhether an arithmetic overflow would occur. Note that for unsigned\nintegers overflow never occurs, so the second value is always\nfalse.\nSince, for the positive integers, all common\ndefinitions of division are equal, this\nis exactly equal to self.overflowing_div(rhs).

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage

\n\n
assert_eq!(5usize.overflowing_div_euclid(2), (2, false));
\n
1.7.0 (const: 1.52.0) · source

pub const fn overflowing_rem(self, rhs: usize) -> (usize, bool)

Calculates the remainder when self is divided by rhs.

\n

Returns a tuple of the remainder after dividing along with a boolean\nindicating whether an arithmetic overflow would occur. Note that for\nunsigned integers overflow never occurs, so the second value is\nalways false.

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage

\n\n
assert_eq!(5usize.overflowing_rem(2), (1, false));
\n
1.38.0 (const: 1.52.0) · source

pub const fn overflowing_rem_euclid(self, rhs: usize) -> (usize, bool)

Calculates the remainder self.rem_euclid(rhs) as if by Euclidean division.

\n

Returns a tuple of the modulo after dividing along with a boolean\nindicating whether an arithmetic overflow would occur. Note that for\nunsigned integers overflow never occurs, so the second value is\nalways false.\nSince, for the positive integers, all common\ndefinitions of division are equal, this operation\nis exactly equal to self.overflowing_rem(rhs).

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage

\n\n
assert_eq!(5usize.overflowing_rem_euclid(2), (1, false));
\n
1.7.0 (const: 1.32.0) · source

pub const fn overflowing_neg(self) -> (usize, bool)

Negates self in an overflowing fashion.

\n

Returns !self + 1 using wrapping operations to return the value\nthat represents the negation of this unsigned value. Note that for\npositive unsigned values overflow always occurs, but negating 0 does\nnot overflow.

\n
§Examples
\n

Basic usage

\n\n
assert_eq!(0usize.overflowing_neg(), (0, false));\nassert_eq!(2usize.overflowing_neg(), (-2i32 as usize, true));
\n
1.7.0 (const: 1.32.0) · source

pub const fn overflowing_shl(self, rhs: u32) -> (usize, bool)

Shifts self left by rhs bits.

\n

Returns a tuple of the shifted version of self along with a boolean\nindicating whether the shift value was larger than or equal to the\nnumber of bits. If the shift value is too large, then value is\nmasked (N-1) where N is the number of bits, and this value is then\nused to perform the shift.

\n
§Examples
\n

Basic usage

\n\n
assert_eq!(0x1usize.overflowing_shl(4), (0x10, false));\nassert_eq!(0x1usize.overflowing_shl(132), (0x10, true));
\n
1.7.0 (const: 1.32.0) · source

pub const fn overflowing_shr(self, rhs: u32) -> (usize, bool)

Shifts self right by rhs bits.

\n

Returns a tuple of the shifted version of self along with a boolean\nindicating whether the shift value was larger than or equal to the\nnumber of bits. If the shift value is too large, then value is\nmasked (N-1) where N is the number of bits, and this value is then\nused to perform the shift.

\n
§Examples
\n

Basic usage

\n\n
assert_eq!(0x10usize.overflowing_shr(4), (0x1, false));\nassert_eq!(0x10usize.overflowing_shr(132), (0x1, true));
\n
1.34.0 (const: 1.50.0) · source

pub const fn overflowing_pow(self, exp: u32) -> (usize, bool)

Raises self to the power of exp, using exponentiation by squaring.

\n

Returns a tuple of the exponentiation along with a bool indicating\nwhether an overflow happened.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(3usize.overflowing_pow(5), (243, false));\nassert_eq!(3u8.overflowing_pow(6), (217, true));
\n
1.0.0 (const: 1.50.0) · source

pub const fn pow(self, exp: u32) -> usize

Raises self to the power of exp, using exponentiation by squaring.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(2usize.pow(5), 32);
\n
source

pub const fn isqrt(self) -> usize

🔬This is a nightly-only experimental API. (isqrt)

Returns the square root of the number, rounded down.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(isqrt)]\nassert_eq!(10usize.isqrt(), 3);
\n
1.38.0 (const: 1.52.0) · source

pub const fn div_euclid(self, rhs: usize) -> usize

Performs Euclidean division.

\n

Since, for the positive integers, all common\ndefinitions of division are equal, this\nis exactly equal to self / rhs.

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(7usize.div_euclid(4), 1); // or any other integer type
\n
1.38.0 (const: 1.52.0) · source

pub const fn rem_euclid(self, rhs: usize) -> usize

Calculates the least remainder of self (mod rhs).

\n

Since, for the positive integers, all common\ndefinitions of division are equal, this\nis exactly equal to self % rhs.

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(7usize.rem_euclid(4), 3); // or any other integer type
\n
source

pub const fn div_floor(self, rhs: usize) -> usize

🔬This is a nightly-only experimental API. (int_roundings)

Calculates the quotient of self and rhs, rounding the result towards negative infinity.

\n

This is the same as performing self / rhs for all unsigned integers.

\n
§Panics
\n

This function will panic if rhs is zero.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(int_roundings)]\nassert_eq!(7_usize.div_floor(4), 1);
\n
1.73.0 (const: 1.73.0) · source

pub const fn div_ceil(self, rhs: usize) -> usize

Calculates the quotient of self and rhs, rounding the result towards positive infinity.

\n
§Panics
\n

This function will panic if rhs is zero.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(7_usize.div_ceil(4), 2);
\n
1.73.0 (const: 1.73.0) · source

pub const fn next_multiple_of(self, rhs: usize) -> usize

Calculates the smallest value greater than or equal to self that\nis a multiple of rhs.

\n
§Panics
\n

This function will panic if rhs is zero.

\n
§Overflow behavior
\n

On overflow, this function will panic if overflow checks are enabled (default in debug\nmode) and wrap if overflow checks are disabled (default in release mode).

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(16_usize.next_multiple_of(8), 16);\nassert_eq!(23_usize.next_multiple_of(8), 24);
\n
1.73.0 (const: 1.73.0) · source

pub const fn checked_next_multiple_of(self, rhs: usize) -> Option<usize>

Calculates the smallest value greater than or equal to self that\nis a multiple of rhs. Returns None if rhs is zero or the\noperation would result in overflow.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(16_usize.checked_next_multiple_of(8), Some(16));\nassert_eq!(23_usize.checked_next_multiple_of(8), Some(24));\nassert_eq!(1_usize.checked_next_multiple_of(0), None);\nassert_eq!(usize::MAX.checked_next_multiple_of(2), None);
\n
1.0.0 (const: 1.32.0) · source

pub const fn is_power_of_two(self) -> bool

Returns true if and only if self == 2^k for some k.

\n
§Examples
\n

Basic usage:

\n\n
assert!(16usize.is_power_of_two());\nassert!(!10usize.is_power_of_two());
\n
1.0.0 (const: 1.50.0) · source

pub const fn next_power_of_two(self) -> usize

Returns the smallest power of two greater than or equal to self.

\n

When return value overflows (i.e., self > (1 << (N-1)) for type\nuN), it panics in debug mode and the return value is wrapped to 0 in\nrelease mode (the only situation in which this method can return 0).

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(2usize.next_power_of_two(), 2);\nassert_eq!(3usize.next_power_of_two(), 4);\nassert_eq!(0usize.next_power_of_two(), 1);
\n
1.0.0 (const: 1.50.0) · source

pub const fn checked_next_power_of_two(self) -> Option<usize>

Returns the smallest power of two greater than or equal to self. If\nthe next power of two is greater than the type’s maximum value,\nNone is returned, otherwise the power of two is wrapped in Some.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(2usize.checked_next_power_of_two(), Some(2));\nassert_eq!(3usize.checked_next_power_of_two(), Some(4));\nassert_eq!(usize::MAX.checked_next_power_of_two(), None);
\n
source

pub const fn wrapping_next_power_of_two(self) -> usize

🔬This is a nightly-only experimental API. (wrapping_next_power_of_two)

Returns the smallest power of two greater than or equal to n. If\nthe next power of two is greater than the type’s maximum value,\nthe return value is wrapped to 0.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(wrapping_next_power_of_two)]\n\nassert_eq!(2usize.wrapping_next_power_of_two(), 2);\nassert_eq!(3usize.wrapping_next_power_of_two(), 4);\nassert_eq!(usize::MAX.wrapping_next_power_of_two(), 0);
\n
1.32.0 (const: 1.44.0) · source

pub const fn to_be_bytes(self) -> [u8; 8]

Return the memory representation of this integer as a byte array in\nbig-endian (network) byte order.

\n

Note: This function returns an array of length 2, 4 or 8 bytes\ndepending on the target pointer size.

\n
§Examples
\n
let bytes = 0x1234567890123456usize.to_be_bytes();\nassert_eq!(bytes, [0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]);
\n
1.32.0 (const: 1.44.0) · source

pub const fn to_le_bytes(self) -> [u8; 8]

Return the memory representation of this integer as a byte array in\nlittle-endian byte order.

\n

Note: This function returns an array of length 2, 4 or 8 bytes\ndepending on the target pointer size.

\n
§Examples
\n
let bytes = 0x1234567890123456usize.to_le_bytes();\nassert_eq!(bytes, [0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]);
\n
1.32.0 (const: 1.44.0) · source

pub const fn to_ne_bytes(self) -> [u8; 8]

Return the memory representation of this integer as a byte array in\nnative byte order.

\n

As the target platform’s native endianness is used, portable code\nshould use to_be_bytes or to_le_bytes, as appropriate,\ninstead.

\n

Note: This function returns an array of length 2, 4 or 8 bytes\ndepending on the target pointer size.

\n
§Examples
\n
let bytes = 0x1234567890123456usize.to_ne_bytes();\nassert_eq!(\n    bytes,\n    if cfg!(target_endian = \"big\") {\n        [0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]\n    } else {\n        [0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]\n    }\n);
\n
1.32.0 (const: 1.44.0) · source

pub const fn from_be_bytes(bytes: [u8; 8]) -> usize

Create a native endian integer value from its representation\nas a byte array in big endian.

\n

Note: This function takes an array of length 2, 4 or 8 bytes\ndepending on the target pointer size.

\n
§Examples
\n
let value = usize::from_be_bytes([0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]);\nassert_eq!(value, 0x1234567890123456);
\n

When starting from a slice rather than an array, fallible conversion APIs can be used:

\n\n
fn read_be_usize(input: &mut &[u8]) -> usize {\n    let (int_bytes, rest) = input.split_at(std::mem::size_of::<usize>());\n    *input = rest;\n    usize::from_be_bytes(int_bytes.try_into().unwrap())\n}
\n
1.32.0 (const: 1.44.0) · source

pub const fn from_le_bytes(bytes: [u8; 8]) -> usize

Create a native endian integer value from its representation\nas a byte array in little endian.

\n

Note: This function takes an array of length 2, 4 or 8 bytes\ndepending on the target pointer size.

\n
§Examples
\n
let value = usize::from_le_bytes([0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]);\nassert_eq!(value, 0x1234567890123456);
\n

When starting from a slice rather than an array, fallible conversion APIs can be used:

\n\n
fn read_le_usize(input: &mut &[u8]) -> usize {\n    let (int_bytes, rest) = input.split_at(std::mem::size_of::<usize>());\n    *input = rest;\n    usize::from_le_bytes(int_bytes.try_into().unwrap())\n}
\n
1.32.0 (const: 1.44.0) · source

pub const fn from_ne_bytes(bytes: [u8; 8]) -> usize

Create a native endian integer value from its memory representation\nas a byte array in native endianness.

\n

As the target platform’s native endianness is used, portable code\nlikely wants to use from_be_bytes or from_le_bytes, as\nappropriate instead.

\n

Note: This function takes an array of length 2, 4 or 8 bytes\ndepending on the target pointer size.

\n
§Examples
\n
let value = usize::from_ne_bytes(if cfg!(target_endian = \"big\") {\n    [0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]\n} else {\n    [0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]\n});\nassert_eq!(value, 0x1234567890123456);
\n

When starting from a slice rather than an array, fallible conversion APIs can be used:

\n\n
fn read_ne_usize(input: &mut &[u8]) -> usize {\n    let (int_bytes, rest) = input.split_at(std::mem::size_of::<usize>());\n    *input = rest;\n    usize::from_ne_bytes(int_bytes.try_into().unwrap())\n}
\n
1.0.0 (const: 1.32.0) · source

pub const fn min_value() -> usize

👎Deprecating in a future version: replaced by the MIN associated constant on this type

New code should prefer to use\nusize::MIN instead.

\n

Returns the smallest value that can be represented by this integer type.

\n
1.0.0 (const: 1.32.0) · source

pub const fn max_value() -> usize

👎Deprecating in a future version: replaced by the MAX associated constant on this type

New code should prefer to use\nusize::MAX instead.

\n

Returns the largest value that can be represented by this integer type.

\n
source

pub const fn widening_mul(self, rhs: usize) -> (usize, usize)

🔬This is a nightly-only experimental API. (bigint_helper_methods)

Calculates the complete product self * rhs without the possibility to overflow.

\n

This returns the low-order (wrapping) bits and the high-order (overflow) bits\nof the result as two separate values, in that order.

\n

If you also need to add a carry to the wide result, then you want\nSelf::carrying_mul instead.

\n
§Examples
\n

Basic usage:

\n

Please note that this example is shared between integer types.\nWhich explains why u32 is used here.

\n\n
#![feature(bigint_helper_methods)]\nassert_eq!(5u32.widening_mul(2), (10, 0));\nassert_eq!(1_000_000_000u32.widening_mul(10), (1410065408, 2));
\n
source

pub const fn carrying_mul(self, rhs: usize, carry: usize) -> (usize, usize)

🔬This is a nightly-only experimental API. (bigint_helper_methods)

Calculates the “full multiplication” self * rhs + carry\nwithout the possibility to overflow.

\n

This returns the low-order (wrapping) bits and the high-order (overflow) bits\nof the result as two separate values, in that order.

\n

Performs “long multiplication” which takes in an extra amount to add, and may return an\nadditional amount of overflow. This allows for chaining together multiple\nmultiplications to create “big integers” which represent larger values.

\n

If you don’t need the carry, then you can use Self::widening_mul instead.

\n
§Examples
\n

Basic usage:

\n

Please note that this example is shared between integer types.\nWhich explains why u32 is used here.

\n\n
#![feature(bigint_helper_methods)]\nassert_eq!(5u32.carrying_mul(2, 0), (10, 0));\nassert_eq!(5u32.carrying_mul(2, 10), (20, 0));\nassert_eq!(1_000_000_000u32.carrying_mul(10, 0), (1410065408, 2));\nassert_eq!(1_000_000_000u32.carrying_mul(10, 10), (1410065418, 2));\nassert_eq!(usize::MAX.carrying_mul(usize::MAX, usize::MAX), (0, usize::MAX));
\n

This is the core operation needed for scalar multiplication when\nimplementing it for wider-than-native types.

\n\n
#![feature(bigint_helper_methods)]\nfn scalar_mul_eq(little_endian_digits: &mut Vec<u16>, multiplicand: u16) {\n    let mut carry = 0;\n    for d in little_endian_digits.iter_mut() {\n        (*d, carry) = d.carrying_mul(multiplicand, carry);\n    }\n    if carry != 0 {\n        little_endian_digits.push(carry);\n    }\n}\n\nlet mut v = vec![10, 20];\nscalar_mul_eq(&mut v, 3);\nassert_eq!(v, [30, 60]);\n\nassert_eq!(0x87654321_u64 * 0xFEED, 0x86D3D159E38D);\nlet mut v = vec![0x4321, 0x8765];\nscalar_mul_eq(&mut v, 0xFEED);\nassert_eq!(v, [0xE38D, 0xD159, 0x86D3]);
\n

If carry is zero, this is similar to overflowing_mul,\nexcept that it gives the value of the overflow instead of just whether one happened:

\n\n
#![feature(bigint_helper_methods)]\nlet r = u8::carrying_mul(7, 13, 0);\nassert_eq!((r.0, r.1 != 0), u8::overflowing_mul(7, 13));\nlet r = u8::carrying_mul(13, 42, 0);\nassert_eq!((r.0, r.1 != 0), u8::overflowing_mul(13, 42));
\n

The value of the first field in the returned tuple matches what you’d get\nby combining the wrapping_mul and\nwrapping_add methods:

\n\n
#![feature(bigint_helper_methods)]\nassert_eq!(\n    789_u16.carrying_mul(456, 123).0,\n    789_u16.wrapping_mul(456).wrapping_add(123),\n);
\n
source

pub const fn midpoint(self, rhs: usize) -> usize

🔬This is a nightly-only experimental API. (num_midpoint)

Calculates the middle point of self and rhs.

\n

midpoint(a, b) is (a + b) >> 1 as if it were performed in a\nsufficiently-large signed integral type. This implies that the result is\nalways rounded towards negative infinity and that no overflow will ever occur.

\n
§Examples
\n
#![feature(num_midpoint)]\nassert_eq!(0usize.midpoint(4), 2);\nassert_eq!(1usize.midpoint(4), 2);
\n
",0,"tor_interface::tor_provider::CircuitToken"],["
source§

impl usize

1.0.0 (const: unstable) · source

pub fn from_str_radix(src: &str, radix: u32) -> Result<usize, ParseIntError>

Converts a string slice in a given base to an integer.

\n

The string is expected to be an optional + sign\nfollowed by digits.\nLeading and trailing whitespace represent an error.\nDigits are a subset of these characters, depending on radix:

\n
    \n
  • 0-9
  • \n
  • a-z
  • \n
  • A-Z
  • \n
\n
§Panics
\n

This function panics if radix is not in the range from 2 to 36.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(usize::from_str_radix(\"A\", 16), Ok(10));
\n
",0,"tor_interface::tor_provider::CircuitToken"],["
§

impl AtLeast16 for usize

","AtLeast16","tor_interface::tor_provider::CircuitToken"],["
§

impl AtLeast32 for usize

","AtLeast32","tor_interface::tor_provider::CircuitToken"],["
§

impl AtLeast64 for usize

","AtLeast64","tor_interface::tor_provider::CircuitToken"],["
§

impl AtLeast8 for usize

","AtLeast8","tor_interface::tor_provider::CircuitToken"],["
§

impl AtMost128 for usize

","AtMost128","tor_interface::tor_provider::CircuitToken"],["
§

impl AtMost64 for usize

","AtMost64","tor_interface::tor_provider::CircuitToken"],["
§

impl BitOps for usize

","BitOps","tor_interface::tor_provider::CircuitToken"],["
source§

impl ConstParamTy for usize

","ConstParamTy","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Copy for usize

","Copy","tor_interface::tor_provider::CircuitToken"],["
§

impl DefaultIsZeroes for usize

","DefaultIsZeroes","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Eq for usize

","Eq","tor_interface::tor_provider::CircuitToken"],["
§

impl ExtendTarget<usize> for usize

","ExtendTarget","tor_interface::tor_provider::CircuitToken"],["
source§

impl Index for usize

","Index","tor_interface::tor_provider::CircuitToken"],["
§

impl Index for usize

","Index","tor_interface::tor_provider::CircuitToken"],["
source§

impl Integer for usize

","Integer","tor_interface::tor_provider::CircuitToken"],["
§

impl Is64 for usize

","Is64","tor_interface::tor_provider::CircuitToken"],["
§

impl NotAutoValue for usize

","NotAutoValue","tor_interface::tor_provider::CircuitToken"],["
§

impl NumericOps for usize

","NumericOps","tor_interface::tor_provider::CircuitToken"],["
source§

impl SimdCast for usize

","SimdCast","tor_interface::tor_provider::CircuitToken"],["
source§

impl StructuralPartialEq for usize

","StructuralPartialEq","tor_interface::tor_provider::CircuitToken"],["
§

impl TruncateTarget<u16> for usize

","TruncateTarget","tor_interface::tor_provider::CircuitToken"],["
§

impl TruncateTarget<u8> for usize

","TruncateTarget","tor_interface::tor_provider::CircuitToken"],["
§

impl TruncateTarget<usize> for usize

","TruncateTarget","tor_interface::tor_provider::CircuitToken"],["
source§

impl TrustedStep for usize

","TrustedStep","tor_interface::tor_provider::CircuitToken"],["
§

impl Uint for usize

","Uint","tor_interface::tor_provider::CircuitToken"],["
source§

impl Unsigned for usize

","Unsigned","tor_interface::tor_provider::CircuitToken"],["
source§

impl Weight for usize

","Weight","tor_interface::tor_provider::CircuitToken"],["
source§

impl ZeroablePrimitive for usize

","ZeroablePrimitive","tor_interface::tor_provider::CircuitToken"]] -};if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file +(function() { + var type_impls = Object.fromEntries([["gosling",[["
§

impl<T> Accumulate<T> for usize

§

fn initial(_capacity: Option<usize>) -> usize

Create a new Extend of the correct type
§

fn accumulate(&mut self, _acc: T)

Accumulate the input into an accumulator
","Accumulate","gosling::context::HandshakeHandle"],["
source§

impl<'a> Add<&'a BigInt> for usize

source§

type Output = BigInt

The resulting type after applying the + operator.
source§

fn add(self, other: &BigInt) -> BigInt

Performs the + operation. Read more
","Add<&'a BigInt>","gosling::context::HandshakeHandle"],["
source§

impl<'a> Add<&'a BigUint> for usize

source§

type Output = BigUint

The resulting type after applying the + operator.
source§

fn add(self, other: &BigUint) -> BigUint

Performs the + operation. Read more
","Add<&'a BigUint>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Add<&usize> for usize

source§

type Output = <usize as Add>::Output

The resulting type after applying the + operator.
source§

fn add(self, other: &usize) -> <usize as Add>::Output

Performs the + operation. Read more
","Add<&usize>","gosling::context::HandshakeHandle"],["
source§

impl Add<BigInt> for usize

source§

type Output = BigInt

The resulting type after applying the + operator.
source§

fn add(self, other: BigInt) -> BigInt

Performs the + operation. Read more
","Add","gosling::context::HandshakeHandle"],["
source§

impl Add<BigUint> for usize

source§

type Output = BigUint

The resulting type after applying the + operator.
source§

fn add(self, other: BigUint) -> BigUint

Performs the + operation. Read more
","Add","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Add for usize

source§

type Output = usize

The resulting type after applying the + operator.
source§

fn add(self, other: usize) -> usize

Performs the + operation. Read more
","Add","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl AddAssign<&usize> for usize

source§

fn add_assign(&mut self, other: &usize)

Performs the += operation. Read more
","AddAssign<&usize>","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl AddAssign for usize

source§

fn add_assign(&mut self, other: usize)

Performs the += operation. Read more
","AddAssign","gosling::context::HandshakeHandle"],["
§

impl AsAny for usize

§

fn as_any(&self) -> &(dyn Any + 'static)

Returns thick pointer of &dyn Any type, that can be later downcasted\nback to a reference of the original type.
","AsAny","gosling::context::HandshakeHandle"],["
§

impl AsBytes for usize

§

fn as_bytes(&self) -> &[u8]

Gets the bytes of this value. Read more
§

fn as_bytes_mut(&mut self) -> &mut [u8]
where\n Self: FromBytes,

Gets the bytes of this value mutably. Read more
§

fn write_to(&self, bytes: &mut [u8]) -> Option<()>

Writes a copy of self to bytes. Read more
§

fn write_to_prefix(&self, bytes: &mut [u8]) -> Option<()>

Writes a copy of self to the prefix of bytes. Read more
§

fn write_to_suffix(&self, bytes: &mut [u8]) -> Option<()>

Writes a copy of self to the suffix of bytes. Read more
","AsBytes","gosling::context::HandshakeHandle"],["
source§

impl AsPrimitive<f32> for usize

source§

fn as_(self) -> f32

Convert a value to another, using the as operator.
","AsPrimitive","gosling::context::HandshakeHandle"],["
source§

impl AsPrimitive<f64> for usize

source§

fn as_(self) -> f64

Convert a value to another, using the as operator.
","AsPrimitive","gosling::context::HandshakeHandle"],["
source§

impl AsPrimitive<i128> for usize

source§

fn as_(self) -> i128

Convert a value to another, using the as operator.
","AsPrimitive","gosling::context::HandshakeHandle"],["
source§

impl AsPrimitive<i16> for usize

source§

fn as_(self) -> i16

Convert a value to another, using the as operator.
","AsPrimitive","gosling::context::HandshakeHandle"],["
source§

impl AsPrimitive<i32> for usize

source§

fn as_(self) -> i32

Convert a value to another, using the as operator.
","AsPrimitive","gosling::context::HandshakeHandle"],["
source§

impl AsPrimitive<i64> for usize

source§

fn as_(self) -> i64

Convert a value to another, using the as operator.
","AsPrimitive","gosling::context::HandshakeHandle"],["
source§

impl AsPrimitive<i8> for usize

source§

fn as_(self) -> i8

Convert a value to another, using the as operator.
","AsPrimitive","gosling::context::HandshakeHandle"],["
source§

impl AsPrimitive<isize> for usize

source§

fn as_(self) -> isize

Convert a value to another, using the as operator.
","AsPrimitive","gosling::context::HandshakeHandle"],["
source§

impl AsPrimitive<u128> for usize

source§

fn as_(self) -> u128

Convert a value to another, using the as operator.
","AsPrimitive","gosling::context::HandshakeHandle"],["
source§

impl AsPrimitive<u16> for usize

source§

fn as_(self) -> u16

Convert a value to another, using the as operator.
","AsPrimitive","gosling::context::HandshakeHandle"],["
source§

impl AsPrimitive<u32> for usize

source§

fn as_(self) -> u32

Convert a value to another, using the as operator.
","AsPrimitive","gosling::context::HandshakeHandle"],["
source§

impl AsPrimitive<u64> for usize

source§

fn as_(self) -> u64

Convert a value to another, using the as operator.
","AsPrimitive","gosling::context::HandshakeHandle"],["
source§

impl AsPrimitive<u8> for usize

source§

fn as_(self) -> u8

Convert a value to another, using the as operator.
","AsPrimitive","gosling::context::HandshakeHandle"],["
source§

impl AsPrimitive<usize> for usize

source§

fn as_(self) -> usize

Convert a value to another, using the as operator.
","AsPrimitive","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Binary for usize

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","Binary","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl BitAnd<&usize> for usize

source§

type Output = <usize as BitAnd>::Output

The resulting type after applying the & operator.
source§

fn bitand(self, other: &usize) -> <usize as BitAnd>::Output

Performs the & operation. Read more
","BitAnd<&usize>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl BitAnd for usize

source§

type Output = usize

The resulting type after applying the & operator.
source§

fn bitand(self, rhs: usize) -> usize

Performs the & operation. Read more
","BitAnd","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl BitAndAssign<&usize> for usize

source§

fn bitand_assign(&mut self, other: &usize)

Performs the &= operation. Read more
","BitAndAssign<&usize>","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl BitAndAssign for usize

source§

fn bitand_assign(&mut self, other: usize)

Performs the &= operation. Read more
","BitAndAssign","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl BitOr<&usize> for usize

source§

type Output = <usize as BitOr>::Output

The resulting type after applying the | operator.
source§

fn bitor(self, other: &usize) -> <usize as BitOr>::Output

Performs the | operation. Read more
","BitOr<&usize>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl BitOr for usize

source§

type Output = usize

The resulting type after applying the | operator.
source§

fn bitor(self, rhs: usize) -> usize

Performs the | operation. Read more
","BitOr","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl BitOrAssign<&usize> for usize

source§

fn bitor_assign(&mut self, other: &usize)

Performs the |= operation. Read more
","BitOrAssign<&usize>","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl BitOrAssign for usize

source§

fn bitor_assign(&mut self, other: usize)

Performs the |= operation. Read more
","BitOrAssign","gosling::context::HandshakeHandle"],["
§

impl BitRegister for usize

§

const ALL: usize = 18_446_744_073_709_551_615usize

The literal !0.
§

const INDX: u8 = _

The number of bits required to store an index in the range 0 .. BITS.
§

const MASK: u8 = _

A mask over all bits that can be used as an index within the element.\nThis is the value with the least significant INDX-many bits set high.
","BitRegister","gosling::context::HandshakeHandle"],["
§

impl<'a, T, O> BitSliceIndex<'a, T, O> for usize
where\n T: BitStore,\n O: BitOrder,

§

type Immut = BitRef<'a, Const, T, O>

The output type of immutable access.
§

type Mut = BitRef<'a, Mut, T, O>

The output type of mutable access.
§

fn get(\n self,\n bits: &'a BitSlice<T, O>,\n) -> Option<<usize as BitSliceIndex<'a, T, O>>::Immut>

Immutably indexes into a bit-slice, returning None if self is out of\nbounds. Read more
§

fn get_mut(\n self,\n bits: &'a mut BitSlice<T, O>,\n) -> Option<<usize as BitSliceIndex<'a, T, O>>::Mut>

Mutably indexes into a bit-slice, returning None if self is out of\nbounds. Read more
§

unsafe fn get_unchecked(\n self,\n bits: &'a BitSlice<T, O>,\n) -> <usize as BitSliceIndex<'a, T, O>>::Immut

Immutably indexes into a bit-slice without doing any bounds checking. Read more
§

unsafe fn get_unchecked_mut(\n self,\n bits: &'a mut BitSlice<T, O>,\n) -> <usize as BitSliceIndex<'a, T, O>>::Mut

Mutably indexes into a bit-slice without doing any bounds checking. Read more
§

fn index(\n self,\n bits: &'a BitSlice<T, O>,\n) -> <usize as BitSliceIndex<'a, T, O>>::Immut

Immutably indexes into a bit-slice, panicking if self is out of\nbounds. Read more
§

fn index_mut(\n self,\n bits: &'a mut BitSlice<T, O>,\n) -> <usize as BitSliceIndex<'a, T, O>>::Mut

Mutably indexes into a bit-slice, panicking if self is out of bounds. Read more
","BitSliceIndex<'a, T, O>","gosling::context::HandshakeHandle"],["
§

impl BitStore for usize

§

type Access = Cell<usize>

The unsigned integers will only be BitStore type parameters\nfor handles to unaliased memory, following the normal Rust\nreference rules.

\n
§

type Mem = usize

The element type used in the memory region underlying a BitSlice. It\nis always one of the unsigned integer fundamentals.
§

type Alias = BitSafeUsize

A sibling BitStore implementor that is known to be alias-safe. It is\nused when a BitSlice introduces multiple handles that view the same\nmemory location, and at least one of them has write capabilities to it.\nIt must have the same underlying memory type, and can only change access\npatterns or public-facing usage.
§

type Unalias = usize

The inverse of ::Alias. It is used when a BitSlice removes the\nconditions that required a T -> T::Alias transition.
§

const ZERO: usize = 0usize

The zero constant.
§

fn new(value: <usize as BitStore>::Mem) -> usize

Wraps a raw memory value as a BitStore type.
§

fn load_value(&self) -> <usize as BitStore>::Mem

Loads a value out of the memory system according to the ::Access\nrules. This may be called when the value is aliased by a write-capable\nreference.
§

fn store_value(&mut self, value: <usize as BitStore>::Mem)

Stores a value into the memory system. This is only called when there\nare no other handles to the value, and it may bypass ::Access\nconstraints.
§

const ALIGNED_TO_SIZE: [(); 1] = _

All implementors are required to have their alignment match their size. Read more
§

const ALIAS_WIDTH: [(); 1] = _

All implementors are required to have Self and Self::Alias be equal\nin representation. This is true by fiat for all types except the\nunsigned integers. Read more
§

fn get_bit<O>(&self, index: BitIdx<Self::Mem>) -> bool
where\n O: BitOrder,

Reads a single bit out of the memory system according to the ::Access\nrules. This is lifted from BitAccess so that it can be used\nelsewhere without additional casts. Read more
","BitStore","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl BitXor<&usize> for usize

source§

type Output = <usize as BitXor>::Output

The resulting type after applying the ^ operator.
source§

fn bitxor(self, other: &usize) -> <usize as BitXor>::Output

Performs the ^ operation. Read more
","BitXor<&usize>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl BitXor for usize

source§

type Output = usize

The resulting type after applying the ^ operator.
source§

fn bitxor(self, other: usize) -> usize

Performs the ^ operation. Read more
","BitXor","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl BitXorAssign<&usize> for usize

source§

fn bitxor_assign(&mut self, other: &usize)

Performs the ^= operation. Read more
","BitXorAssign<&usize>","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl BitXorAssign for usize

source§

fn bitxor_assign(&mut self, other: usize)

Performs the ^= operation. Read more
","BitXorAssign","gosling::context::HandshakeHandle"],["
§

impl Bits for usize

§

const EMPTY: usize = 0usize

A value with all bits unset.
§

const ALL: usize = 18_446_744_073_709_551_615usize

A value with all bits set.
","Bits","gosling::context::HandshakeHandle"],["
source§

impl Bounded for usize

source§

fn min_value() -> usize

Returns the smallest finite number this type can represent
source§

fn max_value() -> usize

Returns the largest finite number this type can represent
","Bounded","gosling::context::HandshakeHandle"],["
§

impl CastSigned for usize

§

type Signed = isize

The signed integer type with the same size as Self.
§

fn cast_signed(self) -> <usize as CastSigned>::Signed

Cast an integer to the signed integer of the same size.
","CastSigned","gosling::context::HandshakeHandle"],["
§

impl CastUnsigned for usize

§

type Unsigned = usize

The unsigned integer type with the same size as Self.
§

fn cast_unsigned(self) -> <usize as CastUnsigned>::Unsigned

Cast an integer to the unsigned integer of the same size.
","CastUnsigned","gosling::context::HandshakeHandle"],["
source§

impl CheckedAdd for usize

source§

fn checked_add(&self, v: &usize) -> Option<usize>

Adds two numbers, checking for overflow. If overflow happens, None is\nreturned.
","CheckedAdd","gosling::context::HandshakeHandle"],["
source§

impl CheckedDiv for usize

source§

fn checked_div(&self, v: &usize) -> Option<usize>

Divides two numbers, checking for underflow, overflow and division by\nzero. If any of that happens, None is returned.
","CheckedDiv","gosling::context::HandshakeHandle"],["
source§

impl CheckedEuclid for usize

source§

fn checked_div_euclid(&self, v: &usize) -> Option<usize>

Performs euclid division that returns None instead of panicking on division by zero\nand instead of wrapping around on underflow and overflow.
source§

fn checked_rem_euclid(&self, v: &usize) -> Option<usize>

Finds the euclid remainder of dividing two numbers, checking for underflow, overflow and\ndivision by zero. If any of that happens, None is returned.
source§

fn checked_div_rem_euclid(&self, v: &Self) -> Option<(Self, Self)>

Returns both the quotient and remainder from checked Euclidean division. Read more
","CheckedEuclid","gosling::context::HandshakeHandle"],["
source§

impl CheckedMul for usize

source§

fn checked_mul(&self, v: &usize) -> Option<usize>

Multiplies two numbers, checking for underflow or overflow. If underflow\nor overflow happens, None is returned.
","CheckedMul","gosling::context::HandshakeHandle"],["
source§

impl CheckedNeg for usize

source§

fn checked_neg(&self) -> Option<usize>

Negates a number, returning None for results that can’t be represented, like signed MIN\nvalues that can’t be positive, or non-zero unsigned values that can’t be negative. Read more
","CheckedNeg","gosling::context::HandshakeHandle"],["
source§

impl CheckedRem for usize

source§

fn checked_rem(&self, v: &usize) -> Option<usize>

Finds the remainder of dividing two numbers, checking for underflow, overflow and division\nby zero. If any of that happens, None is returned. Read more
","CheckedRem","gosling::context::HandshakeHandle"],["
source§

impl CheckedShl for usize

source§

fn checked_shl(&self, rhs: u32) -> Option<usize>

Checked shift left. Computes self << rhs, returning None\nif rhs is larger than or equal to the number of bits in self. Read more
","CheckedShl","gosling::context::HandshakeHandle"],["
source§

impl CheckedShr for usize

source§

fn checked_shr(&self, rhs: u32) -> Option<usize>

Checked shift right. Computes self >> rhs, returning None\nif rhs is larger than or equal to the number of bits in self. Read more
","CheckedShr","gosling::context::HandshakeHandle"],["
source§

impl CheckedSub for usize

source§

fn checked_sub(&self, v: &usize) -> Option<usize>

Subtracts two numbers, checking for underflow. If underflow happens,\nNone is returned.
","CheckedSub","gosling::context::HandshakeHandle"],["
§

impl<T> CheckedSum<usize> for T
where\n T: IntoIterator<Item = usize>,

§

fn checked_sum(self) -> Result<usize, Error>

Iterate over the values of this type, computing a checked sum. Read more
","CheckedSum","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Clone for usize

source§

fn clone(&self) -> usize

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
","Clone","gosling::context::HandshakeHandle"],["
source§

impl ConstOne for usize

source§

const ONE: usize = 1usize

The multiplicative identity element of Self, 1.
","ConstOne","gosling::context::HandshakeHandle"],["
source§

impl ConstZero for usize

source§

const ZERO: usize = 0usize

The additive identity element of Self, 0.
","ConstZero","gosling::context::HandshakeHandle"],["
source§

impl ConstantTimeEq for usize

source§

fn ct_eq(&self, other: &usize) -> Choice

Determine if two items are equal. Read more
source§

fn ct_ne(&self, other: &Self) -> Choice

Determine if two items are NOT equal. Read more
","ConstantTimeEq","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Debug for usize

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","Debug","gosling::context::HandshakeHandle"],["
§

impl Decode for usize

Decode a usize.

\n

Uses [Decode] impl on u32 and then converts to a usize, handling\npotential overflow if usize is smaller than u32.

\n

Enforces a library-internal limit of 1048575, as the main use case for\nusize is length prefixes.

\n
§

type Error = Error

Type returned in the event of a decoding error.
§

fn decode(reader: &mut impl Reader) -> Result<usize, Error>

Attempt to decode a value of this type using the provided [Reader].
","Decode","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Default for usize

source§

fn default() -> usize

Returns the default value of 0

\n
","Default","gosling::context::HandshakeHandle"],["
source§

impl<'de> Deserialize<'de> for usize

source§

fn deserialize<D>(\n deserializer: D,\n) -> Result<usize, <D as Deserializer<'de>>::Error>
where\n D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
","Deserialize<'de>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Display for usize

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","Display","gosling::context::HandshakeHandle"],["
source§

impl<'a> Div<&'a BigInt> for usize

source§

type Output = BigInt

The resulting type after applying the / operator.
source§

fn div(self, other: &BigInt) -> BigInt

Performs the / operation. Read more
","Div<&'a BigInt>","gosling::context::HandshakeHandle"],["
source§

impl<'a> Div<&'a BigUint> for usize

source§

type Output = BigUint

The resulting type after applying the / operator.
source§

fn div(self, other: &BigUint) -> BigUint

Performs the / operation. Read more
","Div<&'a BigUint>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Div<&usize> for usize

source§

type Output = <usize as Div>::Output

The resulting type after applying the / operator.
source§

fn div(self, other: &usize) -> <usize as Div>::Output

Performs the / operation. Read more
","Div<&usize>","gosling::context::HandshakeHandle"],["
source§

impl Div<BigInt> for usize

source§

type Output = BigInt

The resulting type after applying the / operator.
source§

fn div(self, other: BigInt) -> BigInt

Performs the / operation. Read more
","Div","gosling::context::HandshakeHandle"],["
source§

impl Div<BigUint> for usize

source§

type Output = BigUint

The resulting type after applying the / operator.
source§

fn div(self, other: BigUint) -> BigUint

Performs the / operation. Read more
","Div","gosling::context::HandshakeHandle"],["
1.51.0 · source§

impl Div<NonZero<usize>> for usize

source§

fn div(self, other: NonZero<usize>) -> usize

This operation rounds towards zero, truncating any fractional\npart of the exact result, and cannot panic.

\n
source§

type Output = usize

The resulting type after applying the / operator.
","Div>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Div for usize

This operation rounds towards zero, truncating any\nfractional part of the exact result.

\n

§Panics

\n

This operation will panic if other == 0.

\n
source§

type Output = usize

The resulting type after applying the / operator.
source§

fn div(self, other: usize) -> usize

Performs the / operation. Read more
","Div","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl DivAssign<&usize> for usize

source§

fn div_assign(&mut self, other: &usize)

Performs the /= operation. Read more
","DivAssign<&usize>","gosling::context::HandshakeHandle"],["
1.79.0 · source§

impl DivAssign<NonZero<usize>> for usize

source§

fn div_assign(&mut self, other: NonZero<usize>)

This operation rounds towards zero, truncating any fractional\npart of the exact result, and cannot panic.

\n
","DivAssign>","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl DivAssign for usize

source§

fn div_assign(&mut self, other: usize)

Performs the /= operation. Read more
","DivAssign","gosling::context::HandshakeHandle"],["
§

impl Encode for usize

Encode a usize as a uint32 as described in RFC4251 § 5.

\n

Uses [Encode] impl on u32 after converting from a usize, handling\npotential overflow if usize is bigger than u32.

\n
§

fn encoded_len(&self) -> Result<usize, Error>

Get the length of this type encoded in bytes, prior to Base64 encoding.
§

fn encode(&self, writer: &mut impl Writer) -> Result<(), Error>

Encode this value using the provided [Writer].
§

fn encoded_len_prefixed(&self) -> Result<usize, Error>

Return the length of this type after encoding when prepended with a\nuint32 length prefix.
§

fn encode_prefixed(&self, writer: &mut impl Writer) -> Result<(), Error>

Encode this value, first prepending a uint32 length prefix\nset to [Encode::encoded_len].
","Encode","gosling::context::HandshakeHandle"],["
source§

impl Euclid for usize

source§

fn div_euclid(&self, v: &usize) -> usize

Calculates Euclidean division, the matching method for rem_euclid. Read more
source§

fn rem_euclid(&self, v: &usize) -> usize

Calculates the least nonnegative remainder of self (mod v). Read more
source§

fn div_rem_euclid(&self, v: &Self) -> (Self, Self)

Returns both the quotient and remainder from Euclidean division. Read more
","Euclid","gosling::context::HandshakeHandle"],["
source§

impl FmtConst for usize

source§

fn fmt_const(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Print a const expression representing this value.
","FmtConst","gosling::context::HandshakeHandle"],["
source§

impl From<Alignment> for usize

source§

fn from(align: Alignment) -> usize

Converts to this type from the input type.
","From","gosling::context::HandshakeHandle"],["
§

impl From<ByteQty> for usize

§

fn from(value: ByteQty) -> usize

Converts to this type from the input type.
","From","gosling::context::HandshakeHandle"],["
§

impl From<HopNum> for usize

§

fn from(hop: HopNum) -> usize

Converts to this type from the input type.
","From","gosling::context::HandshakeHandle"],["
§

impl From<HsDirPos> for usize

§

fn from(value: HsDirPos) -> usize

Converts to this type from the input type.
","From","gosling::context::HandshakeHandle"],["
§

impl From<IntroPtIndex> for usize

§

fn from(value: IntroPtIndex) -> usize

Converts to this type from the input type.
","From","gosling::context::HandshakeHandle"],["
§

impl<const MIN: usize, const MAX: usize> From<RangedUsize<MIN, MAX>> for usize

§

fn from(value: RangedUsize<MIN, MAX>) -> usize

Converts to this type from the input type.
","From>","gosling::context::HandshakeHandle"],["
§

impl From<RouterStatusIdx> for usize

§

fn from(value: RouterStatusIdx) -> usize

Converts to this type from the input type.
","From","gosling::context::HandshakeHandle"],["
§

impl From<State> for usize

§

fn from(src: State) -> usize

Converts to this type from the input type.
","From","gosling::context::HandshakeHandle"],["
§

impl From<Token> for usize

§

fn from(val: Token) -> usize

Converts to this type from the input type.
","From","gosling::context::HandshakeHandle"],["
§

impl<O> From<U16<O>> for usize
where\n O: ByteOrder,

§

fn from(x: U16<O>) -> usize

Converts to this type from the input type.
","From>","gosling::context::HandshakeHandle"],["
1.28.0 · source§

impl From<bool> for usize

source§

fn from(small: bool) -> usize

Converts a bool to usize losslessly.\nThe resulting value is 0 for false and 1 for true values.

\n
§Examples
\n
assert_eq!(usize::from(true), 1);\nassert_eq!(usize::from(false), 0);
\n
","From","gosling::context::HandshakeHandle"],["
1.26.0 · source§

impl From<u16> for usize

source§

fn from(small: u16) -> usize

Converts u16 to usize losslessly.

\n
","From","gosling::context::HandshakeHandle"],["
§

impl From<u24> for usize

§

fn from(val: u24) -> usize

Converts to this type from the input type.
","From","gosling::context::HandshakeHandle"],["
§

impl From<u40> for usize

§

fn from(val: u40) -> usize

Converts to this type from the input type.
","From","gosling::context::HandshakeHandle"],["
§

impl From<u48> for usize

§

fn from(val: u48) -> usize

Converts to this type from the input type.
","From","gosling::context::HandshakeHandle"],["
§

impl From<u56> for usize

§

fn from(val: u56) -> usize

Converts to this type from the input type.
","From","gosling::context::HandshakeHandle"],["
1.5.0 · source§

impl From<u8> for usize

source§

fn from(small: u8) -> usize

Converts u8 to usize losslessly.

\n
","From","gosling::context::HandshakeHandle"],["
source§

impl FromBytes for usize

source§

type Bytes = [u8; 8]

source§

fn from_be_bytes(bytes: &<usize as FromBytes>::Bytes) -> usize

Create a number from its representation as a byte array in big endian. Read more
source§

fn from_le_bytes(bytes: &<usize as FromBytes>::Bytes) -> usize

Create a number from its representation as a byte array in little endian. Read more
source§

fn from_ne_bytes(bytes: &<usize as FromBytes>::Bytes) -> usize

Create a number from its memory representation as a byte array in native endianness. Read more
","FromBytes","gosling::context::HandshakeHandle"],["
§

impl FromBytes for usize

§

fn ref_from(bytes: &[u8]) -> Option<&Self>
where\n Self: Sized,

Interprets the given bytes as a &Self without copying. Read more
§

fn ref_from_prefix(bytes: &[u8]) -> Option<&Self>
where\n Self: Sized,

Interprets the prefix of the given bytes as a &Self without copying. Read more
§

fn ref_from_suffix(bytes: &[u8]) -> Option<&Self>
where\n Self: Sized,

Interprets the suffix of the given bytes as a &Self without copying. Read more
§

fn mut_from(bytes: &mut [u8]) -> Option<&mut Self>
where\n Self: Sized + AsBytes,

Interprets the given bytes as a &mut Self without copying. Read more
§

fn mut_from_prefix(bytes: &mut [u8]) -> Option<&mut Self>
where\n Self: Sized + AsBytes,

Interprets the prefix of the given bytes as a &mut Self without\ncopying. Read more
§

fn mut_from_suffix(bytes: &mut [u8]) -> Option<&mut Self>
where\n Self: Sized + AsBytes,

Interprets the suffix of the given bytes as a &mut Self without copying. Read more
§

fn slice_from(bytes: &[u8]) -> Option<&[Self]>
where\n Self: Sized,

Interprets the given bytes as a &[Self] without copying. Read more
§

fn slice_from_prefix(bytes: &[u8], count: usize) -> Option<(&[Self], &[u8])>
where\n Self: Sized,

Interprets the prefix of the given bytes as a &[Self] with length\nequal to count without copying. Read more
§

fn slice_from_suffix(bytes: &[u8], count: usize) -> Option<(&[u8], &[Self])>
where\n Self: Sized,

Interprets the suffix of the given bytes as a &[Self] with length\nequal to count without copying. Read more
§

fn mut_slice_from(bytes: &mut [u8]) -> Option<&mut [Self]>
where\n Self: Sized + AsBytes,

Interprets the given bytes as a &mut [Self] without copying. Read more
§

fn mut_slice_from_prefix(\n bytes: &mut [u8],\n count: usize,\n) -> Option<(&mut [Self], &mut [u8])>
where\n Self: Sized + AsBytes,

Interprets the prefix of the given bytes as a &mut [Self] with length\nequal to count without copying. Read more
§

fn mut_slice_from_suffix(\n bytes: &mut [u8],\n count: usize,\n) -> Option<(&mut [u8], &mut [Self])>
where\n Self: Sized + AsBytes,

Interprets the suffix of the given bytes as a &mut [Self] with length\nequal to count without copying. Read more
§

fn read_from(bytes: &[u8]) -> Option<Self>
where\n Self: Sized,

Reads a copy of Self from bytes. Read more
§

fn read_from_prefix(bytes: &[u8]) -> Option<Self>
where\n Self: Sized,

Reads a copy of Self from the prefix of bytes. Read more
§

fn read_from_suffix(bytes: &[u8]) -> Option<Self>
where\n Self: Sized,

Reads a copy of Self from the suffix of bytes. Read more
","FromBytes","gosling::context::HandshakeHandle"],["
source§

impl FromPrimitive for usize

source§

fn from_isize(n: isize) -> Option<usize>

Converts an isize to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_i8(n: i8) -> Option<usize>

Converts an i8 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_i16(n: i16) -> Option<usize>

Converts an i16 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_i32(n: i32) -> Option<usize>

Converts an i32 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_i64(n: i64) -> Option<usize>

Converts an i64 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_i128(n: i128) -> Option<usize>

Converts an i128 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned. Read more
source§

fn from_usize(n: usize) -> Option<usize>

Converts a usize to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_u8(n: u8) -> Option<usize>

Converts an u8 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_u16(n: u16) -> Option<usize>

Converts an u16 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_u32(n: u32) -> Option<usize>

Converts an u32 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_u64(n: u64) -> Option<usize>

Converts an u64 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_u128(n: u128) -> Option<usize>

Converts an u128 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned. Read more
source§

fn from_f32(n: f32) -> Option<usize>

Converts a f32 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_f64(n: f64) -> Option<usize>

Converts a f64 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned. Read more
","FromPrimitive","gosling::context::HandshakeHandle"],["
§

impl FromSql for usize

§

fn column_result(value: ValueRef<'_>) -> Result<usize, FromSqlError>

Converts SQLite value into Rust value.
","FromSql","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl FromStr for usize

source§

type Err = ParseIntError

The associated error which can be returned from parsing.
source§

fn from_str(src: &str) -> Result<usize, ParseIntError>

Parses a string s to return a value of this type. Read more
","FromStr","gosling::context::HandshakeHandle"],["
§

impl FromZeroes for usize

§

fn zero(&mut self)

Overwrites self with zeroes. Read more
§

fn new_zeroed() -> Self
where\n Self: Sized,

Creates an instance of Self from zeroed bytes. Read more
","FromZeroes","gosling::context::HandshakeHandle"],["
§

impl Fundamental for usize

§

fn as_bool(self) -> bool

Tests self != 0.
§

fn as_char(self) -> Option<char>

Represents self as a Unicode Scalar Value, if possible.
§

fn as_i8(self) -> i8

Performs self as i8.
§

fn as_i16(self) -> i16

Performs self as i16.
§

fn as_i32(self) -> i32

Performs self as i32.
§

fn as_i64(self) -> i64

Performs self as i64.
§

fn as_i128(self) -> i128

Performs self as i128.
§

fn as_isize(self) -> isize

Performs self as isize.
§

fn as_u8(self) -> u8

Performs self as u8.
§

fn as_u16(self) -> u16

Performs self as u16.
§

fn as_u32(self) -> u32

Performs self as u32.
§

fn as_u64(self) -> u64

Performs self as u64.
§

fn as_u128(self) -> u128

Performs self as u128.
§

fn as_usize(self) -> usize

Performs self as usize.
§

fn as_f32(self) -> f32

Performs self as f32.
§

fn as_f64(self) -> f64

Performs self as f64.
","Fundamental","gosling::context::HandshakeHandle"],["
§

impl HasMemoryCostStructural for usize

§

fn indirect_memory_cost(&self, _et: EnabledToken) -> usize

Memory cost of data stored out-of-line Read more
","HasMemoryCostStructural","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Hash for usize

source§

fn hash<H>(&self, state: &mut H)
where\n H: Hasher,

Feeds this value into the given Hasher. Read more
source§

fn hash_slice<H>(data: &[usize], state: &mut H)
where\n H: Hasher,

Feeds a slice of this type into the given Hasher. Read more
","Hash","gosling::context::HandshakeHandle"],["
source§

impl Integer for usize

source§

fn div_floor(&self, other: &usize) -> usize

Unsigned integer division. Returns the same result as div (/).

\n
source§

fn mod_floor(&self, other: &usize) -> usize

Unsigned integer modulo operation. Returns the same result as rem (%).

\n
source§

fn gcd(&self, other: &usize) -> usize

Calculates the Greatest Common Divisor (GCD) of the number and other

\n
source§

fn lcm(&self, other: &usize) -> usize

Calculates the Lowest Common Multiple (LCM) of the number and other.

\n
source§

fn gcd_lcm(&self, other: &usize) -> (usize, usize)

Calculates the Greatest Common Divisor (GCD) and\nLowest Common Multiple (LCM) of the number and other.

\n
source§

fn is_multiple_of(&self, other: &usize) -> bool

Returns true if the number is a multiple of other.

\n
source§

fn is_even(&self) -> bool

Returns true if the number is divisible by 2.

\n
source§

fn is_odd(&self) -> bool

Returns true if the number is not divisible by 2.

\n
source§

fn div_rem(&self, other: &usize) -> (usize, usize)

Simultaneous truncated integer division and modulus.

\n
source§

fn div_ceil(&self, other: &usize) -> usize

Ceiled integer division. Read more
source§

fn extended_gcd_lcm(&self, other: &usize) -> (ExtendedGcd<usize>, usize)

Greatest common divisor, least common multiple, and Bézout coefficients.
source§

fn extended_gcd(&self, other: &Self) -> ExtendedGcd<Self>
where\n Self: Clone,

Greatest common divisor and Bézout coefficients. Read more
source§

fn divides(&self, other: &Self) -> bool

👎Deprecated: Please use is_multiple_of instead
Deprecated, use is_multiple_of instead.
source§

fn div_mod_floor(&self, other: &Self) -> (Self, Self)

Simultaneous floored integer division and modulus.\nReturns (quotient, remainder). Read more
source§

fn next_multiple_of(&self, other: &Self) -> Self
where\n Self: Clone,

Rounds up to nearest multiple of argument. Read more
source§

fn prev_multiple_of(&self, other: &Self) -> Self
where\n Self: Clone,

Rounds down to nearest multiple of argument. Read more
source§

fn dec(&mut self)
where\n Self: Clone,

Decrements self by one. Read more
source§

fn inc(&mut self)
where\n Self: Clone,

Increments self by one. Read more
","Integer","gosling::context::HandshakeHandle"],["
§

impl Integral for usize

§

const ZERO: usize = 0usize

The type’s zero value.
§

const ONE: usize = 1usize

The type’s step value.
§

const MIN: usize = 0usize

The type’s minimum value. This is zero for unsigned integers.
§

const MAX: usize = 18_446_744_073_709_551_615usize

The type’s maximum value.
§

const BITS: u32 = 64u32

The size of this type in bits.
§

fn min_value() -> usize

Returns the smallest value that can be represented by this integer type.
§

fn max_value() -> usize

Returns the largest value that can be represented by this integer type.
§

fn from_str_radix(src: &str, radix: u32) -> Result<usize, ParseIntError>

Converts a string slice in a given base to an integer. Read more
§

fn count_ones(self) -> u32

Returns the number of ones in the binary representation of self.
§

fn count_zeros(self) -> u32

Returns the number of zeros in the binary representation of self.
§

fn leading_zeros(self) -> u32

Returns the number of leading zeros in the binary representation of\nself.
§

fn trailing_zeros(self) -> u32

Returns the number of trailing zeros in the binary representation of\nself.
§

fn leading_ones(self) -> u32

Returns the number of leading ones in the binary representation of\nself.
§

fn trailing_ones(self) -> u32

Returns the number of trailing ones in the binary representation of\nself.
§

fn rotate_left(self, n: u32) -> usize

Shifts the bits to the left by a specified amount, n, wrapping the\ntruncated bits to the end of the resulting integer. Read more
§

fn rotate_right(self, n: u32) -> usize

Shifts the bits to the right by a specified amount, n, wrapping the\ntruncated bits to the beginning of the resulting integer. Read more
§

fn swap_bytes(self) -> usize

Reverses the byte order of the integer.
§

fn reverse_bits(self) -> usize

Reverses the bit pattern of the integer.
§

fn from_be(self) -> usize

Converts an integer from big endian to the target’s endianness. Read more
§

fn from_le(self) -> usize

Converts an integer frm little endian to the target’s endianness. Read more
§

fn to_be(self) -> usize

Converts self to big endian from the target’s endianness. Read more
§

fn to_le(self) -> usize

Converts self to little endian from the target’s endianness. Read more
§

fn checked_add(self, rhs: usize) -> Option<usize>

Checked integer addition. Computes self + rhs, returning None if\noverflow occurred.
§

fn checked_sub(self, rhs: usize) -> Option<usize>

Checked integer subtraction. Computes self - rhs, returning None if\noverflow occurred.
§

fn checked_mul(self, rhs: usize) -> Option<usize>

Checked integer multiplication. Computes self * rhs, returning None\nif overflow occurred.
§

fn checked_div(self, rhs: usize) -> Option<usize>

Checked integer division. Computes self / rhs, returning None if\nrhs == 0 or the division results in overflow.
§

fn checked_div_euclid(self, rhs: usize) -> Option<usize>

Checked Euclidean division. Computes self.div_euclid(rhs), returning\nNone if rhs == 0 or the division results in overflow.
§

fn checked_rem(self, rhs: usize) -> Option<usize>

Checked integer remainder. Computes self % rhs, returning None if\nrhs == 0 or the division results in overflow.
§

fn checked_rem_euclid(self, rhs: usize) -> Option<usize>

Checked Euclidean remainder. Computes self.rem_euclid(rhs), returning\nNone if rhs == 0 or the division results in overflow.
§

fn checked_neg(self) -> Option<usize>

Checked negation. Computes -self, returning None if self == MIN. Read more
§

fn checked_shl(self, rhs: u32) -> Option<usize>

Checked shift left. Computes self << rhs, returning None if rhs is\nlarger than or equal to the number of bits in self.
§

fn checked_shr(self, rhs: u32) -> Option<usize>

Checked shift right. Computes self >> rhs, returning None if rhs\nis larger than or equal to the number of bits in self.
§

fn checked_pow(self, rhs: u32) -> Option<usize>

Checked exponentiation. Computes self.pow(exp), returning None if\noverflow occurred.
§

fn saturating_add(self, rhs: usize) -> usize

Saturating integer addition. Computes self + rhs, saturating at the\nnumeric bounds instead of overflowing.
§

fn saturating_sub(self, rhs: usize) -> usize

Saturating integer subtraction. Computes self - rhs, saturating at the\nnumeric bounds instead of overflowing.
§

fn saturating_mul(self, rhs: usize) -> usize

Saturating integer multiplication. Computes self * rhs, saturating at\nthe numeric bounds instead of overflowing.
§

fn saturating_pow(self, rhs: u32) -> usize

Saturating integer exponentiation. Computes self.pow(exp), saturating\nat the numeric bounds instead of overflowing.
§

fn wrapping_add(self, rhs: usize) -> usize

Wrapping (modular) addition. Computes self + rhs, wrapping around at\nthe boundary of the type.
§

fn wrapping_sub(self, rhs: usize) -> usize

Wrapping (modular) subtraction. Computes self - rhs, wrapping around\nat the boundary of the type.
§

fn wrapping_mul(self, rhs: usize) -> usize

Wrapping (modular) multiplication. Computes self * rhs, wrapping\naround at the boundary of the type.
§

fn wrapping_div(self, rhs: usize) -> usize

Wrapping (modular) division. Computes self / rhs, wrapping around at\nthe boundary of the type. Read more
§

fn wrapping_div_euclid(self, rhs: usize) -> usize

Wrapping Euclidean division. Computes self.div_euclid(rhs), wrapping\naround at the boundary of the type. Read more
§

fn wrapping_rem(self, rhs: usize) -> usize

Wrapping (modular) remainder. Computes self % rhs, wrapping around at\nthe boundary of the type. Read more
§

fn wrapping_rem_euclid(self, rhs: usize) -> usize

Wrapping Euclidean remainder. Computes self.rem_euclid(rhs), wrapping\naround at the boundary of the type. Read more
§

fn wrapping_neg(self) -> usize

Wrapping (modular) negation. Computes -self, wrapping around at the\nboundary of the type. Read more
§

fn wrapping_shl(self, rhs: u32) -> usize

Panic-free bitwise shift-left; yields self << mask(rhs), where mask\nremoves any high-order bits of rhs that would cause the shift to\nexceed the bit-width of the type. Read more
§

fn wrapping_shr(self, rhs: u32) -> usize

Panic-free bitwise shift-right; yields self >> mask(rhs), where mask\nremoves any high-order bits of rhs that would cause the shift to\nexceed the bit-width of the type. Read more
§

fn wrapping_pow(self, rhs: u32) -> usize

Wrapping (modular) exponentiation. Computes self.pow(exp), wrapping\naround at the boundary of the type.
§

fn overflowing_add(self, rhs: usize) -> (usize, bool)

Calculates self + rhs Read more
§

fn overflowing_sub(self, rhs: usize) -> (usize, bool)

Calculates self - rhs Read more
§

fn overflowing_mul(self, rhs: usize) -> (usize, bool)

Calculates the multiplication of self and rhs. Read more
§

fn overflowing_div(self, rhs: usize) -> (usize, bool)

Calculates the divisor when self is divided by rhs. Read more
§

fn overflowing_div_euclid(self, rhs: usize) -> (usize, bool)

Calculates the quotient of Euclidean division self.div_euclid(rhs). Read more
§

fn overflowing_rem(self, rhs: usize) -> (usize, bool)

Calculates the remainder when self is divided by rhs. Read more
§

fn overflowing_rem_euclid(self, rhs: usize) -> (usize, bool)

Overflowing Euclidean remainder. Calculates self.rem_euclid(rhs). Read more
§

fn overflowing_neg(self) -> (usize, bool)

Negates self, overflowing if this is equal to the minimum value. Read more
§

fn overflowing_shl(self, rhs: u32) -> (usize, bool)

Shifts self left by rhs bits. Read more
§

fn overflowing_shr(self, rhs: u32) -> (usize, bool)

Shifts self right by rhs bits. Read more
§

fn overflowing_pow(self, rhs: u32) -> (usize, bool)

Raises self to the power of exp, using exponentiation by squaring. Read more
§

fn pow(self, rhs: u32) -> usize

Raises self to the power of exp, using exponentiation by squaring.
§

fn div_euclid(self, rhs: usize) -> usize

Calculates the quotient of Euclidean division of self by rhs. Read more
§

fn rem_euclid(self, rhs: usize) -> usize

Calculates the least nonnegative remainder of self (mod rhs). Read more
","Integral","gosling::context::HandshakeHandle"],["
source§

impl IntoBigInt for usize

source§

fn into_bigint(self) -> Option<BigInt>

Converts the value of self to a BigInt.
","IntoBigInt","gosling::context::HandshakeHandle"],["
source§

impl IntoBigUint for usize

source§

fn into_biguint(self) -> Option<BigUint>

Converts the value of self to a BigUint.
","IntoBigUint","gosling::context::HandshakeHandle"],["
source§

impl<'de, E> IntoDeserializer<'de, E> for usize
where\n E: Error,

source§

type Deserializer = UsizeDeserializer<E>

The type of the deserializer being converted into.
source§

fn into_deserializer(self) -> UsizeDeserializer<E>

Convert this value into a deserializer.
","IntoDeserializer<'de, E>","gosling::context::HandshakeHandle"],["
§

impl IntoNotification for usize

§

type Tag = ()

The tag data associated with a notification. Read more
§

type Notify = Notify

The notification type. Read more
§

fn into_notification(self) -> <usize as IntoNotification>::Notify

Convert this value into a notification. Read more
§

fn additional(self) -> Additional<Self::Notify>
where\n Self: Sized,

Convert this value into an additional notification. Read more
§

fn relaxed(self) -> Relaxed<Self::Notify>
where\n Self: Sized,

Don’t emit a fence for this notification. Read more
§

fn tag<T>(self, tag: T) -> Tag<Self::Notify, T>
where\n T: Clone,\n Self: Sized + IntoNotification<Tag = ()>,

Use a tag with this notification. Read more
§

fn tag_with<T, F>(self, tag: F) -> TagWith<Self::Notify, F>
where\n Self: Sized + IntoNotification<Tag = ()>,\n F: FnMut() -> T,

Use a function to generate a tag with this notification. Read more
","IntoNotification","gosling::context::HandshakeHandle"],["
1.42.0 · source§

impl LowerExp for usize

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","LowerExp","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl LowerHex for usize

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","LowerHex","gosling::context::HandshakeHandle"],["
source§

impl<'a> Mul<&'a BigInt> for usize

source§

type Output = BigInt

The resulting type after applying the * operator.
source§

fn mul(self, other: &BigInt) -> BigInt

Performs the * operation. Read more
","Mul<&'a BigInt>","gosling::context::HandshakeHandle"],["
source§

impl<'a> Mul<&'a BigUint> for usize

source§

type Output = BigUint

The resulting type after applying the * operator.
source§

fn mul(self, other: &BigUint) -> BigUint

Performs the * operation. Read more
","Mul<&'a BigUint>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Mul<&usize> for usize

source§

type Output = <usize as Mul>::Output

The resulting type after applying the * operator.
source§

fn mul(self, other: &usize) -> <usize as Mul>::Output

Performs the * operation. Read more
","Mul<&usize>","gosling::context::HandshakeHandle"],["
source§

impl Mul<BigInt> for usize

source§

type Output = BigInt

The resulting type after applying the * operator.
source§

fn mul(self, other: BigInt) -> BigInt

Performs the * operation. Read more
","Mul","gosling::context::HandshakeHandle"],["
source§

impl Mul<BigUint> for usize

source§

type Output = BigUint

The resulting type after applying the * operator.
source§

fn mul(self, other: BigUint) -> BigUint

Performs the * operation. Read more
","Mul","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Mul for usize

source§

type Output = usize

The resulting type after applying the * operator.
source§

fn mul(self, other: usize) -> usize

Performs the * operation. Read more
","Mul","gosling::context::HandshakeHandle"],["
source§

impl MulAdd for usize

source§

type Output = usize

The resulting type after applying the fused multiply-add.
source§

fn mul_add(self, a: usize, b: usize) -> <usize as MulAdd>::Output

Performs the fused multiply-add operation (self * a) + b
","MulAdd","gosling::context::HandshakeHandle"],["
source§

impl MulAddAssign for usize

source§

fn mul_add_assign(&mut self, a: usize, b: usize)

Performs the fused multiply-add assignment operation *self = (*self * a) + b
","MulAddAssign","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl MulAssign<&usize> for usize

source§

fn mul_assign(&mut self, other: &usize)

Performs the *= operation. Read more
","MulAssign<&usize>","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl MulAssign for usize

source§

fn mul_assign(&mut self, other: usize)

Performs the *= operation. Read more
","MulAssign","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Not for usize

source§

type Output = usize

The resulting type after applying the ! operator.
source§

fn not(self) -> usize

Performs the unary ! operation. Read more
","Not","gosling::context::HandshakeHandle"],["
source§

impl Num for usize

source§

type FromStrRadixErr = ParseIntError

source§

fn from_str_radix(s: &str, radix: u32) -> Result<usize, ParseIntError>

Convert from a string and radix (typically 2..=36). Read more
","Num","gosling::context::HandshakeHandle"],["
source§

impl NumCast for usize

source§

fn from<N>(n: N) -> Option<usize>
where\n N: ToPrimitive,

Creates a number from another value that can be converted into\na primitive via the ToPrimitive trait. If the source value cannot be\nrepresented by the target type, then None is returned. Read more
","NumCast","gosling::context::HandshakeHandle"],["
§

impl Numeric for usize

§

type Bytes = [u8; 8]

The [u8; N] byte array that stores values of Self.
§

fn to_be_bytes(self) -> <usize as Numeric>::Bytes

Return the memory representation of this number as a byte array in\nbig-endian (network) byte order.
§

fn to_le_bytes(self) -> <usize as Numeric>::Bytes

Return the memory representation of this number as a byte array in\nlittle-endian byte order.
§

fn to_ne_bytes(self) -> <usize as Numeric>::Bytes

Return the memory representation of this number as a byte array in\nnative byte order.
§

fn from_be_bytes(bytes: <usize as Numeric>::Bytes) -> usize

Create a numeric value from its representation as a byte array in big\nendian.
§

fn from_le_bytes(bytes: <usize as Numeric>::Bytes) -> usize

Create a numeric value from its representation as a byte array in little\nendian.
§

fn from_ne_bytes(bytes: <usize as Numeric>::Bytes) -> usize

Create a numeric value from its memory representation as a byte array in\nnative endianness.
","Numeric","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Octal for usize

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","Octal","gosling::context::HandshakeHandle"],["
source§

impl One for usize

source§

fn one() -> usize

Returns the multiplicative identity element of Self, 1. Read more
source§

fn is_one(&self) -> bool

Returns true if self is equal to the multiplicative identity. Read more
source§

fn set_one(&mut self)

Sets self to the multiplicative identity element of Self, 1.
","One","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Ord for usize

source§

fn cmp(&self, other: &usize) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where\n Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where\n Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where\n Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
","Ord","gosling::context::HandshakeHandle"],["
source§

impl OverflowingAdd for usize

source§

fn overflowing_add(&self, v: &usize) -> (usize, bool)

Returns a tuple of the sum along with a boolean indicating whether an arithmetic overflow would occur.\nIf an overflow would have occurred then the wrapped value is returned.
","OverflowingAdd","gosling::context::HandshakeHandle"],["
source§

impl OverflowingMul for usize

source§

fn overflowing_mul(&self, v: &usize) -> (usize, bool)

Returns a tuple of the product along with a boolean indicating whether an arithmetic overflow would occur.\nIf an overflow would have occurred then the wrapped value is returned.
","OverflowingMul","gosling::context::HandshakeHandle"],["
source§

impl OverflowingSub for usize

source§

fn overflowing_sub(&self, v: &usize) -> (usize, bool)

Returns a tuple of the difference along with a boolean indicating whether an arithmetic overflow would occur.\nIf an overflow would have occurred then the wrapped value is returned.
","OverflowingSub","gosling::context::HandshakeHandle"],["
§

impl ParseHex for usize

§

fn parse_hex(input: &str) -> Result<usize, ParseError>

Parse the value from hex.
","ParseHex","gosling::context::HandshakeHandle"],["
source§

impl PartialEq<Value> for usize

source§

fn eq(&self, other: &Value) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient,\nand should not be overridden without very good reason.
","PartialEq","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl PartialEq for usize

source§

fn eq(&self, other: &usize) -> bool

Tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &usize) -> bool

Tests for !=. The default implementation is almost always sufficient,\nand should not be overridden without very good reason.
","PartialEq","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl PartialOrd for usize

source§

fn partial_cmp(&self, other: &usize) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, other: &usize) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, other: &usize) -> bool

Tests less than or equal to (for self and other) and is used by the\n<= operator. Read more
source§

fn ge(&self, other: &usize) -> bool

Tests greater than or equal to (for self and other) and is used by\nthe >= operator. Read more
source§

fn gt(&self, other: &usize) -> bool

Tests greater than (for self and other) and is used by the >\noperator. Read more
","PartialOrd","gosling::context::HandshakeHandle"],["
source§

impl PhfBorrow<usize> for usize

source§

fn borrow(&self) -> &usize

Convert a reference to self to a reference to the borrowed type.
","PhfBorrow","gosling::context::HandshakeHandle"],["
source§

impl PhfHash for usize

source§

fn phf_hash<H>(&self, state: &mut H)
where\n H: Hasher,

Feeds the value into the state given, updating the hasher as necessary.
source§

fn phf_hash_slice<H>(data: &[Self], state: &mut H)
where\n H: Hasher,\n Self: Sized,

Feeds a slice of this type into the state provided.
","PhfHash","gosling::context::HandshakeHandle"],["
source§

impl<'a> Pow<&'a u16> for usize

source§

type Output = usize

The result after applying the operator.
source§

fn pow(self, rhs: &'a u16) -> usize

Returns self to the power rhs. Read more
","Pow<&'a u16>","gosling::context::HandshakeHandle"],["
source§

impl<'a> Pow<&'a u32> for usize

source§

type Output = usize

The result after applying the operator.
source§

fn pow(self, rhs: &'a u32) -> usize

Returns self to the power rhs. Read more
","Pow<&'a u32>","gosling::context::HandshakeHandle"],["
source§

impl<'a> Pow<&'a u8> for usize

source§

type Output = usize

The result after applying the operator.
source§

fn pow(self, rhs: &'a u8) -> usize

Returns self to the power rhs. Read more
","Pow<&'a u8>","gosling::context::HandshakeHandle"],["
source§

impl<'a> Pow<&'a usize> for usize

source§

type Output = usize

The result after applying the operator.
source§

fn pow(self, rhs: &'a usize) -> usize

Returns self to the power rhs. Read more
","Pow<&'a usize>","gosling::context::HandshakeHandle"],["
source§

impl<U> Pow<PInt<U>> for usize
where\n U: Unsigned + NonZero,

source§

type Output = usize

The result of the exponentiation.
source§

fn powi(self, _: PInt<U>) -> <usize as Pow<PInt<U>>>::Output

This function isn’t used in this crate, but may be useful for others.\nIt is implemented for primitives. Read more
","Pow>","gosling::context::HandshakeHandle"],["
source§

impl<U, B> Pow<UInt<U, B>> for usize
where\n U: Unsigned,\n B: Bit,

source§

type Output = usize

The result of the exponentiation.
source§

fn powi(self, _: UInt<U, B>) -> <usize as Pow<UInt<U, B>>>::Output

This function isn’t used in this crate, but may be useful for others.\nIt is implemented for primitives. Read more
","Pow>","gosling::context::HandshakeHandle"],["
source§

impl Pow<UTerm> for usize

source§

type Output = usize

The result of the exponentiation.
source§

fn powi(self, _: UTerm) -> <usize as Pow<UTerm>>::Output

This function isn’t used in this crate, but may be useful for others.\nIt is implemented for primitives. Read more
","Pow","gosling::context::HandshakeHandle"],["
source§

impl Pow<Z0> for usize

source§

type Output = usize

The result of the exponentiation.
source§

fn powi(self, _: Z0) -> <usize as Pow<Z0>>::Output

This function isn’t used in this crate, but may be useful for others.\nIt is implemented for primitives. Read more
","Pow","gosling::context::HandshakeHandle"],["
source§

impl Pow<u16> for usize

source§

type Output = usize

The result after applying the operator.
source§

fn pow(self, rhs: u16) -> usize

Returns self to the power rhs. Read more
","Pow","gosling::context::HandshakeHandle"],["
source§

impl Pow<u32> for usize

source§

type Output = usize

The result after applying the operator.
source§

fn pow(self, rhs: u32) -> usize

Returns self to the power rhs. Read more
","Pow","gosling::context::HandshakeHandle"],["
source§

impl Pow<u8> for usize

source§

type Output = usize

The result after applying the operator.
source§

fn pow(self, rhs: u8) -> usize

Returns self to the power rhs. Read more
","Pow","gosling::context::HandshakeHandle"],["
source§

impl Pow<usize> for usize

source§

type Output = usize

The result after applying the operator.
source§

fn pow(self, rhs: usize) -> usize

Returns self to the power rhs. Read more
","Pow","gosling::context::HandshakeHandle"],["
source§

impl PrimInt for usize

source§

fn count_ones(self) -> u32

Returns the number of ones in the binary representation of self. Read more
source§

fn count_zeros(self) -> u32

Returns the number of zeros in the binary representation of self. Read more
source§

fn leading_ones(self) -> u32

Returns the number of leading ones in the binary representation\nof self. Read more
source§

fn leading_zeros(self) -> u32

Returns the number of leading zeros in the binary representation\nof self. Read more
source§

fn trailing_ones(self) -> u32

Returns the number of trailing ones in the binary representation\nof self. Read more
source§

fn trailing_zeros(self) -> u32

Returns the number of trailing zeros in the binary representation\nof self. Read more
source§

fn rotate_left(self, n: u32) -> usize

Shifts the bits to the left by a specified amount, n, wrapping\nthe truncated bits to the end of the resulting integer. Read more
source§

fn rotate_right(self, n: u32) -> usize

Shifts the bits to the right by a specified amount, n, wrapping\nthe truncated bits to the beginning of the resulting integer. Read more
source§

fn signed_shl(self, n: u32) -> usize

Shifts the bits to the left by a specified amount, n, filling\nzeros in the least significant bits. Read more
source§

fn signed_shr(self, n: u32) -> usize

Shifts the bits to the right by a specified amount, n, copying\nthe “sign bit” in the most significant bits even for unsigned types. Read more
source§

fn unsigned_shl(self, n: u32) -> usize

Shifts the bits to the left by a specified amount, n, filling\nzeros in the least significant bits. Read more
source§

fn unsigned_shr(self, n: u32) -> usize

Shifts the bits to the right by a specified amount, n, filling\nzeros in the most significant bits. Read more
source§

fn swap_bytes(self) -> usize

Reverses the byte order of the integer. Read more
source§

fn reverse_bits(self) -> usize

Reverses the order of bits in the integer. Read more
source§

fn from_be(x: usize) -> usize

Convert an integer from big endian to the target’s endianness. Read more
source§

fn from_le(x: usize) -> usize

Convert an integer from little endian to the target’s endianness. Read more
source§

fn to_be(self) -> usize

Convert self to big endian from the target’s endianness. Read more
source§

fn to_le(self) -> usize

Convert self to little endian from the target’s endianness. Read more
source§

fn pow(self, exp: u32) -> usize

Raises self to the power of exp, using exponentiation by squaring. Read more
","PrimInt","gosling::context::HandshakeHandle"],["
1.12.0 · source§

impl<'a> Product<&'a usize> for usize

source§

fn product<I>(iter: I) -> usize
where\n I: Iterator<Item = &'a usize>,

Takes an iterator and generates Self from the elements by multiplying\nthe items.
","Product<&'a usize>","gosling::context::HandshakeHandle"],["
1.12.0 · source§

impl Product for usize

source§

fn product<I>(iter: I) -> usize
where\n I: Iterator<Item = usize>,

Takes an iterator and generates Self from the elements by multiplying\nthe items.
","Product","gosling::context::HandshakeHandle"],["
§

impl<R> RangeExt<usize> for R
where\n R: RangeBounds<usize>,

§

fn normalize(\n self,\n start: impl Into<Option<usize>>,\n end: impl Into<Option<usize>>,\n) -> Range<usize>

Normalizes a range-like type to a canonical half-open Range. Read more
§

fn intersection<R2>(self, other: R2) -> Option<Range<usize>>
where\n R2: RangeExt<usize>,

Finds the intersection between two range-likes. The produced Range\nspans only the elements common to both. Read more
§

fn union<R2>(self, other: R2) -> Option<Range<usize>>
where\n R2: RangeExt<usize>,

Finds the union between two range-likes. The produced Range spans all\nelements present in at least one of them. Read more
","RangeExt","gosling::context::HandshakeHandle"],["
source§

impl<'a> Rem<&'a BigInt> for usize

source§

type Output = BigInt

The resulting type after applying the % operator.
source§

fn rem(self, other: &BigInt) -> BigInt

Performs the % operation. Read more
","Rem<&'a BigInt>","gosling::context::HandshakeHandle"],["
source§

impl<'a> Rem<&'a BigUint> for usize

source§

type Output = BigUint

The resulting type after applying the % operator.
source§

fn rem(self, other: &BigUint) -> BigUint

Performs the % operation. Read more
","Rem<&'a BigUint>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Rem<&usize> for usize

source§

type Output = <usize as Rem>::Output

The resulting type after applying the % operator.
source§

fn rem(self, other: &usize) -> <usize as Rem>::Output

Performs the % operation. Read more
","Rem<&usize>","gosling::context::HandshakeHandle"],["
source§

impl Rem<BigInt> for usize

source§

type Output = BigInt

The resulting type after applying the % operator.
source§

fn rem(self, other: BigInt) -> BigInt

Performs the % operation. Read more
","Rem","gosling::context::HandshakeHandle"],["
source§

impl Rem<BigUint> for usize

source§

type Output = BigUint

The resulting type after applying the % operator.
source§

fn rem(self, other: BigUint) -> BigUint

Performs the % operation. Read more
","Rem","gosling::context::HandshakeHandle"],["
1.51.0 · source§

impl Rem<NonZero<usize>> for usize

source§

fn rem(self, other: NonZero<usize>) -> usize

This operation satisfies n % d == n - (n / d) * d, and cannot panic.

\n
source§

type Output = usize

The resulting type after applying the % operator.
","Rem>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Rem for usize

This operation satisfies n % d == n - (n / d) * d. The\nresult has the same sign as the left operand.

\n

§Panics

\n

This operation will panic if other == 0.

\n
source§

type Output = usize

The resulting type after applying the % operator.
source§

fn rem(self, other: usize) -> usize

Performs the % operation. Read more
","Rem","gosling::context::HandshakeHandle"],["
source§

impl<'a> RemAssign<&'a BigUint> for usize

source§

fn rem_assign(&mut self, other: &BigUint)

Performs the %= operation. Read more
","RemAssign<&'a BigUint>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl RemAssign<&usize> for usize

source§

fn rem_assign(&mut self, other: &usize)

Performs the %= operation. Read more
","RemAssign<&usize>","gosling::context::HandshakeHandle"],["
source§

impl RemAssign<BigUint> for usize

source§

fn rem_assign(&mut self, other: BigUint)

Performs the %= operation. Read more
","RemAssign","gosling::context::HandshakeHandle"],["
1.79.0 · source§

impl RemAssign<NonZero<usize>> for usize

source§

fn rem_assign(&mut self, other: NonZero<usize>)

This operation satisfies n % d == n - (n / d) * d, and cannot panic.

\n
","RemAssign>","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl RemAssign for usize

source§

fn rem_assign(&mut self, other: usize)

Performs the %= operation. Read more
","RemAssign","gosling::context::HandshakeHandle"],["
source§

impl Roots for usize

source§

fn nth_root(&self, n: u32) -> usize

Returns the truncated principal nth root of an integer\n– if x >= 0 { ⌊ⁿ√x⌋ } else { ⌈ⁿ√x⌉ } Read more
source§

fn sqrt(&self) -> usize

Returns the truncated principal square root of an integer – ⌊√x⌋ Read more
source§

fn cbrt(&self) -> usize

Returns the truncated principal cube root of an integer –\nif x >= 0 { ⌊∛x⌋ } else { ⌈∛x⌉ } Read more
","Roots","gosling::context::HandshakeHandle"],["
§

impl RowIndex for usize

§

fn idx(&self, stmt: &Statement<'_>) -> Result<usize, Error>

Returns the index of the appropriate column, or None if no such\ncolumn exists.
","RowIndex","gosling::context::HandshakeHandle"],["
source§

impl SampleUniform for usize

source§

type Sampler = UniformInt<usize>

The UniformSampler implementation supporting type X.
","SampleUniform","gosling::context::HandshakeHandle"],["
source§

impl Saturating for usize

source§

fn saturating_add(self, v: usize) -> usize

Saturating addition operator.\nReturns a+b, saturating at the numeric bounds instead of overflowing.
source§

fn saturating_sub(self, v: usize) -> usize

Saturating subtraction operator.\nReturns a-b, saturating at the numeric bounds instead of overflowing.
","Saturating","gosling::context::HandshakeHandle"],["
source§

impl SaturatingAdd for usize

source§

fn saturating_add(&self, v: &usize) -> usize

Saturating addition. Computes self + other, saturating at the relevant high or low boundary of\nthe type.
","SaturatingAdd","gosling::context::HandshakeHandle"],["
source§

impl SaturatingMul for usize

source§

fn saturating_mul(&self, v: &usize) -> usize

Saturating multiplication. Computes self * other, saturating at the relevant high or low boundary of\nthe type.
","SaturatingMul","gosling::context::HandshakeHandle"],["
source§

impl SaturatingSub for usize

source§

fn saturating_sub(&self, v: &usize) -> usize

Saturating subtraction. Computes self - other, saturating at the relevant high or low boundary of\nthe type.
","SaturatingSub","gosling::context::HandshakeHandle"],["
§

impl SeekNum for usize

§

fn from_block_byte<T>(\n block: T,\n byte: u8,\n bs: u8,\n) -> Result<usize, OverflowError>
where\n T: Counter,

Try to get position for block number block, byte position inside\nblock byte, and block size bs.
§

fn into_block_byte<T>(self, bs: u8) -> Result<(T, u8), OverflowError>
where\n T: Counter,

Try to get block number and bytes position for given block size bs.
","SeekNum","gosling::context::HandshakeHandle"],["
source§

impl Serialize for usize

source§

fn serialize<S>(\n &self,\n serializer: S,\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where\n S: Serializer,

Serialize this value into the given Serde serializer. Read more
","Serialize","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<&i128> for usize

source§

type Output = <usize as Shl<i128>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &i128) -> <usize as Shl<i128>>::Output

Performs the << operation. Read more
","Shl<&i128>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<&i16> for usize

source§

type Output = <usize as Shl<i16>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &i16) -> <usize as Shl<i16>>::Output

Performs the << operation. Read more
","Shl<&i16>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<&i32> for usize

source§

type Output = <usize as Shl<i32>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &i32) -> <usize as Shl<i32>>::Output

Performs the << operation. Read more
","Shl<&i32>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<&i64> for usize

source§

type Output = <usize as Shl<i64>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &i64) -> <usize as Shl<i64>>::Output

Performs the << operation. Read more
","Shl<&i64>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<&i8> for usize

source§

type Output = <usize as Shl<i8>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &i8) -> <usize as Shl<i8>>::Output

Performs the << operation. Read more
","Shl<&i8>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<&isize> for usize

source§

type Output = <usize as Shl<isize>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &isize) -> <usize as Shl<isize>>::Output

Performs the << operation. Read more
","Shl<&isize>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<&u128> for usize

source§

type Output = <usize as Shl<u128>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &u128) -> <usize as Shl<u128>>::Output

Performs the << operation. Read more
","Shl<&u128>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<&u16> for usize

source§

type Output = <usize as Shl<u16>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &u16) -> <usize as Shl<u16>>::Output

Performs the << operation. Read more
","Shl<&u16>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<&u32> for usize

source§

type Output = <usize as Shl<u32>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &u32) -> <usize as Shl<u32>>::Output

Performs the << operation. Read more
","Shl<&u32>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<&u64> for usize

source§

type Output = <usize as Shl<u64>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &u64) -> <usize as Shl<u64>>::Output

Performs the << operation. Read more
","Shl<&u64>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<&u8> for usize

source§

type Output = <usize as Shl<u8>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &u8) -> <usize as Shl<u8>>::Output

Performs the << operation. Read more
","Shl<&u8>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<&usize> for usize

source§

type Output = <usize as Shl>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &usize) -> <usize as Shl>::Output

Performs the << operation. Read more
","Shl<&usize>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<i128> for usize

source§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: i128) -> usize

Performs the << operation. Read more
","Shl","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<i16> for usize

source§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: i16) -> usize

Performs the << operation. Read more
","Shl","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<i32> for usize

source§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: i32) -> usize

Performs the << operation. Read more
","Shl","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<i64> for usize

source§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: i64) -> usize

Performs the << operation. Read more
","Shl","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<i8> for usize

source§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: i8) -> usize

Performs the << operation. Read more
","Shl","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<isize> for usize

source§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: isize) -> usize

Performs the << operation. Read more
","Shl","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<u128> for usize

source§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: u128) -> usize

Performs the << operation. Read more
","Shl","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<u16> for usize

source§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: u16) -> usize

Performs the << operation. Read more
","Shl","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<u32> for usize

source§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: u32) -> usize

Performs the << operation. Read more
","Shl","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<u64> for usize

source§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: u64) -> usize

Performs the << operation. Read more
","Shl","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl<u8> for usize

source§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: u8) -> usize

Performs the << operation. Read more
","Shl","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shl for usize

source§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: usize) -> usize

Performs the << operation. Read more
","Shl","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShlAssign<&i128> for usize

source§

fn shl_assign(&mut self, other: &i128)

Performs the <<= operation. Read more
","ShlAssign<&i128>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShlAssign<&i16> for usize

source§

fn shl_assign(&mut self, other: &i16)

Performs the <<= operation. Read more
","ShlAssign<&i16>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShlAssign<&i32> for usize

source§

fn shl_assign(&mut self, other: &i32)

Performs the <<= operation. Read more
","ShlAssign<&i32>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShlAssign<&i64> for usize

source§

fn shl_assign(&mut self, other: &i64)

Performs the <<= operation. Read more
","ShlAssign<&i64>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShlAssign<&i8> for usize

source§

fn shl_assign(&mut self, other: &i8)

Performs the <<= operation. Read more
","ShlAssign<&i8>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShlAssign<&isize> for usize

source§

fn shl_assign(&mut self, other: &isize)

Performs the <<= operation. Read more
","ShlAssign<&isize>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShlAssign<&u128> for usize

source§

fn shl_assign(&mut self, other: &u128)

Performs the <<= operation. Read more
","ShlAssign<&u128>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShlAssign<&u16> for usize

source§

fn shl_assign(&mut self, other: &u16)

Performs the <<= operation. Read more
","ShlAssign<&u16>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShlAssign<&u32> for usize

source§

fn shl_assign(&mut self, other: &u32)

Performs the <<= operation. Read more
","ShlAssign<&u32>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShlAssign<&u64> for usize

source§

fn shl_assign(&mut self, other: &u64)

Performs the <<= operation. Read more
","ShlAssign<&u64>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShlAssign<&u8> for usize

source§

fn shl_assign(&mut self, other: &u8)

Performs the <<= operation. Read more
","ShlAssign<&u8>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShlAssign<&usize> for usize

source§

fn shl_assign(&mut self, other: &usize)

Performs the <<= operation. Read more
","ShlAssign<&usize>","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShlAssign<i128> for usize

source§

fn shl_assign(&mut self, other: i128)

Performs the <<= operation. Read more
","ShlAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShlAssign<i16> for usize

source§

fn shl_assign(&mut self, other: i16)

Performs the <<= operation. Read more
","ShlAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShlAssign<i32> for usize

source§

fn shl_assign(&mut self, other: i32)

Performs the <<= operation. Read more
","ShlAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShlAssign<i64> for usize

source§

fn shl_assign(&mut self, other: i64)

Performs the <<= operation. Read more
","ShlAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShlAssign<i8> for usize

source§

fn shl_assign(&mut self, other: i8)

Performs the <<= operation. Read more
","ShlAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShlAssign<isize> for usize

source§

fn shl_assign(&mut self, other: isize)

Performs the <<= operation. Read more
","ShlAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShlAssign<u128> for usize

source§

fn shl_assign(&mut self, other: u128)

Performs the <<= operation. Read more
","ShlAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShlAssign<u16> for usize

source§

fn shl_assign(&mut self, other: u16)

Performs the <<= operation. Read more
","ShlAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShlAssign<u32> for usize

source§

fn shl_assign(&mut self, other: u32)

Performs the <<= operation. Read more
","ShlAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShlAssign<u64> for usize

source§

fn shl_assign(&mut self, other: u64)

Performs the <<= operation. Read more
","ShlAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShlAssign<u8> for usize

source§

fn shl_assign(&mut self, other: u8)

Performs the <<= operation. Read more
","ShlAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShlAssign for usize

source§

fn shl_assign(&mut self, other: usize)

Performs the <<= operation. Read more
","ShlAssign","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<&i128> for usize

source§

type Output = <usize as Shr<i128>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &i128) -> <usize as Shr<i128>>::Output

Performs the >> operation. Read more
","Shr<&i128>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<&i16> for usize

source§

type Output = <usize as Shr<i16>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &i16) -> <usize as Shr<i16>>::Output

Performs the >> operation. Read more
","Shr<&i16>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<&i32> for usize

source§

type Output = <usize as Shr<i32>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &i32) -> <usize as Shr<i32>>::Output

Performs the >> operation. Read more
","Shr<&i32>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<&i64> for usize

source§

type Output = <usize as Shr<i64>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &i64) -> <usize as Shr<i64>>::Output

Performs the >> operation. Read more
","Shr<&i64>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<&i8> for usize

source§

type Output = <usize as Shr<i8>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &i8) -> <usize as Shr<i8>>::Output

Performs the >> operation. Read more
","Shr<&i8>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<&isize> for usize

source§

type Output = <usize as Shr<isize>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &isize) -> <usize as Shr<isize>>::Output

Performs the >> operation. Read more
","Shr<&isize>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<&u128> for usize

source§

type Output = <usize as Shr<u128>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &u128) -> <usize as Shr<u128>>::Output

Performs the >> operation. Read more
","Shr<&u128>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<&u16> for usize

source§

type Output = <usize as Shr<u16>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &u16) -> <usize as Shr<u16>>::Output

Performs the >> operation. Read more
","Shr<&u16>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<&u32> for usize

source§

type Output = <usize as Shr<u32>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &u32) -> <usize as Shr<u32>>::Output

Performs the >> operation. Read more
","Shr<&u32>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<&u64> for usize

source§

type Output = <usize as Shr<u64>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &u64) -> <usize as Shr<u64>>::Output

Performs the >> operation. Read more
","Shr<&u64>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<&u8> for usize

source§

type Output = <usize as Shr<u8>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &u8) -> <usize as Shr<u8>>::Output

Performs the >> operation. Read more
","Shr<&u8>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<&usize> for usize

source§

type Output = <usize as Shr>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &usize) -> <usize as Shr>::Output

Performs the >> operation. Read more
","Shr<&usize>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<i128> for usize

source§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: i128) -> usize

Performs the >> operation. Read more
","Shr","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<i16> for usize

source§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: i16) -> usize

Performs the >> operation. Read more
","Shr","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<i32> for usize

source§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: i32) -> usize

Performs the >> operation. Read more
","Shr","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<i64> for usize

source§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: i64) -> usize

Performs the >> operation. Read more
","Shr","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<i8> for usize

source§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: i8) -> usize

Performs the >> operation. Read more
","Shr","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<isize> for usize

source§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: isize) -> usize

Performs the >> operation. Read more
","Shr","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<u128> for usize

source§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: u128) -> usize

Performs the >> operation. Read more
","Shr","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<u16> for usize

source§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: u16) -> usize

Performs the >> operation. Read more
","Shr","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<u32> for usize

source§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: u32) -> usize

Performs the >> operation. Read more
","Shr","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<u64> for usize

source§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: u64) -> usize

Performs the >> operation. Read more
","Shr","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr<u8> for usize

source§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: u8) -> usize

Performs the >> operation. Read more
","Shr","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Shr for usize

source§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: usize) -> usize

Performs the >> operation. Read more
","Shr","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShrAssign<&i128> for usize

source§

fn shr_assign(&mut self, other: &i128)

Performs the >>= operation. Read more
","ShrAssign<&i128>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShrAssign<&i16> for usize

source§

fn shr_assign(&mut self, other: &i16)

Performs the >>= operation. Read more
","ShrAssign<&i16>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShrAssign<&i32> for usize

source§

fn shr_assign(&mut self, other: &i32)

Performs the >>= operation. Read more
","ShrAssign<&i32>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShrAssign<&i64> for usize

source§

fn shr_assign(&mut self, other: &i64)

Performs the >>= operation. Read more
","ShrAssign<&i64>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShrAssign<&i8> for usize

source§

fn shr_assign(&mut self, other: &i8)

Performs the >>= operation. Read more
","ShrAssign<&i8>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShrAssign<&isize> for usize

source§

fn shr_assign(&mut self, other: &isize)

Performs the >>= operation. Read more
","ShrAssign<&isize>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShrAssign<&u128> for usize

source§

fn shr_assign(&mut self, other: &u128)

Performs the >>= operation. Read more
","ShrAssign<&u128>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShrAssign<&u16> for usize

source§

fn shr_assign(&mut self, other: &u16)

Performs the >>= operation. Read more
","ShrAssign<&u16>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShrAssign<&u32> for usize

source§

fn shr_assign(&mut self, other: &u32)

Performs the >>= operation. Read more
","ShrAssign<&u32>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShrAssign<&u64> for usize

source§

fn shr_assign(&mut self, other: &u64)

Performs the >>= operation. Read more
","ShrAssign<&u64>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShrAssign<&u8> for usize

source§

fn shr_assign(&mut self, other: &u8)

Performs the >>= operation. Read more
","ShrAssign<&u8>","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl ShrAssign<&usize> for usize

source§

fn shr_assign(&mut self, other: &usize)

Performs the >>= operation. Read more
","ShrAssign<&usize>","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShrAssign<i128> for usize

source§

fn shr_assign(&mut self, other: i128)

Performs the >>= operation. Read more
","ShrAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShrAssign<i16> for usize

source§

fn shr_assign(&mut self, other: i16)

Performs the >>= operation. Read more
","ShrAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShrAssign<i32> for usize

source§

fn shr_assign(&mut self, other: i32)

Performs the >>= operation. Read more
","ShrAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShrAssign<i64> for usize

source§

fn shr_assign(&mut self, other: i64)

Performs the >>= operation. Read more
","ShrAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShrAssign<i8> for usize

source§

fn shr_assign(&mut self, other: i8)

Performs the >>= operation. Read more
","ShrAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShrAssign<isize> for usize

source§

fn shr_assign(&mut self, other: isize)

Performs the >>= operation. Read more
","ShrAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShrAssign<u128> for usize

source§

fn shr_assign(&mut self, other: u128)

Performs the >>= operation. Read more
","ShrAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShrAssign<u16> for usize

source§

fn shr_assign(&mut self, other: u16)

Performs the >>= operation. Read more
","ShrAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShrAssign<u32> for usize

source§

fn shr_assign(&mut self, other: u32)

Performs the >>= operation. Read more
","ShrAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShrAssign<u64> for usize

source§

fn shr_assign(&mut self, other: u64)

Performs the >>= operation. Read more
","ShrAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShrAssign<u8> for usize

source§

fn shr_assign(&mut self, other: u8)

Performs the >>= operation. Read more
","ShrAssign","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl ShrAssign for usize

source§

fn shr_assign(&mut self, other: usize)

Performs the >>= operation. Read more
","ShrAssign","gosling::context::HandshakeHandle"],["
source§

impl SimdElement for usize

source§

type Mask = isize

🔬This is a nightly-only experimental API. (portable_simd)
The mask element type corresponding to this element type.
","SimdElement","gosling::context::HandshakeHandle"],["
1.15.0 (const: unstable) · source§

impl<T> SliceIndex<[T]> for usize

The methods index and index_mut panic if the index is out of bounds.

\n
source§

type Output = T

The output type returned by methods.
source§

fn get(self, slice: &[T]) -> Option<&T>

🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a shared reference to the output at this location, if in\nbounds.
source§

fn get_mut(self, slice: &mut [T]) -> Option<&mut T>

🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a mutable reference to the output at this location, if in\nbounds.
source§

unsafe fn get_unchecked(self, slice: *const [T]) -> *const T

🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a pointer to the output at this location, without\nperforming any bounds checking. Read more
source§

unsafe fn get_unchecked_mut(self, slice: *mut [T]) -> *mut T

🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a mutable pointer to the output at this location, without\nperforming any bounds checking. Read more
source§

fn index(self, slice: &[T]) -> &T

🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a shared reference to the output at this location, panicking\nif out of bounds.
source§

fn index_mut(self, slice: &mut [T]) -> &mut T

🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a mutable reference to the output at this location, panicking\nif out of bounds.
","SliceIndex<[T]>","gosling::context::HandshakeHandle"],["
§

impl SmartDisplay for usize

§

type Metadata = ()

User-provided metadata type.
§

fn metadata(&self, f: FormatterOptions) -> Metadata<'_, usize>

Compute any information needed to format the value. This must, at a minimum, determine the\nwidth of the value before any padding is added by the formatter. Read more
§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Format the value using the given formatter. This is the same as Display::fmt. Read more
§

fn fmt_with_metadata(\n &self,\n f: &mut Formatter<'_>,\n _metadata: Metadata<'_, Self>,\n) -> Result<(), Error>

Format the value using the given formatter and metadata. The formatted output should have\nthe width indicated by the metadata. This is before any padding is added by the\nformatter. Read more
","SmartDisplay","gosling::context::HandshakeHandle"],["
source§

impl Step for usize

source§

fn forward(start: usize, n: usize) -> usize

🔬This is a nightly-only experimental API. (step_trait)
Returns the value that would be obtained by taking the successor\nof self count times. Read more
source§

fn backward(start: usize, n: usize) -> usize

🔬This is a nightly-only experimental API. (step_trait)
Returns the value that would be obtained by taking the predecessor\nof self count times. Read more
source§

unsafe fn forward_unchecked(start: usize, n: usize) -> usize

🔬This is a nightly-only experimental API. (step_trait)
Returns the value that would be obtained by taking the successor\nof self count times. Read more
source§

unsafe fn backward_unchecked(start: usize, n: usize) -> usize

🔬This is a nightly-only experimental API. (step_trait)
Returns the value that would be obtained by taking the predecessor\nof self count times. Read more
source§

fn steps_between(start: &usize, end: &usize) -> Option<usize>

🔬This is a nightly-only experimental API. (step_trait)
Returns the number of successor steps required to get from start to end. Read more
source§

fn forward_checked(start: usize, n: usize) -> Option<usize>

🔬This is a nightly-only experimental API. (step_trait)
Returns the value that would be obtained by taking the successor\nof self count times. Read more
source§

fn backward_checked(start: usize, n: usize) -> Option<usize>

🔬This is a nightly-only experimental API. (step_trait)
Returns the value that would be obtained by taking the predecessor\nof self count times. Read more
","Step","gosling::context::HandshakeHandle"],["
source§

impl<'a> Sub<&'a BigInt> for usize

source§

type Output = BigInt

The resulting type after applying the - operator.
source§

fn sub(self, other: &BigInt) -> BigInt

Performs the - operation. Read more
","Sub<&'a BigInt>","gosling::context::HandshakeHandle"],["
source§

impl<'a> Sub<&'a BigUint> for usize

source§

type Output = BigUint

The resulting type after applying the - operator.
source§

fn sub(self, other: &BigUint) -> BigUint

Performs the - operation. Read more
","Sub<&'a BigUint>","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Sub<&usize> for usize

source§

type Output = <usize as Sub>::Output

The resulting type after applying the - operator.
source§

fn sub(self, other: &usize) -> <usize as Sub>::Output

Performs the - operation. Read more
","Sub<&usize>","gosling::context::HandshakeHandle"],["
source§

impl Sub<BigInt> for usize

source§

type Output = BigInt

The resulting type after applying the - operator.
source§

fn sub(self, other: BigInt) -> BigInt

Performs the - operation. Read more
","Sub","gosling::context::HandshakeHandle"],["
source§

impl Sub<BigUint> for usize

source§

type Output = BigUint

The resulting type after applying the - operator.
source§

fn sub(self, other: BigUint) -> BigUint

Performs the - operation. Read more
","Sub","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Sub for usize

source§

type Output = usize

The resulting type after applying the - operator.
source§

fn sub(self, other: usize) -> usize

Performs the - operation. Read more
","Sub","gosling::context::HandshakeHandle"],["
1.22.0 · source§

impl SubAssign<&usize> for usize

source§

fn sub_assign(&mut self, other: &usize)

Performs the -= operation. Read more
","SubAssign<&usize>","gosling::context::HandshakeHandle"],["
1.8.0 · source§

impl SubAssign for usize

source§

fn sub_assign(&mut self, other: usize)

Performs the -= operation. Read more
","SubAssign","gosling::context::HandshakeHandle"],["
1.12.0 · source§

impl<'a> Sum<&'a usize> for usize

source§

fn sum<I>(iter: I) -> usize
where\n I: Iterator<Item = &'a usize>,

Takes an iterator and generates Self from the elements by “summing up”\nthe items.
","Sum<&'a usize>","gosling::context::HandshakeHandle"],["
1.12.0 · source§

impl Sum for usize

source§

fn sum<I>(iter: I) -> usize
where\n I: Iterator<Item = usize>,

Takes an iterator and generates Self from the elements by “summing up”\nthe items.
","Sum","gosling::context::HandshakeHandle"],["
source§

impl ToBigInt for usize

source§

fn to_bigint(&self) -> Option<BigInt>

Converts the value of self to a BigInt.
","ToBigInt","gosling::context::HandshakeHandle"],["
source§

impl ToBigUint for usize

source§

fn to_biguint(&self) -> Option<BigUint>

Converts the value of self to a BigUint.
","ToBigUint","gosling::context::HandshakeHandle"],["
source§

impl ToBytes for usize

source§

type Bytes = [u8; 8]

source§

fn to_be_bytes(&self) -> <usize as ToBytes>::Bytes

Return the memory representation of this number as a byte array in big-endian byte order. Read more
source§

fn to_le_bytes(&self) -> <usize as ToBytes>::Bytes

Return the memory representation of this number as a byte array in little-endian byte order. Read more
source§

fn to_ne_bytes(&self) -> <usize as ToBytes>::Bytes

Return the memory representation of this number as a byte array in native byte order. Read more
","ToBytes","gosling::context::HandshakeHandle"],["
source§

impl ToPrimitive for usize

source§

fn to_isize(&self) -> Option<isize>

Converts the value of self to an isize. If the value cannot be\nrepresented by an isize, then None is returned.
source§

fn to_i8(&self) -> Option<i8>

Converts the value of self to an i8. If the value cannot be\nrepresented by an i8, then None is returned.
source§

fn to_i16(&self) -> Option<i16>

Converts the value of self to an i16. If the value cannot be\nrepresented by an i16, then None is returned.
source§

fn to_i32(&self) -> Option<i32>

Converts the value of self to an i32. If the value cannot be\nrepresented by an i32, then None is returned.
source§

fn to_i64(&self) -> Option<i64>

Converts the value of self to an i64. If the value cannot be\nrepresented by an i64, then None is returned.
source§

fn to_i128(&self) -> Option<i128>

Converts the value of self to an i128. If the value cannot be\nrepresented by an i128 (i64 under the default implementation), then\nNone is returned. Read more
source§

fn to_usize(&self) -> Option<usize>

Converts the value of self to a usize. If the value cannot be\nrepresented by a usize, then None is returned.
source§

fn to_u8(&self) -> Option<u8>

Converts the value of self to a u8. If the value cannot be\nrepresented by a u8, then None is returned.
source§

fn to_u16(&self) -> Option<u16>

Converts the value of self to a u16. If the value cannot be\nrepresented by a u16, then None is returned.
source§

fn to_u32(&self) -> Option<u32>

Converts the value of self to a u32. If the value cannot be\nrepresented by a u32, then None is returned.
source§

fn to_u64(&self) -> Option<u64>

Converts the value of self to a u64. If the value cannot be\nrepresented by a u64, then None is returned.
source§

fn to_u128(&self) -> Option<u128>

Converts the value of self to a u128. If the value cannot be\nrepresented by a u128 (u64 under the default implementation), then\nNone is returned. Read more
source§

fn to_f32(&self) -> Option<f32>

Converts the value of self to an f32. Overflows may map to positive\nor negative inifinity, otherwise None is returned if the value cannot\nbe represented by an f32.
source§

fn to_f64(&self) -> Option<f64>

Converts the value of self to an f64. Overflows may map to positive\nor negative inifinity, otherwise None is returned if the value cannot\nbe represented by an f64. Read more
","ToPrimitive","gosling::context::HandshakeHandle"],["
§

impl ToSql for usize

§

fn to_sql(&self) -> Result<ToSqlOutput<'_>, Error>

Converts Rust value to SQLite value
","ToSql","gosling::context::HandshakeHandle"],["
§

impl ToUsize for usize

§

fn to_usize(&self) -> usize

converts self to usize
","ToUsize","gosling::context::HandshakeHandle"],["
§

impl ToUsize for usize

§

fn to_usize(&self) -> usize

converts self to usize
","ToUsize","gosling::context::HandshakeHandle"],["
§

impl<const L: i32, const H: i32> TryFrom<BoundedInt32<L, H>> for usize

§

type Error = Error

The type returned in the event of a conversion error.
§

fn try_from(\n val: BoundedInt32<L, H>,\n) -> Result<usize, <usize as TryFrom<BoundedInt32<L, H>>>::Error>

Performs the conversion.
","TryFrom>","gosling::context::HandshakeHandle"],["
§

impl TryFrom<Length> for usize

§

type Error = Error

The type returned in the event of a conversion error.
§

fn try_from(len: Length) -> Result<usize, Error>

Performs the conversion.
","TryFrom","gosling::context::HandshakeHandle"],["
1.34.0 · source§

impl TryFrom<i128> for usize

source§

fn try_from(u: i128) -> Result<usize, <usize as TryFrom<i128>>::Error>

Tries to create the target number type from a source\nnumber type. This returns an error if the source value\nis outside of the range of the target type.

\n
source§

type Error = TryFromIntError

The type returned in the event of a conversion error.
","TryFrom","gosling::context::HandshakeHandle"],["
1.34.0 · source§

impl TryFrom<i16> for usize

source§

fn try_from(u: i16) -> Result<usize, <usize as TryFrom<i16>>::Error>

Tries to create the target number type from a source\nnumber type. This returns an error if the source value\nis outside of the range of the target type.

\n
source§

type Error = TryFromIntError

The type returned in the event of a conversion error.
","TryFrom","gosling::context::HandshakeHandle"],["
1.34.0 · source§

impl TryFrom<i32> for usize

source§

fn try_from(u: i32) -> Result<usize, <usize as TryFrom<i32>>::Error>

Tries to create the target number type from a source\nnumber type. This returns an error if the source value\nis outside of the range of the target type.

\n
source§

type Error = TryFromIntError

The type returned in the event of a conversion error.
","TryFrom","gosling::context::HandshakeHandle"],["
1.34.0 · source§

impl TryFrom<i64> for usize

source§

fn try_from(u: i64) -> Result<usize, <usize as TryFrom<i64>>::Error>

Tries to create the target number type from a source\nnumber type. This returns an error if the source value\nis outside of the range of the target type.

\n
source§

type Error = TryFromIntError

The type returned in the event of a conversion error.
","TryFrom","gosling::context::HandshakeHandle"],["
1.34.0 · source§

impl TryFrom<i8> for usize

source§

fn try_from(u: i8) -> Result<usize, <usize as TryFrom<i8>>::Error>

Tries to create the target number type from a source\nnumber type. This returns an error if the source value\nis outside of the range of the target type.

\n
source§

type Error = TryFromIntError

The type returned in the event of a conversion error.
","TryFrom","gosling::context::HandshakeHandle"],["
1.34.0 · source§

impl TryFrom<isize> for usize

source§

fn try_from(u: isize) -> Result<usize, <usize as TryFrom<isize>>::Error>

Tries to create the target number type from a source\nnumber type. This returns an error if the source value\nis outside of the range of the target type.

\n
source§

type Error = TryFromIntError

The type returned in the event of a conversion error.
","TryFrom","gosling::context::HandshakeHandle"],["
1.34.0 · source§

impl TryFrom<u128> for usize

source§

fn try_from(u: u128) -> Result<usize, <usize as TryFrom<u128>>::Error>

Tries to create the target number type from a source\nnumber type. This returns an error if the source value\nis outside of the range of the target type.

\n
source§

type Error = TryFromIntError

The type returned in the event of a conversion error.
","TryFrom","gosling::context::HandshakeHandle"],["
1.34.0 · source§

impl TryFrom<u32> for usize

source§

fn try_from(value: u32) -> Result<usize, <usize as TryFrom<u32>>::Error>

Tries to create the target number type from a source\nnumber type. This returns an error if the source value\nis outside of the range of the target type.

\n
source§

type Error = TryFromIntError

The type returned in the event of a conversion error.
","TryFrom","gosling::context::HandshakeHandle"],["
1.34.0 · source§

impl TryFrom<u64> for usize

source§

fn try_from(value: u64) -> Result<usize, <usize as TryFrom<u64>>::Error>

Tries to create the target number type from a source\nnumber type. This returns an error if the source value\nis outside of the range of the target type.

\n
source§

type Error = TryFromIntError

The type returned in the event of a conversion error.
","TryFrom","gosling::context::HandshakeHandle"],["
§

impl Unsigned for usize

§

fn is_power_of_two(self) -> bool

Returns true if and only if self == 2^k for some k.
§

fn next_power_of_two(self) -> usize

Returns the smallest power of two greater than or equal to self. Read more
§

fn checked_next_power_of_two(self) -> Option<usize>

Returns the smallest power of two greater than or equal to n. If the\nnext power of two is greater than the type’s maximum value, None is\nreturned, otherwise the power of two is wrapped in Some.
","Unsigned","gosling::context::HandshakeHandle"],["
1.42.0 · source§

impl UpperExp for usize

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","UpperExp","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl UpperHex for usize

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","UpperHex","gosling::context::HandshakeHandle"],["
§

impl Value for usize

§

fn record(&self, key: &Field, visitor: &mut dyn Visit)

Visits this value with the given Visitor.
","Value","gosling::context::HandshakeHandle"],["
source§

impl WrappingAdd for usize

source§

fn wrapping_add(&self, v: &usize) -> usize

Wrapping (modular) addition. Computes self + other, wrapping around at the boundary of\nthe type.
","WrappingAdd","gosling::context::HandshakeHandle"],["
source§

impl WrappingMul for usize

source§

fn wrapping_mul(&self, v: &usize) -> usize

Wrapping (modular) multiplication. Computes self * other, wrapping around at the boundary\nof the type.
","WrappingMul","gosling::context::HandshakeHandle"],["
source§

impl WrappingNeg for usize

source§

fn wrapping_neg(&self) -> usize

Wrapping (modular) negation. Computes -self,\nwrapping around at the boundary of the type. Read more
","WrappingNeg","gosling::context::HandshakeHandle"],["
source§

impl WrappingShl for usize

source§

fn wrapping_shl(&self, rhs: u32) -> usize

Panic-free bitwise shift-left; yields self << mask(rhs),\nwhere mask removes any high order bits of rhs that would\ncause the shift to exceed the bitwidth of the type. Read more
","WrappingShl","gosling::context::HandshakeHandle"],["
source§

impl WrappingShr for usize

source§

fn wrapping_shr(&self, rhs: u32) -> usize

Panic-free bitwise shift-right; yields self >> mask(rhs),\nwhere mask removes any high order bits of rhs that would\ncause the shift to exceed the bitwidth of the type. Read more
","WrappingShr","gosling::context::HandshakeHandle"],["
source§

impl WrappingSub for usize

source§

fn wrapping_sub(&self, v: &usize) -> usize

Wrapping (modular) subtraction. Computes self - other, wrapping around at the boundary\nof the type.
","WrappingSub","gosling::context::HandshakeHandle"],["
§

impl WriteHex for usize

§

fn write_hex<W>(&self, writer: W) -> Result<(), Error>
where\n W: Write,

Write the value as hex.
","WriteHex","gosling::context::HandshakeHandle"],["
§

impl Writeable for usize

§

fn write_to<W>(&self, sink: &mut W) -> Result<(), Error>
where\n W: Write + ?Sized,

Writes a string to the given sink. Errors from the sink are bubbled up.\nThe default implementation delegates to write_to_parts, and discards any\nPart annotations.
§

fn writeable_length_hint(&self) -> LengthHint

Returns a hint for the number of UTF-8 bytes that will be written to the sink. Read more
§

fn write_to_parts<S>(&self, sink: &mut S) -> Result<(), Error>
where\n S: PartsWrite + ?Sized,

Write bytes and Part annotations to the given sink. Errors from the\nsink are bubbled up. The default implementation delegates to write_to,\nand doesn’t produce any Part annotations.
§

fn write_to_string(&self) -> Cow<'_, str>

Creates a new String with the data from this Writeable. Like ToString,\nbut smaller and faster. Read more
§

fn writeable_cmp_bytes(&self, other: &[u8]) -> Ordering

Compares the contents of this Writeable to the given bytes\nwithout allocating a String to hold the Writeable contents. Read more
","Writeable","gosling::context::HandshakeHandle"],["
§

impl<'a> Yokeable<'a> for usize

§

type Output = usize

This type MUST be Self with the 'static replaced with 'a, i.e. Self<'a>
§

fn transform(&self) -> &<usize as Yokeable<'a>>::Output

This method must cast self between &'a Self<'static> and &'a Self<'a>. Read more
§

fn transform_owned(self) -> <usize as Yokeable<'a>>::Output

This method must cast self between Self<'static> and Self<'a>. Read more
§

unsafe fn make(this: <usize as Yokeable<'a>>::Output) -> usize

This method can be used to cast away Self<'a>’s lifetime. Read more
§

fn transform_mut<F>(&'a mut self, f: F)
where\n F: 'static + for<'b> FnOnce(&'b mut <usize as Yokeable<'a>>::Output),

This method must cast self between &'a mut Self<'static> and &'a mut Self<'a>,\nand pass it to f. Read more
","Yokeable<'a>","gosling::context::HandshakeHandle"],["
source§

impl Zero for usize

source§

fn zero() -> usize

Returns the additive identity element of Self, 0. Read more
source§

fn is_zero(&self) -> bool

Returns true if self is equal to the additive identity.
source§

fn set_zero(&mut self)

Sets self to the additive identity element of Self, 0.
","Zero","gosling::context::HandshakeHandle"],["
§

impl<'a> ZeroFrom<'a, usize> for usize

§

fn zero_from(this: &'a usize) -> usize

Clone the other C into a struct that may retain references into C.
","ZeroFrom<'a, usize>","gosling::context::HandshakeHandle"],["
§

impl<'a> ZeroMapKV<'a> for usize

§

type Container = FlexZeroVec<'a>

The container that can be used with this type: [ZeroVec] or [VarZeroVec].
§

type Slice = FlexZeroSlice

§

type GetType = [u8]

The type produced by Container::get() Read more
§

type OwnedType = usize

The type produced by Container::replace() and Container::remove(),\nalso used during deserialization. If Self is human readable serialized,\ndeserializing to Self::OwnedType should produce the same value once\npassed through Self::owned_as_self() Read more
","ZeroMapKV<'a>","gosling::context::HandshakeHandle"],["
source§

impl usize

1.43.0 · source

pub const MIN: usize = 0usize

The smallest value that can be represented by this integer type.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(usize::MIN, 0);
\n
1.43.0 · source

pub const MAX: usize = 18_446_744_073_709_551_615usize

The largest value that can be represented by this integer type\n(264 − 1 on 64-bit targets).

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(usize::MAX, 18446744073709551615);
\n
1.53.0 · source

pub const BITS: u32 = 64u32

The size of this integer type in bits.

\n
§Examples
\n
assert_eq!(usize::BITS, 64);
\n
1.0.0 (const: 1.32.0) · source

pub const fn count_ones(self) -> u32

Returns the number of ones in the binary representation of self.

\n
§Examples
\n

Basic usage:

\n\n
let n = 0b01001100usize;\nassert_eq!(n.count_ones(), 3);\n\nlet max = usize::MAX;\nassert_eq!(max.count_ones(), 64);\n\nlet zero = 0usize;\nassert_eq!(zero.count_ones(), 0);
\n
1.0.0 (const: 1.32.0) · source

pub const fn count_zeros(self) -> u32

Returns the number of zeros in the binary representation of self.

\n
§Examples
\n

Basic usage:

\n\n
let zero = 0usize;\nassert_eq!(zero.count_zeros(), 64);\n\nlet max = usize::MAX;\nassert_eq!(max.count_zeros(), 0);
\n
1.0.0 (const: 1.32.0) · source

pub const fn leading_zeros(self) -> u32

Returns the number of leading zeros in the binary representation of self.

\n

Depending on what you’re doing with the value, you might also be interested in the\nilog2 function which returns a consistent number, even if the type widens.

\n
§Examples
\n

Basic usage:

\n\n
let n = usize::MAX >> 2;\nassert_eq!(n.leading_zeros(), 2);\n\nlet zero = 0usize;\nassert_eq!(zero.leading_zeros(), 64);\n\nlet max = usize::MAX;\nassert_eq!(max.leading_zeros(), 0);
\n
1.0.0 (const: 1.32.0) · source

pub const fn trailing_zeros(self) -> u32

Returns the number of trailing zeros in the binary representation\nof self.

\n
§Examples
\n

Basic usage:

\n\n
let n = 0b0101000usize;\nassert_eq!(n.trailing_zeros(), 3);\n\nlet zero = 0usize;\nassert_eq!(zero.trailing_zeros(), 64);\n\nlet max = usize::MAX;\nassert_eq!(max.trailing_zeros(), 0);
\n
1.46.0 (const: 1.46.0) · source

pub const fn leading_ones(self) -> u32

Returns the number of leading ones in the binary representation of self.

\n
§Examples
\n

Basic usage:

\n\n
let n = !(usize::MAX >> 2);\nassert_eq!(n.leading_ones(), 2);\n\nlet zero = 0usize;\nassert_eq!(zero.leading_ones(), 0);\n\nlet max = usize::MAX;\nassert_eq!(max.leading_ones(), 64);
\n
1.46.0 (const: 1.46.0) · source

pub const fn trailing_ones(self) -> u32

Returns the number of trailing ones in the binary representation\nof self.

\n
§Examples
\n

Basic usage:

\n\n
let n = 0b1010111usize;\nassert_eq!(n.trailing_ones(), 3);\n\nlet zero = 0usize;\nassert_eq!(zero.trailing_ones(), 0);\n\nlet max = usize::MAX;\nassert_eq!(max.trailing_ones(), 64);
\n
source

pub const fn cast_signed(self) -> isize

🔬This is a nightly-only experimental API. (integer_sign_cast)

Returns the bit pattern of self reinterpreted as a signed integer of the same size.

\n

This produces the same result as an as cast, but ensures that the bit-width remains\nthe same.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(integer_sign_cast)]\n\nlet n = usize::MAX;\n\nassert_eq!(n.cast_signed(), -1isize);
\n
1.0.0 (const: 1.32.0) · source

pub const fn rotate_left(self, n: u32) -> usize

Shifts the bits to the left by a specified amount, n,\nwrapping the truncated bits to the end of the resulting integer.

\n

Please note this isn’t the same operation as the << shifting operator!

\n
§Examples
\n

Basic usage:

\n\n
let n = 0xaa00000000006e1usize;\nlet m = 0x6e10aa;\n\nassert_eq!(n.rotate_left(12), m);
\n
1.0.0 (const: 1.32.0) · source

pub const fn rotate_right(self, n: u32) -> usize

Shifts the bits to the right by a specified amount, n,\nwrapping the truncated bits to the beginning of the resulting\ninteger.

\n

Please note this isn’t the same operation as the >> shifting operator!

\n
§Examples
\n

Basic usage:

\n\n
let n = 0x6e10aausize;\nlet m = 0xaa00000000006e1;\n\nassert_eq!(n.rotate_right(12), m);
\n
1.0.0 (const: 1.32.0) · source

pub const fn swap_bytes(self) -> usize

Reverses the byte order of the integer.

\n
§Examples
\n

Basic usage:

\n\n
let n = 0x1234567890123456usize;\nlet m = n.swap_bytes();\n\nassert_eq!(m, 0x5634129078563412);
\n
1.37.0 (const: 1.37.0) · source

pub const fn reverse_bits(self) -> usize

Reverses the order of bits in the integer. The least significant bit becomes the most significant bit,\nsecond least-significant bit becomes second most-significant bit, etc.

\n
§Examples
\n

Basic usage:

\n\n
let n = 0x1234567890123456usize;\nlet m = n.reverse_bits();\n\nassert_eq!(m, 0x6a2c48091e6a2c48);\nassert_eq!(0, 0usize.reverse_bits());
\n
1.0.0 (const: 1.32.0) · source

pub const fn from_be(x: usize) -> usize

Converts an integer from big endian to the target’s endianness.

\n

On big endian this is a no-op. On little endian the bytes are\nswapped.

\n
§Examples
\n

Basic usage:

\n\n
let n = 0x1Ausize;\n\nif cfg!(target_endian = \"big\") {\n    assert_eq!(usize::from_be(n), n)\n} else {\n    assert_eq!(usize::from_be(n), n.swap_bytes())\n}
\n
1.0.0 (const: 1.32.0) · source

pub const fn from_le(x: usize) -> usize

Converts an integer from little endian to the target’s endianness.

\n

On little endian this is a no-op. On big endian the bytes are\nswapped.

\n
§Examples
\n

Basic usage:

\n\n
let n = 0x1Ausize;\n\nif cfg!(target_endian = \"little\") {\n    assert_eq!(usize::from_le(n), n)\n} else {\n    assert_eq!(usize::from_le(n), n.swap_bytes())\n}
\n
1.0.0 (const: 1.32.0) · source

pub const fn to_be(self) -> usize

Converts self to big endian from the target’s endianness.

\n

On big endian this is a no-op. On little endian the bytes are\nswapped.

\n
§Examples
\n

Basic usage:

\n\n
let n = 0x1Ausize;\n\nif cfg!(target_endian = \"big\") {\n    assert_eq!(n.to_be(), n)\n} else {\n    assert_eq!(n.to_be(), n.swap_bytes())\n}
\n
1.0.0 (const: 1.32.0) · source

pub const fn to_le(self) -> usize

Converts self to little endian from the target’s endianness.

\n

On little endian this is a no-op. On big endian the bytes are\nswapped.

\n
§Examples
\n

Basic usage:

\n\n
let n = 0x1Ausize;\n\nif cfg!(target_endian = \"little\") {\n    assert_eq!(n.to_le(), n)\n} else {\n    assert_eq!(n.to_le(), n.swap_bytes())\n}
\n
1.0.0 (const: 1.47.0) · source

pub const fn checked_add(self, rhs: usize) -> Option<usize>

Checked integer addition. Computes self + rhs, returning None\nif overflow occurred.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!((usize::MAX - 2).checked_add(1), Some(usize::MAX - 1));\nassert_eq!((usize::MAX - 2).checked_add(3), None);
\n
source

pub const fn strict_add(self, rhs: usize) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict integer addition. Computes self + rhs, panicking\nif overflow occurred.

\n
§Panics
§Overflow behavior
\n

This function will always panic on overflow, regardless of whether overflow checks are enabled.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!((usize::MAX - 2).strict_add(1), usize::MAX - 1);
\n

The following panics because of overflow:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = (usize::MAX - 2).strict_add(3);
\n
1.79.0 (const: 1.79.0) · source

pub const unsafe fn unchecked_add(self, rhs: usize) -> usize

Unchecked integer addition. Computes self + rhs, assuming overflow\ncannot occur.

\n

Calling x.unchecked_add(y) is semantically equivalent to calling\nx.checked_add(y).unwrap_unchecked().

\n

If you’re just trying to avoid the panic in debug mode, then do not\nuse this. Instead, you’re looking for wrapping_add.

\n
§Safety
\n

This results in undefined behavior when\nself + rhs > usize::MAX or self + rhs < usize::MIN,\ni.e. when checked_add would return None.

\n
1.66.0 (const: 1.66.0) · source

pub const fn checked_add_signed(self, rhs: isize) -> Option<usize>

Checked addition with a signed integer. Computes self + rhs,\nreturning None if overflow occurred.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(1usize.checked_add_signed(2), Some(3));\nassert_eq!(1usize.checked_add_signed(-2), None);\nassert_eq!((usize::MAX - 2).checked_add_signed(3), None);
\n
source

pub const fn strict_add_signed(self, rhs: isize) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict addition with a signed integer. Computes self + rhs,\npanicking if overflow occurred.

\n
§Panics
§Overflow behavior
\n

This function will always panic on overflow, regardless of whether overflow checks are enabled.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(1usize.strict_add_signed(2), 3);
\n

The following panic because of overflow:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = 1usize.strict_add_signed(-2);
\n\n
#![feature(strict_overflow_ops)]\nlet _ = (usize::MAX - 2).strict_add_signed(3);
\n
1.0.0 (const: 1.47.0) · source

pub const fn checked_sub(self, rhs: usize) -> Option<usize>

Checked integer subtraction. Computes self - rhs, returning\nNone if overflow occurred.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(1usize.checked_sub(1), Some(0));\nassert_eq!(0usize.checked_sub(1), None);
\n
source

pub const fn strict_sub(self, rhs: usize) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict integer subtraction. Computes self - rhs, panicking if\noverflow occurred.

\n
§Panics
§Overflow behavior
\n

This function will always panic on overflow, regardless of whether overflow checks are enabled.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(1usize.strict_sub(1), 0);
\n

The following panics because of overflow:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = 0usize.strict_sub(1);
\n
1.79.0 (const: 1.79.0) · source

pub const unsafe fn unchecked_sub(self, rhs: usize) -> usize

Unchecked integer subtraction. Computes self - rhs, assuming overflow\ncannot occur.

\n

Calling x.unchecked_sub(y) is semantically equivalent to calling\nx.checked_sub(y).unwrap_unchecked().

\n

If you’re just trying to avoid the panic in debug mode, then do not\nuse this. Instead, you’re looking for wrapping_sub.

\n

If you find yourself writing code like this:

\n\n
if foo >= bar {\n    // SAFETY: just checked it will not overflow\n    let diff = unsafe { foo.unchecked_sub(bar) };\n    // ... use diff ...\n}
\n

Consider changing it to

\n\n
if let Some(diff) = foo.checked_sub(bar) {\n    // ... use diff ...\n}
\n

As that does exactly the same thing – including telling the optimizer\nthat the subtraction cannot overflow – but avoids needing unsafe.

\n
§Safety
\n

This results in undefined behavior when\nself - rhs > usize::MAX or self - rhs < usize::MIN,\ni.e. when checked_sub would return None.

\n
source

pub const fn checked_signed_diff(self, rhs: usize) -> Option<isize>

🔬This is a nightly-only experimental API. (unsigned_signed_diff)

Checked integer subtraction. Computes self - rhs and checks if the result fits into an isize, returning None if overflow occurred.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(unsigned_signed_diff)]\nassert_eq!(10usize.checked_signed_diff(2), Some(8));\nassert_eq!(2usize.checked_signed_diff(10), Some(-8));\nassert_eq!(usize::MAX.checked_signed_diff(isize::MAX as usize), None);\nassert_eq!((isize::MAX as usize).checked_signed_diff(usize::MAX), Some(isize::MIN));\nassert_eq!((isize::MAX as usize + 1).checked_signed_diff(0), None);\nassert_eq!(usize::MAX.checked_signed_diff(usize::MAX), Some(0));
\n
1.0.0 (const: 1.47.0) · source

pub const fn checked_mul(self, rhs: usize) -> Option<usize>

Checked integer multiplication. Computes self * rhs, returning\nNone if overflow occurred.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(5usize.checked_mul(1), Some(5));\nassert_eq!(usize::MAX.checked_mul(2), None);
\n
source

pub const fn strict_mul(self, rhs: usize) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict integer multiplication. Computes self * rhs, panicking if\noverflow occurred.

\n
§Panics
§Overflow behavior
\n

This function will always panic on overflow, regardless of whether overflow checks are enabled.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(5usize.strict_mul(1), 5);
\n

The following panics because of overflow:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = usize::MAX.strict_mul(2);
\n
1.79.0 (const: 1.79.0) · source

pub const unsafe fn unchecked_mul(self, rhs: usize) -> usize

Unchecked integer multiplication. Computes self * rhs, assuming overflow\ncannot occur.

\n

Calling x.unchecked_mul(y) is semantically equivalent to calling\nx.checked_mul(y).unwrap_unchecked().

\n

If you’re just trying to avoid the panic in debug mode, then do not\nuse this. Instead, you’re looking for wrapping_mul.

\n
§Safety
\n

This results in undefined behavior when\nself * rhs > usize::MAX or self * rhs < usize::MIN,\ni.e. when checked_mul would return None.

\n
1.0.0 (const: 1.52.0) · source

pub const fn checked_div(self, rhs: usize) -> Option<usize>

Checked integer division. Computes self / rhs, returning None\nif rhs == 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(128usize.checked_div(2), Some(64));\nassert_eq!(1usize.checked_div(0), None);
\n
source

pub const fn strict_div(self, rhs: usize) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict integer division. Computes self / rhs.

\n

Strict division on unsigned types is just normal division. There’s no\nway overflow could ever happen. This function exists so that all\noperations are accounted for in the strict operations.

\n
§Panics
\n

This function will panic if rhs is zero.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(100usize.strict_div(10), 10);
\n

The following panics because of division by zero:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = (1usize).strict_div(0);
\n
1.38.0 (const: 1.52.0) · source

pub const fn checked_div_euclid(self, rhs: usize) -> Option<usize>

Checked Euclidean division. Computes self.div_euclid(rhs), returning None\nif rhs == 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(128usize.checked_div_euclid(2), Some(64));\nassert_eq!(1usize.checked_div_euclid(0), None);
\n
source

pub const fn strict_div_euclid(self, rhs: usize) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict Euclidean division. Computes self.div_euclid(rhs).

\n

Strict division on unsigned types is just normal division. There’s no\nway overflow could ever happen. This function exists so that all\noperations are accounted for in the strict operations. Since, for the\npositive integers, all common definitions of division are equal, this\nis exactly equal to self.strict_div(rhs).

\n
§Panics
\n

This function will panic if rhs is zero.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(100usize.strict_div_euclid(10), 10);
\n

The following panics because of division by zero:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = (1usize).strict_div_euclid(0);
\n
1.7.0 (const: 1.52.0) · source

pub const fn checked_rem(self, rhs: usize) -> Option<usize>

Checked integer remainder. Computes self % rhs, returning None\nif rhs == 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(5usize.checked_rem(2), Some(1));\nassert_eq!(5usize.checked_rem(0), None);
\n
source

pub const fn strict_rem(self, rhs: usize) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict integer remainder. Computes self % rhs.

\n

Strict remainder calculation on unsigned types is just the regular\nremainder calculation. There’s no way overflow could ever happen.\nThis function exists so that all operations are accounted for in the\nstrict operations.

\n
§Panics
\n

This function will panic if rhs is zero.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(100usize.strict_rem(10), 0);
\n

The following panics because of division by zero:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = 5usize.strict_rem(0);
\n
1.38.0 (const: 1.52.0) · source

pub const fn checked_rem_euclid(self, rhs: usize) -> Option<usize>

Checked Euclidean modulo. Computes self.rem_euclid(rhs), returning None\nif rhs == 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(5usize.checked_rem_euclid(2), Some(1));\nassert_eq!(5usize.checked_rem_euclid(0), None);
\n
source

pub const fn strict_rem_euclid(self, rhs: usize) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict Euclidean modulo. Computes self.rem_euclid(rhs).

\n

Strict modulo calculation on unsigned types is just the regular\nremainder calculation. There’s no way overflow could ever happen.\nThis function exists so that all operations are accounted for in the\nstrict operations. Since, for the positive integers, all common\ndefinitions of division are equal, this is exactly equal to\nself.strict_rem(rhs).

\n
§Panics
\n

This function will panic if rhs is zero.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(100usize.strict_rem_euclid(10), 0);
\n

The following panics because of division by zero:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = 5usize.strict_rem_euclid(0);
\n
1.67.0 (const: 1.67.0) · source

pub const fn ilog(self, base: usize) -> u32

Returns the logarithm of the number with respect to an arbitrary base,\nrounded down.

\n

This method might not be optimized owing to implementation details;\nilog2 can produce results more efficiently for base 2, and ilog10\ncan produce results more efficiently for base 10.

\n
§Panics
\n

This function will panic if self is zero, or if base is less than 2.

\n
§Examples
\n
assert_eq!(5usize.ilog(5), 1);
\n
1.67.0 (const: 1.67.0) · source

pub const fn ilog2(self) -> u32

Returns the base 2 logarithm of the number, rounded down.

\n
§Panics
\n

This function will panic if self is zero.

\n
§Examples
\n
assert_eq!(2usize.ilog2(), 1);
\n
1.67.0 (const: 1.67.0) · source

pub const fn ilog10(self) -> u32

Returns the base 10 logarithm of the number, rounded down.

\n
§Panics
\n

This function will panic if self is zero.

\n
§Example
\n
assert_eq!(10usize.ilog10(), 1);
\n
1.67.0 (const: 1.67.0) · source

pub const fn checked_ilog(self, base: usize) -> Option<u32>

Returns the logarithm of the number with respect to an arbitrary base,\nrounded down.

\n

Returns None if the number is zero, or if the base is not at least 2.

\n

This method might not be optimized owing to implementation details;\nchecked_ilog2 can produce results more efficiently for base 2, and\nchecked_ilog10 can produce results more efficiently for base 10.

\n
§Examples
\n
assert_eq!(5usize.checked_ilog(5), Some(1));
\n
1.67.0 (const: 1.67.0) · source

pub const fn checked_ilog2(self) -> Option<u32>

Returns the base 2 logarithm of the number, rounded down.

\n

Returns None if the number is zero.

\n
§Examples
\n
assert_eq!(2usize.checked_ilog2(), Some(1));
\n
1.67.0 (const: 1.67.0) · source

pub const fn checked_ilog10(self) -> Option<u32>

Returns the base 10 logarithm of the number, rounded down.

\n

Returns None if the number is zero.

\n
§Examples
\n
assert_eq!(10usize.checked_ilog10(), Some(1));
\n
1.7.0 (const: 1.47.0) · source

pub const fn checked_neg(self) -> Option<usize>

Checked negation. Computes -self, returning None unless self == 0.

\n

Note that negating any positive integer will overflow.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(0usize.checked_neg(), Some(0));\nassert_eq!(1usize.checked_neg(), None);
\n
source

pub const fn strict_neg(self) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict negation. Computes -self, panicking unless self == 0.

\n

Note that negating any positive integer will overflow.

\n
§Panics
§Overflow behavior
\n

This function will always panic on overflow, regardless of whether overflow checks are enabled.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(0usize.strict_neg(), 0);
\n

The following panics because of overflow:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = 1usize.strict_neg();
\n
1.7.0 (const: 1.47.0) · source

pub const fn checked_shl(self, rhs: u32) -> Option<usize>

Checked shift left. Computes self << rhs, returning None\nif rhs is larger than or equal to the number of bits in self.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(0x1usize.checked_shl(4), Some(0x10));\nassert_eq!(0x10usize.checked_shl(129), None);\nassert_eq!(0x10usize.checked_shl(63), Some(0));
\n
source

pub const fn strict_shl(self, rhs: u32) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict shift left. Computes self << rhs, panicking if rhs is larger\nthan or equal to the number of bits in self.

\n
§Panics
§Overflow behavior
\n

This function will always panic on overflow, regardless of whether overflow checks are enabled.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(0x1usize.strict_shl(4), 0x10);
\n

The following panics because of overflow:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = 0x10usize.strict_shl(129);
\n
source

pub const unsafe fn unchecked_shl(self, rhs: u32) -> usize

🔬This is a nightly-only experimental API. (unchecked_shifts)

Unchecked shift left. Computes self << rhs, assuming that\nrhs is less than the number of bits in self.

\n
§Safety
\n

This results in undefined behavior if rhs is larger than\nor equal to the number of bits in self,\ni.e. when checked_shl would return None.

\n
source

pub const fn unbounded_shl(self, rhs: u32) -> usize

🔬This is a nightly-only experimental API. (unbounded_shifts)

Unbounded shift left. Computes self << rhs, without bounding the value of rhs

\n

If rhs is larger or equal to the number of bits in self,\nthe entire value is shifted out, and 0 is returned.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(unbounded_shifts)]\nassert_eq!(0x1usize.unbounded_shl(4), 0x10);\nassert_eq!(0x1usize.unbounded_shl(129), 0);
\n
1.7.0 (const: 1.47.0) · source

pub const fn checked_shr(self, rhs: u32) -> Option<usize>

Checked shift right. Computes self >> rhs, returning None\nif rhs is larger than or equal to the number of bits in self.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(0x10usize.checked_shr(4), Some(0x1));\nassert_eq!(0x10usize.checked_shr(129), None);
\n
source

pub const fn strict_shr(self, rhs: u32) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict shift right. Computes self >> rhs, panicking rhs is\nlarger than or equal to the number of bits in self.

\n
§Panics
§Overflow behavior
\n

This function will always panic on overflow, regardless of whether overflow checks are enabled.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(0x10usize.strict_shr(4), 0x1);
\n

The following panics because of overflow:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = 0x10usize.strict_shr(129);
\n
source

pub const unsafe fn unchecked_shr(self, rhs: u32) -> usize

🔬This is a nightly-only experimental API. (unchecked_shifts)

Unchecked shift right. Computes self >> rhs, assuming that\nrhs is less than the number of bits in self.

\n
§Safety
\n

This results in undefined behavior if rhs is larger than\nor equal to the number of bits in self,\ni.e. when checked_shr would return None.

\n
source

pub const fn unbounded_shr(self, rhs: u32) -> usize

🔬This is a nightly-only experimental API. (unbounded_shifts)

Unbounded shift right. Computes self >> rhs, without bounding the value of rhs

\n

If rhs is larger or equal to the number of bits in self,\nthe entire value is shifted out, and 0 is returned.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(unbounded_shifts)]\nassert_eq!(0x10usize.unbounded_shr(4), 0x1);\nassert_eq!(0x10usize.unbounded_shr(129), 0);
\n
1.34.0 (const: 1.50.0) · source

pub const fn checked_pow(self, exp: u32) -> Option<usize>

Checked exponentiation. Computes self.pow(exp), returning None if\noverflow occurred.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(2usize.checked_pow(5), Some(32));\nassert_eq!(usize::MAX.checked_pow(2), None);
\n
source

pub const fn strict_pow(self, exp: u32) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict exponentiation. Computes self.pow(exp), panicking if\noverflow occurred.

\n
§Panics
§Overflow behavior
\n

This function will always panic on overflow, regardless of whether overflow checks are enabled.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(2usize.strict_pow(5), 32);
\n

The following panics because of overflow:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = usize::MAX.strict_pow(2);
\n
1.0.0 (const: 1.47.0) · source

pub const fn saturating_add(self, rhs: usize) -> usize

Saturating integer addition. Computes self + rhs, saturating at\nthe numeric bounds instead of overflowing.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(100usize.saturating_add(1), 101);\nassert_eq!(usize::MAX.saturating_add(127), usize::MAX);
\n
1.66.0 (const: 1.66.0) · source

pub const fn saturating_add_signed(self, rhs: isize) -> usize

Saturating addition with a signed integer. Computes self + rhs,\nsaturating at the numeric bounds instead of overflowing.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(1usize.saturating_add_signed(2), 3);\nassert_eq!(1usize.saturating_add_signed(-2), 0);\nassert_eq!((usize::MAX - 2).saturating_add_signed(4), usize::MAX);
\n
1.0.0 (const: 1.47.0) · source

pub const fn saturating_sub(self, rhs: usize) -> usize

Saturating integer subtraction. Computes self - rhs, saturating\nat the numeric bounds instead of overflowing.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(100usize.saturating_sub(27), 73);\nassert_eq!(13usize.saturating_sub(127), 0);
\n
1.7.0 (const: 1.47.0) · source

pub const fn saturating_mul(self, rhs: usize) -> usize

Saturating integer multiplication. Computes self * rhs,\nsaturating at the numeric bounds instead of overflowing.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(2usize.saturating_mul(10), 20);\nassert_eq!((usize::MAX).saturating_mul(10), usize::MAX);
\n
1.58.0 (const: 1.58.0) · source

pub const fn saturating_div(self, rhs: usize) -> usize

Saturating integer division. Computes self / rhs, saturating at the\nnumeric bounds instead of overflowing.

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(5usize.saturating_div(2), 2);\n
\n
1.34.0 (const: 1.50.0) · source

pub const fn saturating_pow(self, exp: u32) -> usize

Saturating integer exponentiation. Computes self.pow(exp),\nsaturating at the numeric bounds instead of overflowing.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(4usize.saturating_pow(3), 64);\nassert_eq!(usize::MAX.saturating_pow(2), usize::MAX);
\n
1.0.0 (const: 1.32.0) · source

pub const fn wrapping_add(self, rhs: usize) -> usize

Wrapping (modular) addition. Computes self + rhs,\nwrapping around at the boundary of the type.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(200usize.wrapping_add(55), 255);\nassert_eq!(200usize.wrapping_add(usize::MAX), 199);
\n
1.66.0 (const: 1.66.0) · source

pub const fn wrapping_add_signed(self, rhs: isize) -> usize

Wrapping (modular) addition with a signed integer. Computes\nself + rhs, wrapping around at the boundary of the type.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(1usize.wrapping_add_signed(2), 3);\nassert_eq!(1usize.wrapping_add_signed(-2), usize::MAX);\nassert_eq!((usize::MAX - 2).wrapping_add_signed(4), 1);
\n
1.0.0 (const: 1.32.0) · source

pub const fn wrapping_sub(self, rhs: usize) -> usize

Wrapping (modular) subtraction. Computes self - rhs,\nwrapping around at the boundary of the type.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(100usize.wrapping_sub(100), 0);\nassert_eq!(100usize.wrapping_sub(usize::MAX), 101);
\n
1.0.0 (const: 1.32.0) · source

pub const fn wrapping_mul(self, rhs: usize) -> usize

Wrapping (modular) multiplication. Computes self * rhs, wrapping around at the boundary of the type.

\n
§Examples
\n

Basic usage:

\n

Please note that this example is shared between integer types.\nWhich explains why u8 is used here.

\n\n
assert_eq!(10u8.wrapping_mul(12), 120);\nassert_eq!(25u8.wrapping_mul(12), 44);
\n
1.2.0 (const: 1.52.0) · source

pub const fn wrapping_div(self, rhs: usize) -> usize

Wrapping (modular) division. Computes self / rhs.

\n

Wrapped division on unsigned types is just normal division. There’s\nno way wrapping could ever happen. This function exists so that all\noperations are accounted for in the wrapping operations.

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(100usize.wrapping_div(10), 10);
\n
1.38.0 (const: 1.52.0) · source

pub const fn wrapping_div_euclid(self, rhs: usize) -> usize

Wrapping Euclidean division. Computes self.div_euclid(rhs).

\n

Wrapped division on unsigned types is just normal division. There’s\nno way wrapping could ever happen. This function exists so that all\noperations are accounted for in the wrapping operations. Since, for\nthe positive integers, all common definitions of division are equal,\nthis is exactly equal to self.wrapping_div(rhs).

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(100usize.wrapping_div_euclid(10), 10);
\n
1.2.0 (const: 1.52.0) · source

pub const fn wrapping_rem(self, rhs: usize) -> usize

Wrapping (modular) remainder. Computes self % rhs.

\n

Wrapped remainder calculation on unsigned types is just the regular\nremainder calculation. There’s no way wrapping could ever happen.\nThis function exists so that all operations are accounted for in the\nwrapping operations.

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(100usize.wrapping_rem(10), 0);
\n
1.38.0 (const: 1.52.0) · source

pub const fn wrapping_rem_euclid(self, rhs: usize) -> usize

Wrapping Euclidean modulo. Computes self.rem_euclid(rhs).

\n

Wrapped modulo calculation on unsigned types is just the regular\nremainder calculation. There’s no way wrapping could ever happen.\nThis function exists so that all operations are accounted for in the\nwrapping operations. Since, for the positive integers, all common\ndefinitions of division are equal, this is exactly equal to\nself.wrapping_rem(rhs).

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(100usize.wrapping_rem_euclid(10), 0);
\n
1.2.0 (const: 1.32.0) · source

pub const fn wrapping_neg(self) -> usize

Wrapping (modular) negation. Computes -self,\nwrapping around at the boundary of the type.

\n

Since unsigned types do not have negative equivalents\nall applications of this function will wrap (except for -0).\nFor values smaller than the corresponding signed type’s maximum\nthe result is the same as casting the corresponding signed value.\nAny larger values are equivalent to MAX + 1 - (val - MAX - 1) where\nMAX is the corresponding signed type’s maximum.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(0_usize.wrapping_neg(), 0);\nassert_eq!(usize::MAX.wrapping_neg(), 1);\nassert_eq!(13_usize.wrapping_neg(), (!13) + 1);\nassert_eq!(42_usize.wrapping_neg(), !(42 - 1));
\n
1.2.0 (const: 1.32.0) · source

pub const fn wrapping_shl(self, rhs: u32) -> usize

Panic-free bitwise shift-left; yields self << mask(rhs),\nwhere mask removes any high-order bits of rhs that\nwould cause the shift to exceed the bitwidth of the type.

\n

Note that this is not the same as a rotate-left; the\nRHS of a wrapping shift-left is restricted to the range\nof the type, rather than the bits shifted out of the LHS\nbeing returned to the other end. The primitive integer\ntypes all implement a rotate_left function,\nwhich may be what you want instead.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(1usize.wrapping_shl(7), 128);\nassert_eq!(1usize.wrapping_shl(128), 1);
\n
1.2.0 (const: 1.32.0) · source

pub const fn wrapping_shr(self, rhs: u32) -> usize

Panic-free bitwise shift-right; yields self >> mask(rhs),\nwhere mask removes any high-order bits of rhs that\nwould cause the shift to exceed the bitwidth of the type.

\n

Note that this is not the same as a rotate-right; the\nRHS of a wrapping shift-right is restricted to the range\nof the type, rather than the bits shifted out of the LHS\nbeing returned to the other end. The primitive integer\ntypes all implement a rotate_right function,\nwhich may be what you want instead.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(128usize.wrapping_shr(7), 1);\nassert_eq!(128usize.wrapping_shr(128), 128);
\n
1.34.0 (const: 1.50.0) · source

pub const fn wrapping_pow(self, exp: u32) -> usize

Wrapping (modular) exponentiation. Computes self.pow(exp),\nwrapping around at the boundary of the type.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(3usize.wrapping_pow(5), 243);\nassert_eq!(3u8.wrapping_pow(6), 217);
\n
1.7.0 (const: 1.32.0) · source

pub const fn overflowing_add(self, rhs: usize) -> (usize, bool)

Calculates self + rhs.

\n

Returns a tuple of the addition along with a boolean indicating\nwhether an arithmetic overflow would occur. If an overflow would\nhave occurred then the wrapped value is returned.

\n
§Examples
\n

Basic usage

\n\n
assert_eq!(5usize.overflowing_add(2), (7, false));\nassert_eq!(usize::MAX.overflowing_add(1), (0, true));
\n
source

pub const fn carrying_add(self, rhs: usize, carry: bool) -> (usize, bool)

🔬This is a nightly-only experimental API. (bigint_helper_methods)

Calculates self + rhs + carry and returns a tuple containing\nthe sum and the output carry.

\n

Performs “ternary addition” of two integer operands and a carry-in\nbit, and returns an output integer and a carry-out bit. This allows\nchaining together multiple additions to create a wider addition, and\ncan be useful for bignum addition.

\n

This can be thought of as a 64-bit “full adder”, in the electronics sense.

\n

If the input carry is false, this method is equivalent to\noverflowing_add, and the output carry is\nequal to the overflow flag. Note that although carry and overflow\nflags are similar for unsigned integers, they are different for\nsigned integers.

\n
§Examples
\n
#![feature(bigint_helper_methods)]\n\n//    3  MAX    (a = 3 × 2^64 + 2^64 - 1)\n// +  5    7    (b = 5 × 2^64 + 7)\n// ---------\n//    9    6    (sum = 9 × 2^64 + 6)\n\nlet (a1, a0): (usize, usize) = (3, usize::MAX);\nlet (b1, b0): (usize, usize) = (5, 7);\nlet carry0 = false;\n\nlet (sum0, carry1) = a0.carrying_add(b0, carry0);\nassert_eq!(carry1, true);\nlet (sum1, carry2) = a1.carrying_add(b1, carry1);\nassert_eq!(carry2, false);\n\nassert_eq!((sum1, sum0), (9, 6));
\n
1.66.0 (const: 1.66.0) · source

pub const fn overflowing_add_signed(self, rhs: isize) -> (usize, bool)

Calculates self + rhs with a signed rhs.

\n

Returns a tuple of the addition along with a boolean indicating\nwhether an arithmetic overflow would occur. If an overflow would\nhave occurred then the wrapped value is returned.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(1usize.overflowing_add_signed(2), (3, false));\nassert_eq!(1usize.overflowing_add_signed(-2), (usize::MAX, true));\nassert_eq!((usize::MAX - 2).overflowing_add_signed(4), (1, true));
\n
1.7.0 (const: 1.32.0) · source

pub const fn overflowing_sub(self, rhs: usize) -> (usize, bool)

Calculates self - rhs

\n

Returns a tuple of the subtraction along with a boolean indicating\nwhether an arithmetic overflow would occur. If an overflow would\nhave occurred then the wrapped value is returned.

\n
§Examples
\n

Basic usage

\n\n
assert_eq!(5usize.overflowing_sub(2), (3, false));\nassert_eq!(0usize.overflowing_sub(1), (usize::MAX, true));
\n
source

pub const fn borrowing_sub(self, rhs: usize, borrow: bool) -> (usize, bool)

🔬This is a nightly-only experimental API. (bigint_helper_methods)

Calculates selfrhsborrow and returns a tuple\ncontaining the difference and the output borrow.

\n

Performs “ternary subtraction” by subtracting both an integer\noperand and a borrow-in bit from self, and returns an output\ninteger and a borrow-out bit. This allows chaining together multiple\nsubtractions to create a wider subtraction, and can be useful for\nbignum subtraction.

\n
§Examples
\n
#![feature(bigint_helper_methods)]\n\n//    9    6    (a = 9 × 2^64 + 6)\n// -  5    7    (b = 5 × 2^64 + 7)\n// ---------\n//    3  MAX    (diff = 3 × 2^64 + 2^64 - 1)\n\nlet (a1, a0): (usize, usize) = (9, 6);\nlet (b1, b0): (usize, usize) = (5, 7);\nlet borrow0 = false;\n\nlet (diff0, borrow1) = a0.borrowing_sub(b0, borrow0);\nassert_eq!(borrow1, true);\nlet (diff1, borrow2) = a1.borrowing_sub(b1, borrow1);\nassert_eq!(borrow2, false);\n\nassert_eq!((diff1, diff0), (3, usize::MAX));
\n
1.60.0 (const: 1.60.0) · source

pub const fn abs_diff(self, other: usize) -> usize

Computes the absolute difference between self and other.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(100usize.abs_diff(80), 20usize);\nassert_eq!(100usize.abs_diff(110), 10usize);
\n
1.7.0 (const: 1.32.0) · source

pub const fn overflowing_mul(self, rhs: usize) -> (usize, bool)

Calculates the multiplication of self and rhs.

\n

Returns a tuple of the multiplication along with a boolean\nindicating whether an arithmetic overflow would occur. If an\noverflow would have occurred then the wrapped value is returned.

\n
§Examples
\n

Basic usage:

\n

Please note that this example is shared between integer types.\nWhich explains why u32 is used here.

\n\n
assert_eq!(5u32.overflowing_mul(2), (10, false));\nassert_eq!(1_000_000_000u32.overflowing_mul(10), (1410065408, true));
\n
1.7.0 (const: 1.52.0) · source

pub const fn overflowing_div(self, rhs: usize) -> (usize, bool)

Calculates the divisor when self is divided by rhs.

\n

Returns a tuple of the divisor along with a boolean indicating\nwhether an arithmetic overflow would occur. Note that for unsigned\nintegers overflow never occurs, so the second value is always\nfalse.

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage

\n\n
assert_eq!(5usize.overflowing_div(2), (2, false));
\n
1.38.0 (const: 1.52.0) · source

pub const fn overflowing_div_euclid(self, rhs: usize) -> (usize, bool)

Calculates the quotient of Euclidean division self.div_euclid(rhs).

\n

Returns a tuple of the divisor along with a boolean indicating\nwhether an arithmetic overflow would occur. Note that for unsigned\nintegers overflow never occurs, so the second value is always\nfalse.\nSince, for the positive integers, all common\ndefinitions of division are equal, this\nis exactly equal to self.overflowing_div(rhs).

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage

\n\n
assert_eq!(5usize.overflowing_div_euclid(2), (2, false));
\n
1.7.0 (const: 1.52.0) · source

pub const fn overflowing_rem(self, rhs: usize) -> (usize, bool)

Calculates the remainder when self is divided by rhs.

\n

Returns a tuple of the remainder after dividing along with a boolean\nindicating whether an arithmetic overflow would occur. Note that for\nunsigned integers overflow never occurs, so the second value is\nalways false.

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage

\n\n
assert_eq!(5usize.overflowing_rem(2), (1, false));
\n
1.38.0 (const: 1.52.0) · source

pub const fn overflowing_rem_euclid(self, rhs: usize) -> (usize, bool)

Calculates the remainder self.rem_euclid(rhs) as if by Euclidean division.

\n

Returns a tuple of the modulo after dividing along with a boolean\nindicating whether an arithmetic overflow would occur. Note that for\nunsigned integers overflow never occurs, so the second value is\nalways false.\nSince, for the positive integers, all common\ndefinitions of division are equal, this operation\nis exactly equal to self.overflowing_rem(rhs).

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage

\n\n
assert_eq!(5usize.overflowing_rem_euclid(2), (1, false));
\n
1.7.0 (const: 1.32.0) · source

pub const fn overflowing_neg(self) -> (usize, bool)

Negates self in an overflowing fashion.

\n

Returns !self + 1 using wrapping operations to return the value\nthat represents the negation of this unsigned value. Note that for\npositive unsigned values overflow always occurs, but negating 0 does\nnot overflow.

\n
§Examples
\n

Basic usage

\n\n
assert_eq!(0usize.overflowing_neg(), (0, false));\nassert_eq!(2usize.overflowing_neg(), (-2i32 as usize, true));
\n
1.7.0 (const: 1.32.0) · source

pub const fn overflowing_shl(self, rhs: u32) -> (usize, bool)

Shifts self left by rhs bits.

\n

Returns a tuple of the shifted version of self along with a boolean\nindicating whether the shift value was larger than or equal to the\nnumber of bits. If the shift value is too large, then value is\nmasked (N-1) where N is the number of bits, and this value is then\nused to perform the shift.

\n
§Examples
\n

Basic usage

\n\n
assert_eq!(0x1usize.overflowing_shl(4), (0x10, false));\nassert_eq!(0x1usize.overflowing_shl(132), (0x10, true));\nassert_eq!(0x10usize.overflowing_shl(63), (0, false));
\n
1.7.0 (const: 1.32.0) · source

pub const fn overflowing_shr(self, rhs: u32) -> (usize, bool)

Shifts self right by rhs bits.

\n

Returns a tuple of the shifted version of self along with a boolean\nindicating whether the shift value was larger than or equal to the\nnumber of bits. If the shift value is too large, then value is\nmasked (N-1) where N is the number of bits, and this value is then\nused to perform the shift.

\n
§Examples
\n

Basic usage

\n\n
assert_eq!(0x10usize.overflowing_shr(4), (0x1, false));\nassert_eq!(0x10usize.overflowing_shr(132), (0x1, true));
\n
1.34.0 (const: 1.50.0) · source

pub const fn overflowing_pow(self, exp: u32) -> (usize, bool)

Raises self to the power of exp, using exponentiation by squaring.

\n

Returns a tuple of the exponentiation along with a bool indicating\nwhether an overflow happened.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(3usize.overflowing_pow(5), (243, false));\nassert_eq!(3u8.overflowing_pow(6), (217, true));
\n
1.0.0 (const: 1.50.0) · source

pub const fn pow(self, exp: u32) -> usize

Raises self to the power of exp, using exponentiation by squaring.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(2usize.pow(5), 32);
\n
source

pub const fn isqrt(self) -> usize

🔬This is a nightly-only experimental API. (isqrt)

Returns the square root of the number, rounded down.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(isqrt)]\nassert_eq!(10usize.isqrt(), 3);
\n
1.38.0 (const: 1.52.0) · source

pub const fn div_euclid(self, rhs: usize) -> usize

Performs Euclidean division.

\n

Since, for the positive integers, all common\ndefinitions of division are equal, this\nis exactly equal to self / rhs.

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(7usize.div_euclid(4), 1); // or any other integer type
\n
1.38.0 (const: 1.52.0) · source

pub const fn rem_euclid(self, rhs: usize) -> usize

Calculates the least remainder of self (mod rhs).

\n

Since, for the positive integers, all common\ndefinitions of division are equal, this\nis exactly equal to self % rhs.

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(7usize.rem_euclid(4), 3); // or any other integer type
\n
source

pub const fn div_floor(self, rhs: usize) -> usize

🔬This is a nightly-only experimental API. (int_roundings)

Calculates the quotient of self and rhs, rounding the result towards negative infinity.

\n

This is the same as performing self / rhs for all unsigned integers.

\n
§Panics
\n

This function will panic if rhs is zero.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(int_roundings)]\nassert_eq!(7_usize.div_floor(4), 1);
\n
1.73.0 (const: 1.73.0) · source

pub const fn div_ceil(self, rhs: usize) -> usize

Calculates the quotient of self and rhs, rounding the result towards positive infinity.

\n
§Panics
\n

This function will panic if rhs is zero.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(7_usize.div_ceil(4), 2);
\n
1.73.0 (const: 1.73.0) · source

pub const fn next_multiple_of(self, rhs: usize) -> usize

Calculates the smallest value greater than or equal to self that\nis a multiple of rhs.

\n
§Panics
\n

This function will panic if rhs is zero.

\n
§Overflow behavior
\n

On overflow, this function will panic if overflow checks are enabled (default in debug\nmode) and wrap if overflow checks are disabled (default in release mode).

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(16_usize.next_multiple_of(8), 16);\nassert_eq!(23_usize.next_multiple_of(8), 24);
\n
1.73.0 (const: 1.73.0) · source

pub const fn checked_next_multiple_of(self, rhs: usize) -> Option<usize>

Calculates the smallest value greater than or equal to self that\nis a multiple of rhs. Returns None if rhs is zero or the\noperation would result in overflow.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(16_usize.checked_next_multiple_of(8), Some(16));\nassert_eq!(23_usize.checked_next_multiple_of(8), Some(24));\nassert_eq!(1_usize.checked_next_multiple_of(0), None);\nassert_eq!(usize::MAX.checked_next_multiple_of(2), None);
\n
source

pub const fn is_multiple_of(self, rhs: usize) -> bool

🔬This is a nightly-only experimental API. (unsigned_is_multiple_of)

Returns true if self is an integer multiple of rhs, and false otherwise.

\n

This function is equivalent to self % rhs == 0, except that it will not panic\nfor rhs == 0. Instead, 0.is_multiple_of(0) == true, and for any non-zero n,\nn.is_multiple_of(0) == false.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(unsigned_is_multiple_of)]\nassert!(6_usize.is_multiple_of(2));\nassert!(!5_usize.is_multiple_of(2));\n\nassert!(0_usize.is_multiple_of(0));\nassert!(!6_usize.is_multiple_of(0));
\n
1.0.0 (const: 1.32.0) · source

pub const fn is_power_of_two(self) -> bool

Returns true if and only if self == 2^k for some k.

\n
§Examples
\n

Basic usage:

\n\n
assert!(16usize.is_power_of_two());\nassert!(!10usize.is_power_of_two());
\n
1.0.0 (const: 1.50.0) · source

pub const fn next_power_of_two(self) -> usize

Returns the smallest power of two greater than or equal to self.

\n

When return value overflows (i.e., self > (1 << (N-1)) for type\nuN), it panics in debug mode and the return value is wrapped to 0 in\nrelease mode (the only situation in which this method can return 0).

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(2usize.next_power_of_two(), 2);\nassert_eq!(3usize.next_power_of_two(), 4);\nassert_eq!(0usize.next_power_of_two(), 1);
\n
1.0.0 (const: 1.50.0) · source

pub const fn checked_next_power_of_two(self) -> Option<usize>

Returns the smallest power of two greater than or equal to self. If\nthe next power of two is greater than the type’s maximum value,\nNone is returned, otherwise the power of two is wrapped in Some.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(2usize.checked_next_power_of_two(), Some(2));\nassert_eq!(3usize.checked_next_power_of_two(), Some(4));\nassert_eq!(usize::MAX.checked_next_power_of_two(), None);
\n
source

pub const fn wrapping_next_power_of_two(self) -> usize

🔬This is a nightly-only experimental API. (wrapping_next_power_of_two)

Returns the smallest power of two greater than or equal to n. If\nthe next power of two is greater than the type’s maximum value,\nthe return value is wrapped to 0.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(wrapping_next_power_of_two)]\n\nassert_eq!(2usize.wrapping_next_power_of_two(), 2);\nassert_eq!(3usize.wrapping_next_power_of_two(), 4);\nassert_eq!(usize::MAX.wrapping_next_power_of_two(), 0);
\n
1.32.0 (const: 1.44.0) · source

pub const fn to_be_bytes(self) -> [u8; 8]

Returns the memory representation of this integer as a byte array in\nbig-endian (network) byte order.

\n

Note: This function returns an array of length 2, 4 or 8 bytes\ndepending on the target pointer size.

\n
§Examples
\n
let bytes = 0x1234567890123456usize.to_be_bytes();\nassert_eq!(bytes, [0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]);
\n
1.32.0 (const: 1.44.0) · source

pub const fn to_le_bytes(self) -> [u8; 8]

Returns the memory representation of this integer as a byte array in\nlittle-endian byte order.

\n

Note: This function returns an array of length 2, 4 or 8 bytes\ndepending on the target pointer size.

\n
§Examples
\n
let bytes = 0x1234567890123456usize.to_le_bytes();\nassert_eq!(bytes, [0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]);
\n
1.32.0 (const: 1.44.0) · source

pub const fn to_ne_bytes(self) -> [u8; 8]

Returns the memory representation of this integer as a byte array in\nnative byte order.

\n

As the target platform’s native endianness is used, portable code\nshould use to_be_bytes or to_le_bytes, as appropriate,\ninstead.

\n

Note: This function returns an array of length 2, 4 or 8 bytes\ndepending on the target pointer size.

\n
§Examples
\n
let bytes = 0x1234567890123456usize.to_ne_bytes();\nassert_eq!(\n    bytes,\n    if cfg!(target_endian = \"big\") {\n        [0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]\n    } else {\n        [0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]\n    }\n);
\n
1.32.0 (const: 1.44.0) · source

pub const fn from_be_bytes(bytes: [u8; 8]) -> usize

Creates a native endian integer value from its representation\nas a byte array in big endian.

\n

Note: This function takes an array of length 2, 4 or 8 bytes\ndepending on the target pointer size.

\n
§Examples
\n
let value = usize::from_be_bytes([0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]);\nassert_eq!(value, 0x1234567890123456);
\n

When starting from a slice rather than an array, fallible conversion APIs can be used:

\n\n
fn read_be_usize(input: &mut &[u8]) -> usize {\n    let (int_bytes, rest) = input.split_at(std::mem::size_of::<usize>());\n    *input = rest;\n    usize::from_be_bytes(int_bytes.try_into().unwrap())\n}
\n
1.32.0 (const: 1.44.0) · source

pub const fn from_le_bytes(bytes: [u8; 8]) -> usize

Creates a native endian integer value from its representation\nas a byte array in little endian.

\n

Note: This function takes an array of length 2, 4 or 8 bytes\ndepending on the target pointer size.

\n
§Examples
\n
let value = usize::from_le_bytes([0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]);\nassert_eq!(value, 0x1234567890123456);
\n

When starting from a slice rather than an array, fallible conversion APIs can be used:

\n\n
fn read_le_usize(input: &mut &[u8]) -> usize {\n    let (int_bytes, rest) = input.split_at(std::mem::size_of::<usize>());\n    *input = rest;\n    usize::from_le_bytes(int_bytes.try_into().unwrap())\n}
\n
1.32.0 (const: 1.44.0) · source

pub const fn from_ne_bytes(bytes: [u8; 8]) -> usize

Creates a native endian integer value from its memory representation\nas a byte array in native endianness.

\n

As the target platform’s native endianness is used, portable code\nlikely wants to use from_be_bytes or from_le_bytes, as\nappropriate instead.

\n

Note: This function takes an array of length 2, 4 or 8 bytes\ndepending on the target pointer size.

\n
§Examples
\n
let value = usize::from_ne_bytes(if cfg!(target_endian = \"big\") {\n    [0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]\n} else {\n    [0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]\n});\nassert_eq!(value, 0x1234567890123456);
\n

When starting from a slice rather than an array, fallible conversion APIs can be used:

\n\n
fn read_ne_usize(input: &mut &[u8]) -> usize {\n    let (int_bytes, rest) = input.split_at(std::mem::size_of::<usize>());\n    *input = rest;\n    usize::from_ne_bytes(int_bytes.try_into().unwrap())\n}
\n
1.0.0 (const: 1.32.0) · source

pub const fn min_value() -> usize

👎Deprecating in a future version: replaced by the MIN associated constant on this type

New code should prefer to use\nusize::MIN instead.

\n

Returns the smallest value that can be represented by this integer type.

\n
1.0.0 (const: 1.32.0) · source

pub const fn max_value() -> usize

👎Deprecating in a future version: replaced by the MAX associated constant on this type

New code should prefer to use\nusize::MAX instead.

\n

Returns the largest value that can be represented by this integer type.

\n
source

pub const fn widening_mul(self, rhs: usize) -> (usize, usize)

🔬This is a nightly-only experimental API. (bigint_helper_methods)

Calculates the complete product self * rhs without the possibility to overflow.

\n

This returns the low-order (wrapping) bits and the high-order (overflow) bits\nof the result as two separate values, in that order.

\n

If you also need to add a carry to the wide result, then you want\nSelf::carrying_mul instead.

\n
§Examples
\n

Basic usage:

\n

Please note that this example is shared between integer types.\nWhich explains why u32 is used here.

\n\n
#![feature(bigint_helper_methods)]\nassert_eq!(5u32.widening_mul(2), (10, 0));\nassert_eq!(1_000_000_000u32.widening_mul(10), (1410065408, 2));
\n
source

pub const fn carrying_mul(self, rhs: usize, carry: usize) -> (usize, usize)

🔬This is a nightly-only experimental API. (bigint_helper_methods)

Calculates the “full multiplication” self * rhs + carry\nwithout the possibility to overflow.

\n

This returns the low-order (wrapping) bits and the high-order (overflow) bits\nof the result as two separate values, in that order.

\n

Performs “long multiplication” which takes in an extra amount to add, and may return an\nadditional amount of overflow. This allows for chaining together multiple\nmultiplications to create “big integers” which represent larger values.

\n

If you don’t need the carry, then you can use Self::widening_mul instead.

\n
§Examples
\n

Basic usage:

\n

Please note that this example is shared between integer types.\nWhich explains why u32 is used here.

\n\n
#![feature(bigint_helper_methods)]\nassert_eq!(5u32.carrying_mul(2, 0), (10, 0));\nassert_eq!(5u32.carrying_mul(2, 10), (20, 0));\nassert_eq!(1_000_000_000u32.carrying_mul(10, 0), (1410065408, 2));\nassert_eq!(1_000_000_000u32.carrying_mul(10, 10), (1410065418, 2));\nassert_eq!(usize::MAX.carrying_mul(usize::MAX, usize::MAX), (0, usize::MAX));
\n

This is the core operation needed for scalar multiplication when\nimplementing it for wider-than-native types.

\n\n
#![feature(bigint_helper_methods)]\nfn scalar_mul_eq(little_endian_digits: &mut Vec<u16>, multiplicand: u16) {\n    let mut carry = 0;\n    for d in little_endian_digits.iter_mut() {\n        (*d, carry) = d.carrying_mul(multiplicand, carry);\n    }\n    if carry != 0 {\n        little_endian_digits.push(carry);\n    }\n}\n\nlet mut v = vec![10, 20];\nscalar_mul_eq(&mut v, 3);\nassert_eq!(v, [30, 60]);\n\nassert_eq!(0x87654321_u64 * 0xFEED, 0x86D3D159E38D);\nlet mut v = vec![0x4321, 0x8765];\nscalar_mul_eq(&mut v, 0xFEED);\nassert_eq!(v, [0xE38D, 0xD159, 0x86D3]);
\n

If carry is zero, this is similar to overflowing_mul,\nexcept that it gives the value of the overflow instead of just whether one happened:

\n\n
#![feature(bigint_helper_methods)]\nlet r = u8::carrying_mul(7, 13, 0);\nassert_eq!((r.0, r.1 != 0), u8::overflowing_mul(7, 13));\nlet r = u8::carrying_mul(13, 42, 0);\nassert_eq!((r.0, r.1 != 0), u8::overflowing_mul(13, 42));
\n

The value of the first field in the returned tuple matches what you’d get\nby combining the wrapping_mul and\nwrapping_add methods:

\n\n
#![feature(bigint_helper_methods)]\nassert_eq!(\n    789_u16.carrying_mul(456, 123).0,\n    789_u16.wrapping_mul(456).wrapping_add(123),\n);
\n
source

pub const fn midpoint(self, rhs: usize) -> usize

🔬This is a nightly-only experimental API. (num_midpoint)

Calculates the middle point of self and rhs.

\n

midpoint(a, b) is (a + b) >> 1 as if it were performed in a\nsufficiently-large signed integral type. This implies that the result is\nalways rounded towards negative infinity and that no overflow will ever occur.

\n
§Examples
\n
#![feature(num_midpoint)]\nassert_eq!(0usize.midpoint(4), 2);\nassert_eq!(1usize.midpoint(4), 2);
\n
",0,"gosling::context::HandshakeHandle"],["
source§

impl usize

1.0.0 (const: 1.82.0) · source

pub const fn from_str_radix(\n src: &str,\n radix: u32,\n) -> Result<usize, ParseIntError>

Converts a string slice in a given base to an integer.

\n

The string is expected to be an optional + sign\nfollowed by digits.\nLeading and trailing whitespace represent an error.\nDigits are a subset of these characters, depending on radix:

\n
    \n
  • 0-9
  • \n
  • a-z
  • \n
  • A-Z
  • \n
\n
§Panics
\n

This function panics if radix is not in the range from 2 to 36.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(usize::from_str_radix(\"A\", 16), Ok(10));
\n
",0,"gosling::context::HandshakeHandle"],["
§

impl AtLeast16 for usize

","AtLeast16","gosling::context::HandshakeHandle"],["
§

impl AtLeast32 for usize

","AtLeast32","gosling::context::HandshakeHandle"],["
§

impl AtLeast64 for usize

","AtLeast64","gosling::context::HandshakeHandle"],["
§

impl AtLeast8 for usize

","AtLeast8","gosling::context::HandshakeHandle"],["
§

impl AtMost128 for usize

","AtMost128","gosling::context::HandshakeHandle"],["
§

impl AtMost64 for usize

","AtMost64","gosling::context::HandshakeHandle"],["
§

impl BitOps for usize

","BitOps","gosling::context::HandshakeHandle"],["
source§

impl ConstParamTy_ for usize

","ConstParamTy_","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Copy for usize

","Copy","gosling::context::HandshakeHandle"],["
§

impl DefaultIsZeroes for usize

","DefaultIsZeroes","gosling::context::HandshakeHandle"],["
1.0.0 · source§

impl Eq for usize

","Eq","gosling::context::HandshakeHandle"],["
§

impl ExtendTarget<usize> for usize

","ExtendTarget","gosling::context::HandshakeHandle"],["
source§

impl Index for usize

","Index","gosling::context::HandshakeHandle"],["
§

impl Index for usize

","Index","gosling::context::HandshakeHandle"],["
source§

impl Integer for usize

","Integer","gosling::context::HandshakeHandle"],["
§

impl Is64 for usize

","Is64","gosling::context::HandshakeHandle"],["
§

impl NotAutoValue for usize

","NotAutoValue","gosling::context::HandshakeHandle"],["
§

impl NumericOps for usize

","NumericOps","gosling::context::HandshakeHandle"],["
source§

impl SimdCast for usize

","SimdCast","gosling::context::HandshakeHandle"],["
source§

impl StructuralPartialEq for usize

","StructuralPartialEq","gosling::context::HandshakeHandle"],["
§

impl TruncateTarget<u16> for usize

","TruncateTarget","gosling::context::HandshakeHandle"],["
§

impl TruncateTarget<u8> for usize

","TruncateTarget","gosling::context::HandshakeHandle"],["
§

impl TruncateTarget<usize> for usize

","TruncateTarget","gosling::context::HandshakeHandle"],["
source§

impl TrustedStep for usize

","TrustedStep","gosling::context::HandshakeHandle"],["
§

impl Uint for usize

","Uint","gosling::context::HandshakeHandle"],["
source§

impl Unsigned for usize

","Unsigned","gosling::context::HandshakeHandle"],["
source§

impl UnsizedConstParamTy for usize

","UnsizedConstParamTy","gosling::context::HandshakeHandle"],["
source§

impl Weight for usize

","Weight","gosling::context::HandshakeHandle"],["
source§

impl ZeroablePrimitive for usize

","ZeroablePrimitive","gosling::context::HandshakeHandle"]]],["tor_interface",[["
§

impl<T> Accumulate<T> for usize

§

fn initial(_capacity: Option<usize>) -> usize

Create a new Extend of the correct type
§

fn accumulate(&mut self, _acc: T)

Accumulate the input into an accumulator
","Accumulate","tor_interface::tor_provider::CircuitToken"],["
source§

impl<'a> Add<&'a BigInt> for usize

source§

type Output = BigInt

The resulting type after applying the + operator.
source§

fn add(self, other: &BigInt) -> BigInt

Performs the + operation. Read more
","Add<&'a BigInt>","tor_interface::tor_provider::CircuitToken"],["
source§

impl<'a> Add<&'a BigUint> for usize

source§

type Output = BigUint

The resulting type after applying the + operator.
source§

fn add(self, other: &BigUint) -> BigUint

Performs the + operation. Read more
","Add<&'a BigUint>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Add<&usize> for usize

source§

type Output = <usize as Add>::Output

The resulting type after applying the + operator.
source§

fn add(self, other: &usize) -> <usize as Add>::Output

Performs the + operation. Read more
","Add<&usize>","tor_interface::tor_provider::CircuitToken"],["
source§

impl Add<BigInt> for usize

source§

type Output = BigInt

The resulting type after applying the + operator.
source§

fn add(self, other: BigInt) -> BigInt

Performs the + operation. Read more
","Add","tor_interface::tor_provider::CircuitToken"],["
source§

impl Add<BigUint> for usize

source§

type Output = BigUint

The resulting type after applying the + operator.
source§

fn add(self, other: BigUint) -> BigUint

Performs the + operation. Read more
","Add","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Add for usize

source§

type Output = usize

The resulting type after applying the + operator.
source§

fn add(self, other: usize) -> usize

Performs the + operation. Read more
","Add","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl AddAssign<&usize> for usize

source§

fn add_assign(&mut self, other: &usize)

Performs the += operation. Read more
","AddAssign<&usize>","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl AddAssign for usize

source§

fn add_assign(&mut self, other: usize)

Performs the += operation. Read more
","AddAssign","tor_interface::tor_provider::CircuitToken"],["
§

impl AsAny for usize

§

fn as_any(&self) -> &(dyn Any + 'static)

Returns thick pointer of &dyn Any type, that can be later downcasted\nback to a reference of the original type.
","AsAny","tor_interface::tor_provider::CircuitToken"],["
§

impl AsBytes for usize

§

fn as_bytes(&self) -> &[u8]

Gets the bytes of this value. Read more
§

fn as_bytes_mut(&mut self) -> &mut [u8]
where\n Self: FromBytes,

Gets the bytes of this value mutably. Read more
§

fn write_to(&self, bytes: &mut [u8]) -> Option<()>

Writes a copy of self to bytes. Read more
§

fn write_to_prefix(&self, bytes: &mut [u8]) -> Option<()>

Writes a copy of self to the prefix of bytes. Read more
§

fn write_to_suffix(&self, bytes: &mut [u8]) -> Option<()>

Writes a copy of self to the suffix of bytes. Read more
","AsBytes","tor_interface::tor_provider::CircuitToken"],["
source§

impl AsPrimitive<f32> for usize

source§

fn as_(self) -> f32

Convert a value to another, using the as operator.
","AsPrimitive","tor_interface::tor_provider::CircuitToken"],["
source§

impl AsPrimitive<f64> for usize

source§

fn as_(self) -> f64

Convert a value to another, using the as operator.
","AsPrimitive","tor_interface::tor_provider::CircuitToken"],["
source§

impl AsPrimitive<i128> for usize

source§

fn as_(self) -> i128

Convert a value to another, using the as operator.
","AsPrimitive","tor_interface::tor_provider::CircuitToken"],["
source§

impl AsPrimitive<i16> for usize

source§

fn as_(self) -> i16

Convert a value to another, using the as operator.
","AsPrimitive","tor_interface::tor_provider::CircuitToken"],["
source§

impl AsPrimitive<i32> for usize

source§

fn as_(self) -> i32

Convert a value to another, using the as operator.
","AsPrimitive","tor_interface::tor_provider::CircuitToken"],["
source§

impl AsPrimitive<i64> for usize

source§

fn as_(self) -> i64

Convert a value to another, using the as operator.
","AsPrimitive","tor_interface::tor_provider::CircuitToken"],["
source§

impl AsPrimitive<i8> for usize

source§

fn as_(self) -> i8

Convert a value to another, using the as operator.
","AsPrimitive","tor_interface::tor_provider::CircuitToken"],["
source§

impl AsPrimitive<isize> for usize

source§

fn as_(self) -> isize

Convert a value to another, using the as operator.
","AsPrimitive","tor_interface::tor_provider::CircuitToken"],["
source§

impl AsPrimitive<u128> for usize

source§

fn as_(self) -> u128

Convert a value to another, using the as operator.
","AsPrimitive","tor_interface::tor_provider::CircuitToken"],["
source§

impl AsPrimitive<u16> for usize

source§

fn as_(self) -> u16

Convert a value to another, using the as operator.
","AsPrimitive","tor_interface::tor_provider::CircuitToken"],["
source§

impl AsPrimitive<u32> for usize

source§

fn as_(self) -> u32

Convert a value to another, using the as operator.
","AsPrimitive","tor_interface::tor_provider::CircuitToken"],["
source§

impl AsPrimitive<u64> for usize

source§

fn as_(self) -> u64

Convert a value to another, using the as operator.
","AsPrimitive","tor_interface::tor_provider::CircuitToken"],["
source§

impl AsPrimitive<u8> for usize

source§

fn as_(self) -> u8

Convert a value to another, using the as operator.
","AsPrimitive","tor_interface::tor_provider::CircuitToken"],["
source§

impl AsPrimitive<usize> for usize

source§

fn as_(self) -> usize

Convert a value to another, using the as operator.
","AsPrimitive","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Binary for usize

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","Binary","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl BitAnd<&usize> for usize

source§

type Output = <usize as BitAnd>::Output

The resulting type after applying the & operator.
source§

fn bitand(self, other: &usize) -> <usize as BitAnd>::Output

Performs the & operation. Read more
","BitAnd<&usize>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl BitAnd for usize

source§

type Output = usize

The resulting type after applying the & operator.
source§

fn bitand(self, rhs: usize) -> usize

Performs the & operation. Read more
","BitAnd","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl BitAndAssign<&usize> for usize

source§

fn bitand_assign(&mut self, other: &usize)

Performs the &= operation. Read more
","BitAndAssign<&usize>","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl BitAndAssign for usize

source§

fn bitand_assign(&mut self, other: usize)

Performs the &= operation. Read more
","BitAndAssign","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl BitOr<&usize> for usize

source§

type Output = <usize as BitOr>::Output

The resulting type after applying the | operator.
source§

fn bitor(self, other: &usize) -> <usize as BitOr>::Output

Performs the | operation. Read more
","BitOr<&usize>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl BitOr for usize

source§

type Output = usize

The resulting type after applying the | operator.
source§

fn bitor(self, rhs: usize) -> usize

Performs the | operation. Read more
","BitOr","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl BitOrAssign<&usize> for usize

source§

fn bitor_assign(&mut self, other: &usize)

Performs the |= operation. Read more
","BitOrAssign<&usize>","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl BitOrAssign for usize

source§

fn bitor_assign(&mut self, other: usize)

Performs the |= operation. Read more
","BitOrAssign","tor_interface::tor_provider::CircuitToken"],["
§

impl BitRegister for usize

§

const ALL: usize = 18_446_744_073_709_551_615usize

The literal !0.
§

const INDX: u8 = _

The number of bits required to store an index in the range 0 .. BITS.
§

const MASK: u8 = _

A mask over all bits that can be used as an index within the element.\nThis is the value with the least significant INDX-many bits set high.
","BitRegister","tor_interface::tor_provider::CircuitToken"],["
§

impl<'a, T, O> BitSliceIndex<'a, T, O> for usize
where\n T: BitStore,\n O: BitOrder,

§

type Immut = BitRef<'a, Const, T, O>

The output type of immutable access.
§

type Mut = BitRef<'a, Mut, T, O>

The output type of mutable access.
§

fn get(\n self,\n bits: &'a BitSlice<T, O>,\n) -> Option<<usize as BitSliceIndex<'a, T, O>>::Immut>

Immutably indexes into a bit-slice, returning None if self is out of\nbounds. Read more
§

fn get_mut(\n self,\n bits: &'a mut BitSlice<T, O>,\n) -> Option<<usize as BitSliceIndex<'a, T, O>>::Mut>

Mutably indexes into a bit-slice, returning None if self is out of\nbounds. Read more
§

unsafe fn get_unchecked(\n self,\n bits: &'a BitSlice<T, O>,\n) -> <usize as BitSliceIndex<'a, T, O>>::Immut

Immutably indexes into a bit-slice without doing any bounds checking. Read more
§

unsafe fn get_unchecked_mut(\n self,\n bits: &'a mut BitSlice<T, O>,\n) -> <usize as BitSliceIndex<'a, T, O>>::Mut

Mutably indexes into a bit-slice without doing any bounds checking. Read more
§

fn index(\n self,\n bits: &'a BitSlice<T, O>,\n) -> <usize as BitSliceIndex<'a, T, O>>::Immut

Immutably indexes into a bit-slice, panicking if self is out of\nbounds. Read more
§

fn index_mut(\n self,\n bits: &'a mut BitSlice<T, O>,\n) -> <usize as BitSliceIndex<'a, T, O>>::Mut

Mutably indexes into a bit-slice, panicking if self is out of bounds. Read more
","BitSliceIndex<'a, T, O>","tor_interface::tor_provider::CircuitToken"],["
§

impl BitStore for usize

§

type Access = Cell<usize>

The unsigned integers will only be BitStore type parameters\nfor handles to unaliased memory, following the normal Rust\nreference rules.

\n
§

type Mem = usize

The element type used in the memory region underlying a BitSlice. It\nis always one of the unsigned integer fundamentals.
§

type Alias = BitSafeUsize

A sibling BitStore implementor that is known to be alias-safe. It is\nused when a BitSlice introduces multiple handles that view the same\nmemory location, and at least one of them has write capabilities to it.\nIt must have the same underlying memory type, and can only change access\npatterns or public-facing usage.
§

type Unalias = usize

The inverse of ::Alias. It is used when a BitSlice removes the\nconditions that required a T -> T::Alias transition.
§

const ZERO: usize = 0usize

The zero constant.
§

fn new(value: <usize as BitStore>::Mem) -> usize

Wraps a raw memory value as a BitStore type.
§

fn load_value(&self) -> <usize as BitStore>::Mem

Loads a value out of the memory system according to the ::Access\nrules. This may be called when the value is aliased by a write-capable\nreference.
§

fn store_value(&mut self, value: <usize as BitStore>::Mem)

Stores a value into the memory system. This is only called when there\nare no other handles to the value, and it may bypass ::Access\nconstraints.
§

const ALIGNED_TO_SIZE: [(); 1] = _

All implementors are required to have their alignment match their size. Read more
§

const ALIAS_WIDTH: [(); 1] = _

All implementors are required to have Self and Self::Alias be equal\nin representation. This is true by fiat for all types except the\nunsigned integers. Read more
§

fn get_bit<O>(&self, index: BitIdx<Self::Mem>) -> bool
where\n O: BitOrder,

Reads a single bit out of the memory system according to the ::Access\nrules. This is lifted from BitAccess so that it can be used\nelsewhere without additional casts. Read more
","BitStore","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl BitXor<&usize> for usize

source§

type Output = <usize as BitXor>::Output

The resulting type after applying the ^ operator.
source§

fn bitxor(self, other: &usize) -> <usize as BitXor>::Output

Performs the ^ operation. Read more
","BitXor<&usize>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl BitXor for usize

source§

type Output = usize

The resulting type after applying the ^ operator.
source§

fn bitxor(self, other: usize) -> usize

Performs the ^ operation. Read more
","BitXor","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl BitXorAssign<&usize> for usize

source§

fn bitxor_assign(&mut self, other: &usize)

Performs the ^= operation. Read more
","BitXorAssign<&usize>","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl BitXorAssign for usize

source§

fn bitxor_assign(&mut self, other: usize)

Performs the ^= operation. Read more
","BitXorAssign","tor_interface::tor_provider::CircuitToken"],["
§

impl Bits for usize

§

const EMPTY: usize = 0usize

A value with all bits unset.
§

const ALL: usize = 18_446_744_073_709_551_615usize

A value with all bits set.
","Bits","tor_interface::tor_provider::CircuitToken"],["
source§

impl Bounded for usize

source§

fn min_value() -> usize

Returns the smallest finite number this type can represent
source§

fn max_value() -> usize

Returns the largest finite number this type can represent
","Bounded","tor_interface::tor_provider::CircuitToken"],["
§

impl CastSigned for usize

§

type Signed = isize

The signed integer type with the same size as Self.
§

fn cast_signed(self) -> <usize as CastSigned>::Signed

Cast an integer to the signed integer of the same size.
","CastSigned","tor_interface::tor_provider::CircuitToken"],["
§

impl CastUnsigned for usize

§

type Unsigned = usize

The unsigned integer type with the same size as Self.
§

fn cast_unsigned(self) -> <usize as CastUnsigned>::Unsigned

Cast an integer to the unsigned integer of the same size.
","CastUnsigned","tor_interface::tor_provider::CircuitToken"],["
source§

impl CheckedAdd for usize

source§

fn checked_add(&self, v: &usize) -> Option<usize>

Adds two numbers, checking for overflow. If overflow happens, None is\nreturned.
","CheckedAdd","tor_interface::tor_provider::CircuitToken"],["
source§

impl CheckedDiv for usize

source§

fn checked_div(&self, v: &usize) -> Option<usize>

Divides two numbers, checking for underflow, overflow and division by\nzero. If any of that happens, None is returned.
","CheckedDiv","tor_interface::tor_provider::CircuitToken"],["
source§

impl CheckedEuclid for usize

source§

fn checked_div_euclid(&self, v: &usize) -> Option<usize>

Performs euclid division that returns None instead of panicking on division by zero\nand instead of wrapping around on underflow and overflow.
source§

fn checked_rem_euclid(&self, v: &usize) -> Option<usize>

Finds the euclid remainder of dividing two numbers, checking for underflow, overflow and\ndivision by zero. If any of that happens, None is returned.
source§

fn checked_div_rem_euclid(&self, v: &Self) -> Option<(Self, Self)>

Returns both the quotient and remainder from checked Euclidean division. Read more
","CheckedEuclid","tor_interface::tor_provider::CircuitToken"],["
source§

impl CheckedMul for usize

source§

fn checked_mul(&self, v: &usize) -> Option<usize>

Multiplies two numbers, checking for underflow or overflow. If underflow\nor overflow happens, None is returned.
","CheckedMul","tor_interface::tor_provider::CircuitToken"],["
source§

impl CheckedNeg for usize

source§

fn checked_neg(&self) -> Option<usize>

Negates a number, returning None for results that can’t be represented, like signed MIN\nvalues that can’t be positive, or non-zero unsigned values that can’t be negative. Read more
","CheckedNeg","tor_interface::tor_provider::CircuitToken"],["
source§

impl CheckedRem for usize

source§

fn checked_rem(&self, v: &usize) -> Option<usize>

Finds the remainder of dividing two numbers, checking for underflow, overflow and division\nby zero. If any of that happens, None is returned. Read more
","CheckedRem","tor_interface::tor_provider::CircuitToken"],["
source§

impl CheckedShl for usize

source§

fn checked_shl(&self, rhs: u32) -> Option<usize>

Checked shift left. Computes self << rhs, returning None\nif rhs is larger than or equal to the number of bits in self. Read more
","CheckedShl","tor_interface::tor_provider::CircuitToken"],["
source§

impl CheckedShr for usize

source§

fn checked_shr(&self, rhs: u32) -> Option<usize>

Checked shift right. Computes self >> rhs, returning None\nif rhs is larger than or equal to the number of bits in self. Read more
","CheckedShr","tor_interface::tor_provider::CircuitToken"],["
source§

impl CheckedSub for usize

source§

fn checked_sub(&self, v: &usize) -> Option<usize>

Subtracts two numbers, checking for underflow. If underflow happens,\nNone is returned.
","CheckedSub","tor_interface::tor_provider::CircuitToken"],["
§

impl<T> CheckedSum<usize> for T
where\n T: IntoIterator<Item = usize>,

§

fn checked_sum(self) -> Result<usize, Error>

Iterate over the values of this type, computing a checked sum. Read more
","CheckedSum","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Clone for usize

source§

fn clone(&self) -> usize

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
","Clone","tor_interface::tor_provider::CircuitToken"],["
source§

impl ConstOne for usize

source§

const ONE: usize = 1usize

The multiplicative identity element of Self, 1.
","ConstOne","tor_interface::tor_provider::CircuitToken"],["
source§

impl ConstZero for usize

source§

const ZERO: usize = 0usize

The additive identity element of Self, 0.
","ConstZero","tor_interface::tor_provider::CircuitToken"],["
source§

impl ConstantTimeEq for usize

source§

fn ct_eq(&self, other: &usize) -> Choice

Determine if two items are equal. Read more
source§

fn ct_ne(&self, other: &Self) -> Choice

Determine if two items are NOT equal. Read more
","ConstantTimeEq","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Debug for usize

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","Debug","tor_interface::tor_provider::CircuitToken"],["
§

impl Decode for usize

Decode a usize.

\n

Uses [Decode] impl on u32 and then converts to a usize, handling\npotential overflow if usize is smaller than u32.

\n

Enforces a library-internal limit of 1048575, as the main use case for\nusize is length prefixes.

\n
§

type Error = Error

Type returned in the event of a decoding error.
§

fn decode(reader: &mut impl Reader) -> Result<usize, Error>

Attempt to decode a value of this type using the provided [Reader].
","Decode","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Default for usize

source§

fn default() -> usize

Returns the default value of 0

\n
","Default","tor_interface::tor_provider::CircuitToken"],["
source§

impl<'de> Deserialize<'de> for usize

source§

fn deserialize<D>(\n deserializer: D,\n) -> Result<usize, <D as Deserializer<'de>>::Error>
where\n D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
","Deserialize<'de>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Display for usize

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","Display","tor_interface::tor_provider::CircuitToken"],["
source§

impl<'a> Div<&'a BigInt> for usize

source§

type Output = BigInt

The resulting type after applying the / operator.
source§

fn div(self, other: &BigInt) -> BigInt

Performs the / operation. Read more
","Div<&'a BigInt>","tor_interface::tor_provider::CircuitToken"],["
source§

impl<'a> Div<&'a BigUint> for usize

source§

type Output = BigUint

The resulting type after applying the / operator.
source§

fn div(self, other: &BigUint) -> BigUint

Performs the / operation. Read more
","Div<&'a BigUint>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Div<&usize> for usize

source§

type Output = <usize as Div>::Output

The resulting type after applying the / operator.
source§

fn div(self, other: &usize) -> <usize as Div>::Output

Performs the / operation. Read more
","Div<&usize>","tor_interface::tor_provider::CircuitToken"],["
source§

impl Div<BigInt> for usize

source§

type Output = BigInt

The resulting type after applying the / operator.
source§

fn div(self, other: BigInt) -> BigInt

Performs the / operation. Read more
","Div","tor_interface::tor_provider::CircuitToken"],["
source§

impl Div<BigUint> for usize

source§

type Output = BigUint

The resulting type after applying the / operator.
source§

fn div(self, other: BigUint) -> BigUint

Performs the / operation. Read more
","Div","tor_interface::tor_provider::CircuitToken"],["
1.51.0 · source§

impl Div<NonZero<usize>> for usize

source§

fn div(self, other: NonZero<usize>) -> usize

This operation rounds towards zero, truncating any fractional\npart of the exact result, and cannot panic.

\n
source§

type Output = usize

The resulting type after applying the / operator.
","Div>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Div for usize

This operation rounds towards zero, truncating any\nfractional part of the exact result.

\n

§Panics

\n

This operation will panic if other == 0.

\n
source§

type Output = usize

The resulting type after applying the / operator.
source§

fn div(self, other: usize) -> usize

Performs the / operation. Read more
","Div","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl DivAssign<&usize> for usize

source§

fn div_assign(&mut self, other: &usize)

Performs the /= operation. Read more
","DivAssign<&usize>","tor_interface::tor_provider::CircuitToken"],["
1.79.0 · source§

impl DivAssign<NonZero<usize>> for usize

source§

fn div_assign(&mut self, other: NonZero<usize>)

This operation rounds towards zero, truncating any fractional\npart of the exact result, and cannot panic.

\n
","DivAssign>","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl DivAssign for usize

source§

fn div_assign(&mut self, other: usize)

Performs the /= operation. Read more
","DivAssign","tor_interface::tor_provider::CircuitToken"],["
§

impl Encode for usize

Encode a usize as a uint32 as described in RFC4251 § 5.

\n

Uses [Encode] impl on u32 after converting from a usize, handling\npotential overflow if usize is bigger than u32.

\n
§

fn encoded_len(&self) -> Result<usize, Error>

Get the length of this type encoded in bytes, prior to Base64 encoding.
§

fn encode(&self, writer: &mut impl Writer) -> Result<(), Error>

Encode this value using the provided [Writer].
§

fn encoded_len_prefixed(&self) -> Result<usize, Error>

Return the length of this type after encoding when prepended with a\nuint32 length prefix.
§

fn encode_prefixed(&self, writer: &mut impl Writer) -> Result<(), Error>

Encode this value, first prepending a uint32 length prefix\nset to [Encode::encoded_len].
","Encode","tor_interface::tor_provider::CircuitToken"],["
source§

impl Euclid for usize

source§

fn div_euclid(&self, v: &usize) -> usize

Calculates Euclidean division, the matching method for rem_euclid. Read more
source§

fn rem_euclid(&self, v: &usize) -> usize

Calculates the least nonnegative remainder of self (mod v). Read more
source§

fn div_rem_euclid(&self, v: &Self) -> (Self, Self)

Returns both the quotient and remainder from Euclidean division. Read more
","Euclid","tor_interface::tor_provider::CircuitToken"],["
source§

impl FmtConst for usize

source§

fn fmt_const(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Print a const expression representing this value.
","FmtConst","tor_interface::tor_provider::CircuitToken"],["
source§

impl From<Alignment> for usize

source§

fn from(align: Alignment) -> usize

Converts to this type from the input type.
","From","tor_interface::tor_provider::CircuitToken"],["
§

impl From<ByteQty> for usize

§

fn from(value: ByteQty) -> usize

Converts to this type from the input type.
","From","tor_interface::tor_provider::CircuitToken"],["
§

impl From<HopNum> for usize

§

fn from(hop: HopNum) -> usize

Converts to this type from the input type.
","From","tor_interface::tor_provider::CircuitToken"],["
§

impl From<HsDirPos> for usize

§

fn from(value: HsDirPos) -> usize

Converts to this type from the input type.
","From","tor_interface::tor_provider::CircuitToken"],["
§

impl From<IntroPtIndex> for usize

§

fn from(value: IntroPtIndex) -> usize

Converts to this type from the input type.
","From","tor_interface::tor_provider::CircuitToken"],["
§

impl<const MIN: usize, const MAX: usize> From<RangedUsize<MIN, MAX>> for usize

§

fn from(value: RangedUsize<MIN, MAX>) -> usize

Converts to this type from the input type.
","From>","tor_interface::tor_provider::CircuitToken"],["
§

impl From<RouterStatusIdx> for usize

§

fn from(value: RouterStatusIdx) -> usize

Converts to this type from the input type.
","From","tor_interface::tor_provider::CircuitToken"],["
§

impl From<State> for usize

§

fn from(src: State) -> usize

Converts to this type from the input type.
","From","tor_interface::tor_provider::CircuitToken"],["
§

impl From<Token> for usize

§

fn from(val: Token) -> usize

Converts to this type from the input type.
","From","tor_interface::tor_provider::CircuitToken"],["
§

impl<O> From<U16<O>> for usize
where\n O: ByteOrder,

§

fn from(x: U16<O>) -> usize

Converts to this type from the input type.
","From>","tor_interface::tor_provider::CircuitToken"],["
1.28.0 · source§

impl From<bool> for usize

source§

fn from(small: bool) -> usize

Converts a bool to usize losslessly.\nThe resulting value is 0 for false and 1 for true values.

\n
§Examples
\n
assert_eq!(usize::from(true), 1);\nassert_eq!(usize::from(false), 0);
\n
","From","tor_interface::tor_provider::CircuitToken"],["
1.26.0 · source§

impl From<u16> for usize

source§

fn from(small: u16) -> usize

Converts u16 to usize losslessly.

\n
","From","tor_interface::tor_provider::CircuitToken"],["
§

impl From<u24> for usize

§

fn from(val: u24) -> usize

Converts to this type from the input type.
","From","tor_interface::tor_provider::CircuitToken"],["
§

impl From<u40> for usize

§

fn from(val: u40) -> usize

Converts to this type from the input type.
","From","tor_interface::tor_provider::CircuitToken"],["
§

impl From<u48> for usize

§

fn from(val: u48) -> usize

Converts to this type from the input type.
","From","tor_interface::tor_provider::CircuitToken"],["
§

impl From<u56> for usize

§

fn from(val: u56) -> usize

Converts to this type from the input type.
","From","tor_interface::tor_provider::CircuitToken"],["
1.5.0 · source§

impl From<u8> for usize

source§

fn from(small: u8) -> usize

Converts u8 to usize losslessly.

\n
","From","tor_interface::tor_provider::CircuitToken"],["
source§

impl FromBytes for usize

source§

type Bytes = [u8; 8]

source§

fn from_be_bytes(bytes: &<usize as FromBytes>::Bytes) -> usize

Create a number from its representation as a byte array in big endian. Read more
source§

fn from_le_bytes(bytes: &<usize as FromBytes>::Bytes) -> usize

Create a number from its representation as a byte array in little endian. Read more
source§

fn from_ne_bytes(bytes: &<usize as FromBytes>::Bytes) -> usize

Create a number from its memory representation as a byte array in native endianness. Read more
","FromBytes","tor_interface::tor_provider::CircuitToken"],["
§

impl FromBytes for usize

§

fn ref_from(bytes: &[u8]) -> Option<&Self>
where\n Self: Sized,

Interprets the given bytes as a &Self without copying. Read more
§

fn ref_from_prefix(bytes: &[u8]) -> Option<&Self>
where\n Self: Sized,

Interprets the prefix of the given bytes as a &Self without copying. Read more
§

fn ref_from_suffix(bytes: &[u8]) -> Option<&Self>
where\n Self: Sized,

Interprets the suffix of the given bytes as a &Self without copying. Read more
§

fn mut_from(bytes: &mut [u8]) -> Option<&mut Self>
where\n Self: Sized + AsBytes,

Interprets the given bytes as a &mut Self without copying. Read more
§

fn mut_from_prefix(bytes: &mut [u8]) -> Option<&mut Self>
where\n Self: Sized + AsBytes,

Interprets the prefix of the given bytes as a &mut Self without\ncopying. Read more
§

fn mut_from_suffix(bytes: &mut [u8]) -> Option<&mut Self>
where\n Self: Sized + AsBytes,

Interprets the suffix of the given bytes as a &mut Self without copying. Read more
§

fn slice_from(bytes: &[u8]) -> Option<&[Self]>
where\n Self: Sized,

Interprets the given bytes as a &[Self] without copying. Read more
§

fn slice_from_prefix(bytes: &[u8], count: usize) -> Option<(&[Self], &[u8])>
where\n Self: Sized,

Interprets the prefix of the given bytes as a &[Self] with length\nequal to count without copying. Read more
§

fn slice_from_suffix(bytes: &[u8], count: usize) -> Option<(&[u8], &[Self])>
where\n Self: Sized,

Interprets the suffix of the given bytes as a &[Self] with length\nequal to count without copying. Read more
§

fn mut_slice_from(bytes: &mut [u8]) -> Option<&mut [Self]>
where\n Self: Sized + AsBytes,

Interprets the given bytes as a &mut [Self] without copying. Read more
§

fn mut_slice_from_prefix(\n bytes: &mut [u8],\n count: usize,\n) -> Option<(&mut [Self], &mut [u8])>
where\n Self: Sized + AsBytes,

Interprets the prefix of the given bytes as a &mut [Self] with length\nequal to count without copying. Read more
§

fn mut_slice_from_suffix(\n bytes: &mut [u8],\n count: usize,\n) -> Option<(&mut [u8], &mut [Self])>
where\n Self: Sized + AsBytes,

Interprets the suffix of the given bytes as a &mut [Self] with length\nequal to count without copying. Read more
§

fn read_from(bytes: &[u8]) -> Option<Self>
where\n Self: Sized,

Reads a copy of Self from bytes. Read more
§

fn read_from_prefix(bytes: &[u8]) -> Option<Self>
where\n Self: Sized,

Reads a copy of Self from the prefix of bytes. Read more
§

fn read_from_suffix(bytes: &[u8]) -> Option<Self>
where\n Self: Sized,

Reads a copy of Self from the suffix of bytes. Read more
","FromBytes","tor_interface::tor_provider::CircuitToken"],["
source§

impl FromPrimitive for usize

source§

fn from_isize(n: isize) -> Option<usize>

Converts an isize to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_i8(n: i8) -> Option<usize>

Converts an i8 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_i16(n: i16) -> Option<usize>

Converts an i16 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_i32(n: i32) -> Option<usize>

Converts an i32 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_i64(n: i64) -> Option<usize>

Converts an i64 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_i128(n: i128) -> Option<usize>

Converts an i128 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned. Read more
source§

fn from_usize(n: usize) -> Option<usize>

Converts a usize to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_u8(n: u8) -> Option<usize>

Converts an u8 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_u16(n: u16) -> Option<usize>

Converts an u16 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_u32(n: u32) -> Option<usize>

Converts an u32 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_u64(n: u64) -> Option<usize>

Converts an u64 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_u128(n: u128) -> Option<usize>

Converts an u128 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned. Read more
source§

fn from_f32(n: f32) -> Option<usize>

Converts a f32 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned.
source§

fn from_f64(n: f64) -> Option<usize>

Converts a f64 to return an optional value of this type. If the\nvalue cannot be represented by this type, then None is returned. Read more
","FromPrimitive","tor_interface::tor_provider::CircuitToken"],["
§

impl FromSql for usize

§

fn column_result(value: ValueRef<'_>) -> Result<usize, FromSqlError>

Converts SQLite value into Rust value.
","FromSql","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl FromStr for usize

source§

type Err = ParseIntError

The associated error which can be returned from parsing.
source§

fn from_str(src: &str) -> Result<usize, ParseIntError>

Parses a string s to return a value of this type. Read more
","FromStr","tor_interface::tor_provider::CircuitToken"],["
§

impl FromZeroes for usize

§

fn zero(&mut self)

Overwrites self with zeroes. Read more
§

fn new_zeroed() -> Self
where\n Self: Sized,

Creates an instance of Self from zeroed bytes. Read more
","FromZeroes","tor_interface::tor_provider::CircuitToken"],["
§

impl Fundamental for usize

§

fn as_bool(self) -> bool

Tests self != 0.
§

fn as_char(self) -> Option<char>

Represents self as a Unicode Scalar Value, if possible.
§

fn as_i8(self) -> i8

Performs self as i8.
§

fn as_i16(self) -> i16

Performs self as i16.
§

fn as_i32(self) -> i32

Performs self as i32.
§

fn as_i64(self) -> i64

Performs self as i64.
§

fn as_i128(self) -> i128

Performs self as i128.
§

fn as_isize(self) -> isize

Performs self as isize.
§

fn as_u8(self) -> u8

Performs self as u8.
§

fn as_u16(self) -> u16

Performs self as u16.
§

fn as_u32(self) -> u32

Performs self as u32.
§

fn as_u64(self) -> u64

Performs self as u64.
§

fn as_u128(self) -> u128

Performs self as u128.
§

fn as_usize(self) -> usize

Performs self as usize.
§

fn as_f32(self) -> f32

Performs self as f32.
§

fn as_f64(self) -> f64

Performs self as f64.
","Fundamental","tor_interface::tor_provider::CircuitToken"],["
§

impl HasMemoryCostStructural for usize

§

fn indirect_memory_cost(&self, _et: EnabledToken) -> usize

Memory cost of data stored out-of-line Read more
","HasMemoryCostStructural","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Hash for usize

source§

fn hash<H>(&self, state: &mut H)
where\n H: Hasher,

Feeds this value into the given Hasher. Read more
source§

fn hash_slice<H>(data: &[usize], state: &mut H)
where\n H: Hasher,

Feeds a slice of this type into the given Hasher. Read more
","Hash","tor_interface::tor_provider::CircuitToken"],["
source§

impl Integer for usize

source§

fn div_floor(&self, other: &usize) -> usize

Unsigned integer division. Returns the same result as div (/).

\n
source§

fn mod_floor(&self, other: &usize) -> usize

Unsigned integer modulo operation. Returns the same result as rem (%).

\n
source§

fn gcd(&self, other: &usize) -> usize

Calculates the Greatest Common Divisor (GCD) of the number and other

\n
source§

fn lcm(&self, other: &usize) -> usize

Calculates the Lowest Common Multiple (LCM) of the number and other.

\n
source§

fn gcd_lcm(&self, other: &usize) -> (usize, usize)

Calculates the Greatest Common Divisor (GCD) and\nLowest Common Multiple (LCM) of the number and other.

\n
source§

fn is_multiple_of(&self, other: &usize) -> bool

Returns true if the number is a multiple of other.

\n
source§

fn is_even(&self) -> bool

Returns true if the number is divisible by 2.

\n
source§

fn is_odd(&self) -> bool

Returns true if the number is not divisible by 2.

\n
source§

fn div_rem(&self, other: &usize) -> (usize, usize)

Simultaneous truncated integer division and modulus.

\n
source§

fn div_ceil(&self, other: &usize) -> usize

Ceiled integer division. Read more
source§

fn extended_gcd_lcm(&self, other: &usize) -> (ExtendedGcd<usize>, usize)

Greatest common divisor, least common multiple, and Bézout coefficients.
source§

fn extended_gcd(&self, other: &Self) -> ExtendedGcd<Self>
where\n Self: Clone,

Greatest common divisor and Bézout coefficients. Read more
source§

fn divides(&self, other: &Self) -> bool

👎Deprecated: Please use is_multiple_of instead
Deprecated, use is_multiple_of instead.
source§

fn div_mod_floor(&self, other: &Self) -> (Self, Self)

Simultaneous floored integer division and modulus.\nReturns (quotient, remainder). Read more
source§

fn next_multiple_of(&self, other: &Self) -> Self
where\n Self: Clone,

Rounds up to nearest multiple of argument. Read more
source§

fn prev_multiple_of(&self, other: &Self) -> Self
where\n Self: Clone,

Rounds down to nearest multiple of argument. Read more
source§

fn dec(&mut self)
where\n Self: Clone,

Decrements self by one. Read more
source§

fn inc(&mut self)
where\n Self: Clone,

Increments self by one. Read more
","Integer","tor_interface::tor_provider::CircuitToken"],["
§

impl Integral for usize

§

const ZERO: usize = 0usize

The type’s zero value.
§

const ONE: usize = 1usize

The type’s step value.
§

const MIN: usize = 0usize

The type’s minimum value. This is zero for unsigned integers.
§

const MAX: usize = 18_446_744_073_709_551_615usize

The type’s maximum value.
§

const BITS: u32 = 64u32

The size of this type in bits.
§

fn min_value() -> usize

Returns the smallest value that can be represented by this integer type.
§

fn max_value() -> usize

Returns the largest value that can be represented by this integer type.
§

fn from_str_radix(src: &str, radix: u32) -> Result<usize, ParseIntError>

Converts a string slice in a given base to an integer. Read more
§

fn count_ones(self) -> u32

Returns the number of ones in the binary representation of self.
§

fn count_zeros(self) -> u32

Returns the number of zeros in the binary representation of self.
§

fn leading_zeros(self) -> u32

Returns the number of leading zeros in the binary representation of\nself.
§

fn trailing_zeros(self) -> u32

Returns the number of trailing zeros in the binary representation of\nself.
§

fn leading_ones(self) -> u32

Returns the number of leading ones in the binary representation of\nself.
§

fn trailing_ones(self) -> u32

Returns the number of trailing ones in the binary representation of\nself.
§

fn rotate_left(self, n: u32) -> usize

Shifts the bits to the left by a specified amount, n, wrapping the\ntruncated bits to the end of the resulting integer. Read more
§

fn rotate_right(self, n: u32) -> usize

Shifts the bits to the right by a specified amount, n, wrapping the\ntruncated bits to the beginning of the resulting integer. Read more
§

fn swap_bytes(self) -> usize

Reverses the byte order of the integer.
§

fn reverse_bits(self) -> usize

Reverses the bit pattern of the integer.
§

fn from_be(self) -> usize

Converts an integer from big endian to the target’s endianness. Read more
§

fn from_le(self) -> usize

Converts an integer frm little endian to the target’s endianness. Read more
§

fn to_be(self) -> usize

Converts self to big endian from the target’s endianness. Read more
§

fn to_le(self) -> usize

Converts self to little endian from the target’s endianness. Read more
§

fn checked_add(self, rhs: usize) -> Option<usize>

Checked integer addition. Computes self + rhs, returning None if\noverflow occurred.
§

fn checked_sub(self, rhs: usize) -> Option<usize>

Checked integer subtraction. Computes self - rhs, returning None if\noverflow occurred.
§

fn checked_mul(self, rhs: usize) -> Option<usize>

Checked integer multiplication. Computes self * rhs, returning None\nif overflow occurred.
§

fn checked_div(self, rhs: usize) -> Option<usize>

Checked integer division. Computes self / rhs, returning None if\nrhs == 0 or the division results in overflow.
§

fn checked_div_euclid(self, rhs: usize) -> Option<usize>

Checked Euclidean division. Computes self.div_euclid(rhs), returning\nNone if rhs == 0 or the division results in overflow.
§

fn checked_rem(self, rhs: usize) -> Option<usize>

Checked integer remainder. Computes self % rhs, returning None if\nrhs == 0 or the division results in overflow.
§

fn checked_rem_euclid(self, rhs: usize) -> Option<usize>

Checked Euclidean remainder. Computes self.rem_euclid(rhs), returning\nNone if rhs == 0 or the division results in overflow.
§

fn checked_neg(self) -> Option<usize>

Checked negation. Computes -self, returning None if self == MIN. Read more
§

fn checked_shl(self, rhs: u32) -> Option<usize>

Checked shift left. Computes self << rhs, returning None if rhs is\nlarger than or equal to the number of bits in self.
§

fn checked_shr(self, rhs: u32) -> Option<usize>

Checked shift right. Computes self >> rhs, returning None if rhs\nis larger than or equal to the number of bits in self.
§

fn checked_pow(self, rhs: u32) -> Option<usize>

Checked exponentiation. Computes self.pow(exp), returning None if\noverflow occurred.
§

fn saturating_add(self, rhs: usize) -> usize

Saturating integer addition. Computes self + rhs, saturating at the\nnumeric bounds instead of overflowing.
§

fn saturating_sub(self, rhs: usize) -> usize

Saturating integer subtraction. Computes self - rhs, saturating at the\nnumeric bounds instead of overflowing.
§

fn saturating_mul(self, rhs: usize) -> usize

Saturating integer multiplication. Computes self * rhs, saturating at\nthe numeric bounds instead of overflowing.
§

fn saturating_pow(self, rhs: u32) -> usize

Saturating integer exponentiation. Computes self.pow(exp), saturating\nat the numeric bounds instead of overflowing.
§

fn wrapping_add(self, rhs: usize) -> usize

Wrapping (modular) addition. Computes self + rhs, wrapping around at\nthe boundary of the type.
§

fn wrapping_sub(self, rhs: usize) -> usize

Wrapping (modular) subtraction. Computes self - rhs, wrapping around\nat the boundary of the type.
§

fn wrapping_mul(self, rhs: usize) -> usize

Wrapping (modular) multiplication. Computes self * rhs, wrapping\naround at the boundary of the type.
§

fn wrapping_div(self, rhs: usize) -> usize

Wrapping (modular) division. Computes self / rhs, wrapping around at\nthe boundary of the type. Read more
§

fn wrapping_div_euclid(self, rhs: usize) -> usize

Wrapping Euclidean division. Computes self.div_euclid(rhs), wrapping\naround at the boundary of the type. Read more
§

fn wrapping_rem(self, rhs: usize) -> usize

Wrapping (modular) remainder. Computes self % rhs, wrapping around at\nthe boundary of the type. Read more
§

fn wrapping_rem_euclid(self, rhs: usize) -> usize

Wrapping Euclidean remainder. Computes self.rem_euclid(rhs), wrapping\naround at the boundary of the type. Read more
§

fn wrapping_neg(self) -> usize

Wrapping (modular) negation. Computes -self, wrapping around at the\nboundary of the type. Read more
§

fn wrapping_shl(self, rhs: u32) -> usize

Panic-free bitwise shift-left; yields self << mask(rhs), where mask\nremoves any high-order bits of rhs that would cause the shift to\nexceed the bit-width of the type. Read more
§

fn wrapping_shr(self, rhs: u32) -> usize

Panic-free bitwise shift-right; yields self >> mask(rhs), where mask\nremoves any high-order bits of rhs that would cause the shift to\nexceed the bit-width of the type. Read more
§

fn wrapping_pow(self, rhs: u32) -> usize

Wrapping (modular) exponentiation. Computes self.pow(exp), wrapping\naround at the boundary of the type.
§

fn overflowing_add(self, rhs: usize) -> (usize, bool)

Calculates self + rhs Read more
§

fn overflowing_sub(self, rhs: usize) -> (usize, bool)

Calculates self - rhs Read more
§

fn overflowing_mul(self, rhs: usize) -> (usize, bool)

Calculates the multiplication of self and rhs. Read more
§

fn overflowing_div(self, rhs: usize) -> (usize, bool)

Calculates the divisor when self is divided by rhs. Read more
§

fn overflowing_div_euclid(self, rhs: usize) -> (usize, bool)

Calculates the quotient of Euclidean division self.div_euclid(rhs). Read more
§

fn overflowing_rem(self, rhs: usize) -> (usize, bool)

Calculates the remainder when self is divided by rhs. Read more
§

fn overflowing_rem_euclid(self, rhs: usize) -> (usize, bool)

Overflowing Euclidean remainder. Calculates self.rem_euclid(rhs). Read more
§

fn overflowing_neg(self) -> (usize, bool)

Negates self, overflowing if this is equal to the minimum value. Read more
§

fn overflowing_shl(self, rhs: u32) -> (usize, bool)

Shifts self left by rhs bits. Read more
§

fn overflowing_shr(self, rhs: u32) -> (usize, bool)

Shifts self right by rhs bits. Read more
§

fn overflowing_pow(self, rhs: u32) -> (usize, bool)

Raises self to the power of exp, using exponentiation by squaring. Read more
§

fn pow(self, rhs: u32) -> usize

Raises self to the power of exp, using exponentiation by squaring.
§

fn div_euclid(self, rhs: usize) -> usize

Calculates the quotient of Euclidean division of self by rhs. Read more
§

fn rem_euclid(self, rhs: usize) -> usize

Calculates the least nonnegative remainder of self (mod rhs). Read more
","Integral","tor_interface::tor_provider::CircuitToken"],["
source§

impl IntoBigInt for usize

source§

fn into_bigint(self) -> Option<BigInt>

Converts the value of self to a BigInt.
","IntoBigInt","tor_interface::tor_provider::CircuitToken"],["
source§

impl IntoBigUint for usize

source§

fn into_biguint(self) -> Option<BigUint>

Converts the value of self to a BigUint.
","IntoBigUint","tor_interface::tor_provider::CircuitToken"],["
source§

impl<'de, E> IntoDeserializer<'de, E> for usize
where\n E: Error,

source§

type Deserializer = UsizeDeserializer<E>

The type of the deserializer being converted into.
source§

fn into_deserializer(self) -> UsizeDeserializer<E>

Convert this value into a deserializer.
","IntoDeserializer<'de, E>","tor_interface::tor_provider::CircuitToken"],["
§

impl IntoNotification for usize

§

type Tag = ()

The tag data associated with a notification. Read more
§

type Notify = Notify

The notification type. Read more
§

fn into_notification(self) -> <usize as IntoNotification>::Notify

Convert this value into a notification. Read more
§

fn additional(self) -> Additional<Self::Notify>
where\n Self: Sized,

Convert this value into an additional notification. Read more
§

fn relaxed(self) -> Relaxed<Self::Notify>
where\n Self: Sized,

Don’t emit a fence for this notification. Read more
§

fn tag<T>(self, tag: T) -> Tag<Self::Notify, T>
where\n T: Clone,\n Self: Sized + IntoNotification<Tag = ()>,

Use a tag with this notification. Read more
§

fn tag_with<T, F>(self, tag: F) -> TagWith<Self::Notify, F>
where\n Self: Sized + IntoNotification<Tag = ()>,\n F: FnMut() -> T,

Use a function to generate a tag with this notification. Read more
","IntoNotification","tor_interface::tor_provider::CircuitToken"],["
1.42.0 · source§

impl LowerExp for usize

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","LowerExp","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl LowerHex for usize

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","LowerHex","tor_interface::tor_provider::CircuitToken"],["
source§

impl<'a> Mul<&'a BigInt> for usize

source§

type Output = BigInt

The resulting type after applying the * operator.
source§

fn mul(self, other: &BigInt) -> BigInt

Performs the * operation. Read more
","Mul<&'a BigInt>","tor_interface::tor_provider::CircuitToken"],["
source§

impl<'a> Mul<&'a BigUint> for usize

source§

type Output = BigUint

The resulting type after applying the * operator.
source§

fn mul(self, other: &BigUint) -> BigUint

Performs the * operation. Read more
","Mul<&'a BigUint>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Mul<&usize> for usize

source§

type Output = <usize as Mul>::Output

The resulting type after applying the * operator.
source§

fn mul(self, other: &usize) -> <usize as Mul>::Output

Performs the * operation. Read more
","Mul<&usize>","tor_interface::tor_provider::CircuitToken"],["
source§

impl Mul<BigInt> for usize

source§

type Output = BigInt

The resulting type after applying the * operator.
source§

fn mul(self, other: BigInt) -> BigInt

Performs the * operation. Read more
","Mul","tor_interface::tor_provider::CircuitToken"],["
source§

impl Mul<BigUint> for usize

source§

type Output = BigUint

The resulting type after applying the * operator.
source§

fn mul(self, other: BigUint) -> BigUint

Performs the * operation. Read more
","Mul","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Mul for usize

source§

type Output = usize

The resulting type after applying the * operator.
source§

fn mul(self, other: usize) -> usize

Performs the * operation. Read more
","Mul","tor_interface::tor_provider::CircuitToken"],["
source§

impl MulAdd for usize

source§

type Output = usize

The resulting type after applying the fused multiply-add.
source§

fn mul_add(self, a: usize, b: usize) -> <usize as MulAdd>::Output

Performs the fused multiply-add operation (self * a) + b
","MulAdd","tor_interface::tor_provider::CircuitToken"],["
source§

impl MulAddAssign for usize

source§

fn mul_add_assign(&mut self, a: usize, b: usize)

Performs the fused multiply-add assignment operation *self = (*self * a) + b
","MulAddAssign","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl MulAssign<&usize> for usize

source§

fn mul_assign(&mut self, other: &usize)

Performs the *= operation. Read more
","MulAssign<&usize>","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl MulAssign for usize

source§

fn mul_assign(&mut self, other: usize)

Performs the *= operation. Read more
","MulAssign","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Not for usize

source§

type Output = usize

The resulting type after applying the ! operator.
source§

fn not(self) -> usize

Performs the unary ! operation. Read more
","Not","tor_interface::tor_provider::CircuitToken"],["
source§

impl Num for usize

source§

type FromStrRadixErr = ParseIntError

source§

fn from_str_radix(s: &str, radix: u32) -> Result<usize, ParseIntError>

Convert from a string and radix (typically 2..=36). Read more
","Num","tor_interface::tor_provider::CircuitToken"],["
source§

impl NumCast for usize

source§

fn from<N>(n: N) -> Option<usize>
where\n N: ToPrimitive,

Creates a number from another value that can be converted into\na primitive via the ToPrimitive trait. If the source value cannot be\nrepresented by the target type, then None is returned. Read more
","NumCast","tor_interface::tor_provider::CircuitToken"],["
§

impl Numeric for usize

§

type Bytes = [u8; 8]

The [u8; N] byte array that stores values of Self.
§

fn to_be_bytes(self) -> <usize as Numeric>::Bytes

Return the memory representation of this number as a byte array in\nbig-endian (network) byte order.
§

fn to_le_bytes(self) -> <usize as Numeric>::Bytes

Return the memory representation of this number as a byte array in\nlittle-endian byte order.
§

fn to_ne_bytes(self) -> <usize as Numeric>::Bytes

Return the memory representation of this number as a byte array in\nnative byte order.
§

fn from_be_bytes(bytes: <usize as Numeric>::Bytes) -> usize

Create a numeric value from its representation as a byte array in big\nendian.
§

fn from_le_bytes(bytes: <usize as Numeric>::Bytes) -> usize

Create a numeric value from its representation as a byte array in little\nendian.
§

fn from_ne_bytes(bytes: <usize as Numeric>::Bytes) -> usize

Create a numeric value from its memory representation as a byte array in\nnative endianness.
","Numeric","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Octal for usize

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","Octal","tor_interface::tor_provider::CircuitToken"],["
source§

impl One for usize

source§

fn one() -> usize

Returns the multiplicative identity element of Self, 1. Read more
source§

fn is_one(&self) -> bool

Returns true if self is equal to the multiplicative identity. Read more
source§

fn set_one(&mut self)

Sets self to the multiplicative identity element of Self, 1.
","One","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Ord for usize

source§

fn cmp(&self, other: &usize) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where\n Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where\n Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where\n Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
","Ord","tor_interface::tor_provider::CircuitToken"],["
source§

impl OverflowingAdd for usize

source§

fn overflowing_add(&self, v: &usize) -> (usize, bool)

Returns a tuple of the sum along with a boolean indicating whether an arithmetic overflow would occur.\nIf an overflow would have occurred then the wrapped value is returned.
","OverflowingAdd","tor_interface::tor_provider::CircuitToken"],["
source§

impl OverflowingMul for usize

source§

fn overflowing_mul(&self, v: &usize) -> (usize, bool)

Returns a tuple of the product along with a boolean indicating whether an arithmetic overflow would occur.\nIf an overflow would have occurred then the wrapped value is returned.
","OverflowingMul","tor_interface::tor_provider::CircuitToken"],["
source§

impl OverflowingSub for usize

source§

fn overflowing_sub(&self, v: &usize) -> (usize, bool)

Returns a tuple of the difference along with a boolean indicating whether an arithmetic overflow would occur.\nIf an overflow would have occurred then the wrapped value is returned.
","OverflowingSub","tor_interface::tor_provider::CircuitToken"],["
§

impl ParseHex for usize

§

fn parse_hex(input: &str) -> Result<usize, ParseError>

Parse the value from hex.
","ParseHex","tor_interface::tor_provider::CircuitToken"],["
source§

impl PartialEq<Value> for usize

source§

fn eq(&self, other: &Value) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient,\nand should not be overridden without very good reason.
","PartialEq","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl PartialEq for usize

source§

fn eq(&self, other: &usize) -> bool

Tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &usize) -> bool

Tests for !=. The default implementation is almost always sufficient,\nand should not be overridden without very good reason.
","PartialEq","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl PartialOrd for usize

source§

fn partial_cmp(&self, other: &usize) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, other: &usize) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, other: &usize) -> bool

Tests less than or equal to (for self and other) and is used by the\n<= operator. Read more
source§

fn ge(&self, other: &usize) -> bool

Tests greater than or equal to (for self and other) and is used by\nthe >= operator. Read more
source§

fn gt(&self, other: &usize) -> bool

Tests greater than (for self and other) and is used by the >\noperator. Read more
","PartialOrd","tor_interface::tor_provider::CircuitToken"],["
source§

impl PhfBorrow<usize> for usize

source§

fn borrow(&self) -> &usize

Convert a reference to self to a reference to the borrowed type.
","PhfBorrow","tor_interface::tor_provider::CircuitToken"],["
source§

impl PhfHash for usize

source§

fn phf_hash<H>(&self, state: &mut H)
where\n H: Hasher,

Feeds the value into the state given, updating the hasher as necessary.
source§

fn phf_hash_slice<H>(data: &[Self], state: &mut H)
where\n H: Hasher,\n Self: Sized,

Feeds a slice of this type into the state provided.
","PhfHash","tor_interface::tor_provider::CircuitToken"],["
source§

impl<'a> Pow<&'a u16> for usize

source§

type Output = usize

The result after applying the operator.
source§

fn pow(self, rhs: &'a u16) -> usize

Returns self to the power rhs. Read more
","Pow<&'a u16>","tor_interface::tor_provider::CircuitToken"],["
source§

impl<'a> Pow<&'a u32> for usize

source§

type Output = usize

The result after applying the operator.
source§

fn pow(self, rhs: &'a u32) -> usize

Returns self to the power rhs. Read more
","Pow<&'a u32>","tor_interface::tor_provider::CircuitToken"],["
source§

impl<'a> Pow<&'a u8> for usize

source§

type Output = usize

The result after applying the operator.
source§

fn pow(self, rhs: &'a u8) -> usize

Returns self to the power rhs. Read more
","Pow<&'a u8>","tor_interface::tor_provider::CircuitToken"],["
source§

impl<'a> Pow<&'a usize> for usize

source§

type Output = usize

The result after applying the operator.
source§

fn pow(self, rhs: &'a usize) -> usize

Returns self to the power rhs. Read more
","Pow<&'a usize>","tor_interface::tor_provider::CircuitToken"],["
source§

impl<U> Pow<PInt<U>> for usize
where\n U: Unsigned + NonZero,

source§

type Output = usize

The result of the exponentiation.
source§

fn powi(self, _: PInt<U>) -> <usize as Pow<PInt<U>>>::Output

This function isn’t used in this crate, but may be useful for others.\nIt is implemented for primitives. Read more
","Pow>","tor_interface::tor_provider::CircuitToken"],["
source§

impl<U, B> Pow<UInt<U, B>> for usize
where\n U: Unsigned,\n B: Bit,

source§

type Output = usize

The result of the exponentiation.
source§

fn powi(self, _: UInt<U, B>) -> <usize as Pow<UInt<U, B>>>::Output

This function isn’t used in this crate, but may be useful for others.\nIt is implemented for primitives. Read more
","Pow>","tor_interface::tor_provider::CircuitToken"],["
source§

impl Pow<UTerm> for usize

source§

type Output = usize

The result of the exponentiation.
source§

fn powi(self, _: UTerm) -> <usize as Pow<UTerm>>::Output

This function isn’t used in this crate, but may be useful for others.\nIt is implemented for primitives. Read more
","Pow","tor_interface::tor_provider::CircuitToken"],["
source§

impl Pow<Z0> for usize

source§

type Output = usize

The result of the exponentiation.
source§

fn powi(self, _: Z0) -> <usize as Pow<Z0>>::Output

This function isn’t used in this crate, but may be useful for others.\nIt is implemented for primitives. Read more
","Pow","tor_interface::tor_provider::CircuitToken"],["
source§

impl Pow<u16> for usize

source§

type Output = usize

The result after applying the operator.
source§

fn pow(self, rhs: u16) -> usize

Returns self to the power rhs. Read more
","Pow","tor_interface::tor_provider::CircuitToken"],["
source§

impl Pow<u32> for usize

source§

type Output = usize

The result after applying the operator.
source§

fn pow(self, rhs: u32) -> usize

Returns self to the power rhs. Read more
","Pow","tor_interface::tor_provider::CircuitToken"],["
source§

impl Pow<u8> for usize

source§

type Output = usize

The result after applying the operator.
source§

fn pow(self, rhs: u8) -> usize

Returns self to the power rhs. Read more
","Pow","tor_interface::tor_provider::CircuitToken"],["
source§

impl Pow<usize> for usize

source§

type Output = usize

The result after applying the operator.
source§

fn pow(self, rhs: usize) -> usize

Returns self to the power rhs. Read more
","Pow","tor_interface::tor_provider::CircuitToken"],["
source§

impl PrimInt for usize

source§

fn count_ones(self) -> u32

Returns the number of ones in the binary representation of self. Read more
source§

fn count_zeros(self) -> u32

Returns the number of zeros in the binary representation of self. Read more
source§

fn leading_ones(self) -> u32

Returns the number of leading ones in the binary representation\nof self. Read more
source§

fn leading_zeros(self) -> u32

Returns the number of leading zeros in the binary representation\nof self. Read more
source§

fn trailing_ones(self) -> u32

Returns the number of trailing ones in the binary representation\nof self. Read more
source§

fn trailing_zeros(self) -> u32

Returns the number of trailing zeros in the binary representation\nof self. Read more
source§

fn rotate_left(self, n: u32) -> usize

Shifts the bits to the left by a specified amount, n, wrapping\nthe truncated bits to the end of the resulting integer. Read more
source§

fn rotate_right(self, n: u32) -> usize

Shifts the bits to the right by a specified amount, n, wrapping\nthe truncated bits to the beginning of the resulting integer. Read more
source§

fn signed_shl(self, n: u32) -> usize

Shifts the bits to the left by a specified amount, n, filling\nzeros in the least significant bits. Read more
source§

fn signed_shr(self, n: u32) -> usize

Shifts the bits to the right by a specified amount, n, copying\nthe “sign bit” in the most significant bits even for unsigned types. Read more
source§

fn unsigned_shl(self, n: u32) -> usize

Shifts the bits to the left by a specified amount, n, filling\nzeros in the least significant bits. Read more
source§

fn unsigned_shr(self, n: u32) -> usize

Shifts the bits to the right by a specified amount, n, filling\nzeros in the most significant bits. Read more
source§

fn swap_bytes(self) -> usize

Reverses the byte order of the integer. Read more
source§

fn reverse_bits(self) -> usize

Reverses the order of bits in the integer. Read more
source§

fn from_be(x: usize) -> usize

Convert an integer from big endian to the target’s endianness. Read more
source§

fn from_le(x: usize) -> usize

Convert an integer from little endian to the target’s endianness. Read more
source§

fn to_be(self) -> usize

Convert self to big endian from the target’s endianness. Read more
source§

fn to_le(self) -> usize

Convert self to little endian from the target’s endianness. Read more
source§

fn pow(self, exp: u32) -> usize

Raises self to the power of exp, using exponentiation by squaring. Read more
","PrimInt","tor_interface::tor_provider::CircuitToken"],["
1.12.0 · source§

impl<'a> Product<&'a usize> for usize

source§

fn product<I>(iter: I) -> usize
where\n I: Iterator<Item = &'a usize>,

Takes an iterator and generates Self from the elements by multiplying\nthe items.
","Product<&'a usize>","tor_interface::tor_provider::CircuitToken"],["
1.12.0 · source§

impl Product for usize

source§

fn product<I>(iter: I) -> usize
where\n I: Iterator<Item = usize>,

Takes an iterator and generates Self from the elements by multiplying\nthe items.
","Product","tor_interface::tor_provider::CircuitToken"],["
§

impl<R> RangeExt<usize> for R
where\n R: RangeBounds<usize>,

§

fn normalize(\n self,\n start: impl Into<Option<usize>>,\n end: impl Into<Option<usize>>,\n) -> Range<usize>

Normalizes a range-like type to a canonical half-open Range. Read more
§

fn intersection<R2>(self, other: R2) -> Option<Range<usize>>
where\n R2: RangeExt<usize>,

Finds the intersection between two range-likes. The produced Range\nspans only the elements common to both. Read more
§

fn union<R2>(self, other: R2) -> Option<Range<usize>>
where\n R2: RangeExt<usize>,

Finds the union between two range-likes. The produced Range spans all\nelements present in at least one of them. Read more
","RangeExt","tor_interface::tor_provider::CircuitToken"],["
source§

impl<'a> Rem<&'a BigInt> for usize

source§

type Output = BigInt

The resulting type after applying the % operator.
source§

fn rem(self, other: &BigInt) -> BigInt

Performs the % operation. Read more
","Rem<&'a BigInt>","tor_interface::tor_provider::CircuitToken"],["
source§

impl<'a> Rem<&'a BigUint> for usize

source§

type Output = BigUint

The resulting type after applying the % operator.
source§

fn rem(self, other: &BigUint) -> BigUint

Performs the % operation. Read more
","Rem<&'a BigUint>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Rem<&usize> for usize

source§

type Output = <usize as Rem>::Output

The resulting type after applying the % operator.
source§

fn rem(self, other: &usize) -> <usize as Rem>::Output

Performs the % operation. Read more
","Rem<&usize>","tor_interface::tor_provider::CircuitToken"],["
source§

impl Rem<BigInt> for usize

source§

type Output = BigInt

The resulting type after applying the % operator.
source§

fn rem(self, other: BigInt) -> BigInt

Performs the % operation. Read more
","Rem","tor_interface::tor_provider::CircuitToken"],["
source§

impl Rem<BigUint> for usize

source§

type Output = BigUint

The resulting type after applying the % operator.
source§

fn rem(self, other: BigUint) -> BigUint

Performs the % operation. Read more
","Rem","tor_interface::tor_provider::CircuitToken"],["
1.51.0 · source§

impl Rem<NonZero<usize>> for usize

source§

fn rem(self, other: NonZero<usize>) -> usize

This operation satisfies n % d == n - (n / d) * d, and cannot panic.

\n
source§

type Output = usize

The resulting type after applying the % operator.
","Rem>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Rem for usize

This operation satisfies n % d == n - (n / d) * d. The\nresult has the same sign as the left operand.

\n

§Panics

\n

This operation will panic if other == 0.

\n
source§

type Output = usize

The resulting type after applying the % operator.
source§

fn rem(self, other: usize) -> usize

Performs the % operation. Read more
","Rem","tor_interface::tor_provider::CircuitToken"],["
source§

impl<'a> RemAssign<&'a BigUint> for usize

source§

fn rem_assign(&mut self, other: &BigUint)

Performs the %= operation. Read more
","RemAssign<&'a BigUint>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl RemAssign<&usize> for usize

source§

fn rem_assign(&mut self, other: &usize)

Performs the %= operation. Read more
","RemAssign<&usize>","tor_interface::tor_provider::CircuitToken"],["
source§

impl RemAssign<BigUint> for usize

source§

fn rem_assign(&mut self, other: BigUint)

Performs the %= operation. Read more
","RemAssign","tor_interface::tor_provider::CircuitToken"],["
1.79.0 · source§

impl RemAssign<NonZero<usize>> for usize

source§

fn rem_assign(&mut self, other: NonZero<usize>)

This operation satisfies n % d == n - (n / d) * d, and cannot panic.

\n
","RemAssign>","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl RemAssign for usize

source§

fn rem_assign(&mut self, other: usize)

Performs the %= operation. Read more
","RemAssign","tor_interface::tor_provider::CircuitToken"],["
source§

impl Roots for usize

source§

fn nth_root(&self, n: u32) -> usize

Returns the truncated principal nth root of an integer\n– if x >= 0 { ⌊ⁿ√x⌋ } else { ⌈ⁿ√x⌉ } Read more
source§

fn sqrt(&self) -> usize

Returns the truncated principal square root of an integer – ⌊√x⌋ Read more
source§

fn cbrt(&self) -> usize

Returns the truncated principal cube root of an integer –\nif x >= 0 { ⌊∛x⌋ } else { ⌈∛x⌉ } Read more
","Roots","tor_interface::tor_provider::CircuitToken"],["
§

impl RowIndex for usize

§

fn idx(&self, stmt: &Statement<'_>) -> Result<usize, Error>

Returns the index of the appropriate column, or None if no such\ncolumn exists.
","RowIndex","tor_interface::tor_provider::CircuitToken"],["
source§

impl SampleUniform for usize

source§

type Sampler = UniformInt<usize>

The UniformSampler implementation supporting type X.
","SampleUniform","tor_interface::tor_provider::CircuitToken"],["
source§

impl Saturating for usize

source§

fn saturating_add(self, v: usize) -> usize

Saturating addition operator.\nReturns a+b, saturating at the numeric bounds instead of overflowing.
source§

fn saturating_sub(self, v: usize) -> usize

Saturating subtraction operator.\nReturns a-b, saturating at the numeric bounds instead of overflowing.
","Saturating","tor_interface::tor_provider::CircuitToken"],["
source§

impl SaturatingAdd for usize

source§

fn saturating_add(&self, v: &usize) -> usize

Saturating addition. Computes self + other, saturating at the relevant high or low boundary of\nthe type.
","SaturatingAdd","tor_interface::tor_provider::CircuitToken"],["
source§

impl SaturatingMul for usize

source§

fn saturating_mul(&self, v: &usize) -> usize

Saturating multiplication. Computes self * other, saturating at the relevant high or low boundary of\nthe type.
","SaturatingMul","tor_interface::tor_provider::CircuitToken"],["
source§

impl SaturatingSub for usize

source§

fn saturating_sub(&self, v: &usize) -> usize

Saturating subtraction. Computes self - other, saturating at the relevant high or low boundary of\nthe type.
","SaturatingSub","tor_interface::tor_provider::CircuitToken"],["
§

impl SeekNum for usize

§

fn from_block_byte<T>(\n block: T,\n byte: u8,\n bs: u8,\n) -> Result<usize, OverflowError>
where\n T: Counter,

Try to get position for block number block, byte position inside\nblock byte, and block size bs.
§

fn into_block_byte<T>(self, bs: u8) -> Result<(T, u8), OverflowError>
where\n T: Counter,

Try to get block number and bytes position for given block size bs.
","SeekNum","tor_interface::tor_provider::CircuitToken"],["
source§

impl Serialize for usize

source§

fn serialize<S>(\n &self,\n serializer: S,\n) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where\n S: Serializer,

Serialize this value into the given Serde serializer. Read more
","Serialize","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<&i128> for usize

source§

type Output = <usize as Shl<i128>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &i128) -> <usize as Shl<i128>>::Output

Performs the << operation. Read more
","Shl<&i128>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<&i16> for usize

source§

type Output = <usize as Shl<i16>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &i16) -> <usize as Shl<i16>>::Output

Performs the << operation. Read more
","Shl<&i16>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<&i32> for usize

source§

type Output = <usize as Shl<i32>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &i32) -> <usize as Shl<i32>>::Output

Performs the << operation. Read more
","Shl<&i32>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<&i64> for usize

source§

type Output = <usize as Shl<i64>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &i64) -> <usize as Shl<i64>>::Output

Performs the << operation. Read more
","Shl<&i64>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<&i8> for usize

source§

type Output = <usize as Shl<i8>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &i8) -> <usize as Shl<i8>>::Output

Performs the << operation. Read more
","Shl<&i8>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<&isize> for usize

source§

type Output = <usize as Shl<isize>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &isize) -> <usize as Shl<isize>>::Output

Performs the << operation. Read more
","Shl<&isize>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<&u128> for usize

source§

type Output = <usize as Shl<u128>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &u128) -> <usize as Shl<u128>>::Output

Performs the << operation. Read more
","Shl<&u128>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<&u16> for usize

source§

type Output = <usize as Shl<u16>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &u16) -> <usize as Shl<u16>>::Output

Performs the << operation. Read more
","Shl<&u16>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<&u32> for usize

source§

type Output = <usize as Shl<u32>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &u32) -> <usize as Shl<u32>>::Output

Performs the << operation. Read more
","Shl<&u32>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<&u64> for usize

source§

type Output = <usize as Shl<u64>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &u64) -> <usize as Shl<u64>>::Output

Performs the << operation. Read more
","Shl<&u64>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<&u8> for usize

source§

type Output = <usize as Shl<u8>>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &u8) -> <usize as Shl<u8>>::Output

Performs the << operation. Read more
","Shl<&u8>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<&usize> for usize

source§

type Output = <usize as Shl>::Output

The resulting type after applying the << operator.
source§

fn shl(self, other: &usize) -> <usize as Shl>::Output

Performs the << operation. Read more
","Shl<&usize>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<i128> for usize

source§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: i128) -> usize

Performs the << operation. Read more
","Shl","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<i16> for usize

source§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: i16) -> usize

Performs the << operation. Read more
","Shl","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<i32> for usize

source§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: i32) -> usize

Performs the << operation. Read more
","Shl","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<i64> for usize

source§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: i64) -> usize

Performs the << operation. Read more
","Shl","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<i8> for usize

source§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: i8) -> usize

Performs the << operation. Read more
","Shl","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<isize> for usize

source§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: isize) -> usize

Performs the << operation. Read more
","Shl","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<u128> for usize

source§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: u128) -> usize

Performs the << operation. Read more
","Shl","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<u16> for usize

source§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: u16) -> usize

Performs the << operation. Read more
","Shl","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<u32> for usize

source§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: u32) -> usize

Performs the << operation. Read more
","Shl","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<u64> for usize

source§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: u64) -> usize

Performs the << operation. Read more
","Shl","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl<u8> for usize

source§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: u8) -> usize

Performs the << operation. Read more
","Shl","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shl for usize

source§

type Output = usize

The resulting type after applying the << operator.
source§

fn shl(self, other: usize) -> usize

Performs the << operation. Read more
","Shl","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShlAssign<&i128> for usize

source§

fn shl_assign(&mut self, other: &i128)

Performs the <<= operation. Read more
","ShlAssign<&i128>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShlAssign<&i16> for usize

source§

fn shl_assign(&mut self, other: &i16)

Performs the <<= operation. Read more
","ShlAssign<&i16>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShlAssign<&i32> for usize

source§

fn shl_assign(&mut self, other: &i32)

Performs the <<= operation. Read more
","ShlAssign<&i32>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShlAssign<&i64> for usize

source§

fn shl_assign(&mut self, other: &i64)

Performs the <<= operation. Read more
","ShlAssign<&i64>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShlAssign<&i8> for usize

source§

fn shl_assign(&mut self, other: &i8)

Performs the <<= operation. Read more
","ShlAssign<&i8>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShlAssign<&isize> for usize

source§

fn shl_assign(&mut self, other: &isize)

Performs the <<= operation. Read more
","ShlAssign<&isize>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShlAssign<&u128> for usize

source§

fn shl_assign(&mut self, other: &u128)

Performs the <<= operation. Read more
","ShlAssign<&u128>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShlAssign<&u16> for usize

source§

fn shl_assign(&mut self, other: &u16)

Performs the <<= operation. Read more
","ShlAssign<&u16>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShlAssign<&u32> for usize

source§

fn shl_assign(&mut self, other: &u32)

Performs the <<= operation. Read more
","ShlAssign<&u32>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShlAssign<&u64> for usize

source§

fn shl_assign(&mut self, other: &u64)

Performs the <<= operation. Read more
","ShlAssign<&u64>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShlAssign<&u8> for usize

source§

fn shl_assign(&mut self, other: &u8)

Performs the <<= operation. Read more
","ShlAssign<&u8>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShlAssign<&usize> for usize

source§

fn shl_assign(&mut self, other: &usize)

Performs the <<= operation. Read more
","ShlAssign<&usize>","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShlAssign<i128> for usize

source§

fn shl_assign(&mut self, other: i128)

Performs the <<= operation. Read more
","ShlAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShlAssign<i16> for usize

source§

fn shl_assign(&mut self, other: i16)

Performs the <<= operation. Read more
","ShlAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShlAssign<i32> for usize

source§

fn shl_assign(&mut self, other: i32)

Performs the <<= operation. Read more
","ShlAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShlAssign<i64> for usize

source§

fn shl_assign(&mut self, other: i64)

Performs the <<= operation. Read more
","ShlAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShlAssign<i8> for usize

source§

fn shl_assign(&mut self, other: i8)

Performs the <<= operation. Read more
","ShlAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShlAssign<isize> for usize

source§

fn shl_assign(&mut self, other: isize)

Performs the <<= operation. Read more
","ShlAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShlAssign<u128> for usize

source§

fn shl_assign(&mut self, other: u128)

Performs the <<= operation. Read more
","ShlAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShlAssign<u16> for usize

source§

fn shl_assign(&mut self, other: u16)

Performs the <<= operation. Read more
","ShlAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShlAssign<u32> for usize

source§

fn shl_assign(&mut self, other: u32)

Performs the <<= operation. Read more
","ShlAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShlAssign<u64> for usize

source§

fn shl_assign(&mut self, other: u64)

Performs the <<= operation. Read more
","ShlAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShlAssign<u8> for usize

source§

fn shl_assign(&mut self, other: u8)

Performs the <<= operation. Read more
","ShlAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShlAssign for usize

source§

fn shl_assign(&mut self, other: usize)

Performs the <<= operation. Read more
","ShlAssign","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<&i128> for usize

source§

type Output = <usize as Shr<i128>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &i128) -> <usize as Shr<i128>>::Output

Performs the >> operation. Read more
","Shr<&i128>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<&i16> for usize

source§

type Output = <usize as Shr<i16>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &i16) -> <usize as Shr<i16>>::Output

Performs the >> operation. Read more
","Shr<&i16>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<&i32> for usize

source§

type Output = <usize as Shr<i32>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &i32) -> <usize as Shr<i32>>::Output

Performs the >> operation. Read more
","Shr<&i32>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<&i64> for usize

source§

type Output = <usize as Shr<i64>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &i64) -> <usize as Shr<i64>>::Output

Performs the >> operation. Read more
","Shr<&i64>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<&i8> for usize

source§

type Output = <usize as Shr<i8>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &i8) -> <usize as Shr<i8>>::Output

Performs the >> operation. Read more
","Shr<&i8>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<&isize> for usize

source§

type Output = <usize as Shr<isize>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &isize) -> <usize as Shr<isize>>::Output

Performs the >> operation. Read more
","Shr<&isize>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<&u128> for usize

source§

type Output = <usize as Shr<u128>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &u128) -> <usize as Shr<u128>>::Output

Performs the >> operation. Read more
","Shr<&u128>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<&u16> for usize

source§

type Output = <usize as Shr<u16>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &u16) -> <usize as Shr<u16>>::Output

Performs the >> operation. Read more
","Shr<&u16>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<&u32> for usize

source§

type Output = <usize as Shr<u32>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &u32) -> <usize as Shr<u32>>::Output

Performs the >> operation. Read more
","Shr<&u32>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<&u64> for usize

source§

type Output = <usize as Shr<u64>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &u64) -> <usize as Shr<u64>>::Output

Performs the >> operation. Read more
","Shr<&u64>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<&u8> for usize

source§

type Output = <usize as Shr<u8>>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &u8) -> <usize as Shr<u8>>::Output

Performs the >> operation. Read more
","Shr<&u8>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<&usize> for usize

source§

type Output = <usize as Shr>::Output

The resulting type after applying the >> operator.
source§

fn shr(self, other: &usize) -> <usize as Shr>::Output

Performs the >> operation. Read more
","Shr<&usize>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<i128> for usize

source§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: i128) -> usize

Performs the >> operation. Read more
","Shr","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<i16> for usize

source§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: i16) -> usize

Performs the >> operation. Read more
","Shr","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<i32> for usize

source§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: i32) -> usize

Performs the >> operation. Read more
","Shr","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<i64> for usize

source§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: i64) -> usize

Performs the >> operation. Read more
","Shr","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<i8> for usize

source§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: i8) -> usize

Performs the >> operation. Read more
","Shr","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<isize> for usize

source§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: isize) -> usize

Performs the >> operation. Read more
","Shr","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<u128> for usize

source§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: u128) -> usize

Performs the >> operation. Read more
","Shr","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<u16> for usize

source§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: u16) -> usize

Performs the >> operation. Read more
","Shr","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<u32> for usize

source§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: u32) -> usize

Performs the >> operation. Read more
","Shr","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<u64> for usize

source§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: u64) -> usize

Performs the >> operation. Read more
","Shr","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr<u8> for usize

source§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: u8) -> usize

Performs the >> operation. Read more
","Shr","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Shr for usize

source§

type Output = usize

The resulting type after applying the >> operator.
source§

fn shr(self, other: usize) -> usize

Performs the >> operation. Read more
","Shr","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShrAssign<&i128> for usize

source§

fn shr_assign(&mut self, other: &i128)

Performs the >>= operation. Read more
","ShrAssign<&i128>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShrAssign<&i16> for usize

source§

fn shr_assign(&mut self, other: &i16)

Performs the >>= operation. Read more
","ShrAssign<&i16>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShrAssign<&i32> for usize

source§

fn shr_assign(&mut self, other: &i32)

Performs the >>= operation. Read more
","ShrAssign<&i32>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShrAssign<&i64> for usize

source§

fn shr_assign(&mut self, other: &i64)

Performs the >>= operation. Read more
","ShrAssign<&i64>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShrAssign<&i8> for usize

source§

fn shr_assign(&mut self, other: &i8)

Performs the >>= operation. Read more
","ShrAssign<&i8>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShrAssign<&isize> for usize

source§

fn shr_assign(&mut self, other: &isize)

Performs the >>= operation. Read more
","ShrAssign<&isize>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShrAssign<&u128> for usize

source§

fn shr_assign(&mut self, other: &u128)

Performs the >>= operation. Read more
","ShrAssign<&u128>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShrAssign<&u16> for usize

source§

fn shr_assign(&mut self, other: &u16)

Performs the >>= operation. Read more
","ShrAssign<&u16>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShrAssign<&u32> for usize

source§

fn shr_assign(&mut self, other: &u32)

Performs the >>= operation. Read more
","ShrAssign<&u32>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShrAssign<&u64> for usize

source§

fn shr_assign(&mut self, other: &u64)

Performs the >>= operation. Read more
","ShrAssign<&u64>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShrAssign<&u8> for usize

source§

fn shr_assign(&mut self, other: &u8)

Performs the >>= operation. Read more
","ShrAssign<&u8>","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl ShrAssign<&usize> for usize

source§

fn shr_assign(&mut self, other: &usize)

Performs the >>= operation. Read more
","ShrAssign<&usize>","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShrAssign<i128> for usize

source§

fn shr_assign(&mut self, other: i128)

Performs the >>= operation. Read more
","ShrAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShrAssign<i16> for usize

source§

fn shr_assign(&mut self, other: i16)

Performs the >>= operation. Read more
","ShrAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShrAssign<i32> for usize

source§

fn shr_assign(&mut self, other: i32)

Performs the >>= operation. Read more
","ShrAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShrAssign<i64> for usize

source§

fn shr_assign(&mut self, other: i64)

Performs the >>= operation. Read more
","ShrAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShrAssign<i8> for usize

source§

fn shr_assign(&mut self, other: i8)

Performs the >>= operation. Read more
","ShrAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShrAssign<isize> for usize

source§

fn shr_assign(&mut self, other: isize)

Performs the >>= operation. Read more
","ShrAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShrAssign<u128> for usize

source§

fn shr_assign(&mut self, other: u128)

Performs the >>= operation. Read more
","ShrAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShrAssign<u16> for usize

source§

fn shr_assign(&mut self, other: u16)

Performs the >>= operation. Read more
","ShrAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShrAssign<u32> for usize

source§

fn shr_assign(&mut self, other: u32)

Performs the >>= operation. Read more
","ShrAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShrAssign<u64> for usize

source§

fn shr_assign(&mut self, other: u64)

Performs the >>= operation. Read more
","ShrAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShrAssign<u8> for usize

source§

fn shr_assign(&mut self, other: u8)

Performs the >>= operation. Read more
","ShrAssign","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl ShrAssign for usize

source§

fn shr_assign(&mut self, other: usize)

Performs the >>= operation. Read more
","ShrAssign","tor_interface::tor_provider::CircuitToken"],["
source§

impl SimdElement for usize

source§

type Mask = isize

🔬This is a nightly-only experimental API. (portable_simd)
The mask element type corresponding to this element type.
","SimdElement","tor_interface::tor_provider::CircuitToken"],["
1.15.0 (const: unstable) · source§

impl<T> SliceIndex<[T]> for usize

The methods index and index_mut panic if the index is out of bounds.

\n
source§

type Output = T

The output type returned by methods.
source§

fn get(self, slice: &[T]) -> Option<&T>

🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a shared reference to the output at this location, if in\nbounds.
source§

fn get_mut(self, slice: &mut [T]) -> Option<&mut T>

🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a mutable reference to the output at this location, if in\nbounds.
source§

unsafe fn get_unchecked(self, slice: *const [T]) -> *const T

🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a pointer to the output at this location, without\nperforming any bounds checking. Read more
source§

unsafe fn get_unchecked_mut(self, slice: *mut [T]) -> *mut T

🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a mutable pointer to the output at this location, without\nperforming any bounds checking. Read more
source§

fn index(self, slice: &[T]) -> &T

🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a shared reference to the output at this location, panicking\nif out of bounds.
source§

fn index_mut(self, slice: &mut [T]) -> &mut T

🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a mutable reference to the output at this location, panicking\nif out of bounds.
","SliceIndex<[T]>","tor_interface::tor_provider::CircuitToken"],["
§

impl SmartDisplay for usize

§

type Metadata = ()

User-provided metadata type.
§

fn metadata(&self, f: FormatterOptions) -> Metadata<'_, usize>

Compute any information needed to format the value. This must, at a minimum, determine the\nwidth of the value before any padding is added by the formatter. Read more
§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Format the value using the given formatter. This is the same as Display::fmt. Read more
§

fn fmt_with_metadata(\n &self,\n f: &mut Formatter<'_>,\n _metadata: Metadata<'_, Self>,\n) -> Result<(), Error>

Format the value using the given formatter and metadata. The formatted output should have\nthe width indicated by the metadata. This is before any padding is added by the\nformatter. Read more
","SmartDisplay","tor_interface::tor_provider::CircuitToken"],["
source§

impl Step for usize

source§

fn forward(start: usize, n: usize) -> usize

🔬This is a nightly-only experimental API. (step_trait)
Returns the value that would be obtained by taking the successor\nof self count times. Read more
source§

fn backward(start: usize, n: usize) -> usize

🔬This is a nightly-only experimental API. (step_trait)
Returns the value that would be obtained by taking the predecessor\nof self count times. Read more
source§

unsafe fn forward_unchecked(start: usize, n: usize) -> usize

🔬This is a nightly-only experimental API. (step_trait)
Returns the value that would be obtained by taking the successor\nof self count times. Read more
source§

unsafe fn backward_unchecked(start: usize, n: usize) -> usize

🔬This is a nightly-only experimental API. (step_trait)
Returns the value that would be obtained by taking the predecessor\nof self count times. Read more
source§

fn steps_between(start: &usize, end: &usize) -> Option<usize>

🔬This is a nightly-only experimental API. (step_trait)
Returns the number of successor steps required to get from start to end. Read more
source§

fn forward_checked(start: usize, n: usize) -> Option<usize>

🔬This is a nightly-only experimental API. (step_trait)
Returns the value that would be obtained by taking the successor\nof self count times. Read more
source§

fn backward_checked(start: usize, n: usize) -> Option<usize>

🔬This is a nightly-only experimental API. (step_trait)
Returns the value that would be obtained by taking the predecessor\nof self count times. Read more
","Step","tor_interface::tor_provider::CircuitToken"],["
source§

impl<'a> Sub<&'a BigInt> for usize

source§

type Output = BigInt

The resulting type after applying the - operator.
source§

fn sub(self, other: &BigInt) -> BigInt

Performs the - operation. Read more
","Sub<&'a BigInt>","tor_interface::tor_provider::CircuitToken"],["
source§

impl<'a> Sub<&'a BigUint> for usize

source§

type Output = BigUint

The resulting type after applying the - operator.
source§

fn sub(self, other: &BigUint) -> BigUint

Performs the - operation. Read more
","Sub<&'a BigUint>","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Sub<&usize> for usize

source§

type Output = <usize as Sub>::Output

The resulting type after applying the - operator.
source§

fn sub(self, other: &usize) -> <usize as Sub>::Output

Performs the - operation. Read more
","Sub<&usize>","tor_interface::tor_provider::CircuitToken"],["
source§

impl Sub<BigInt> for usize

source§

type Output = BigInt

The resulting type after applying the - operator.
source§

fn sub(self, other: BigInt) -> BigInt

Performs the - operation. Read more
","Sub","tor_interface::tor_provider::CircuitToken"],["
source§

impl Sub<BigUint> for usize

source§

type Output = BigUint

The resulting type after applying the - operator.
source§

fn sub(self, other: BigUint) -> BigUint

Performs the - operation. Read more
","Sub","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Sub for usize

source§

type Output = usize

The resulting type after applying the - operator.
source§

fn sub(self, other: usize) -> usize

Performs the - operation. Read more
","Sub","tor_interface::tor_provider::CircuitToken"],["
1.22.0 · source§

impl SubAssign<&usize> for usize

source§

fn sub_assign(&mut self, other: &usize)

Performs the -= operation. Read more
","SubAssign<&usize>","tor_interface::tor_provider::CircuitToken"],["
1.8.0 · source§

impl SubAssign for usize

source§

fn sub_assign(&mut self, other: usize)

Performs the -= operation. Read more
","SubAssign","tor_interface::tor_provider::CircuitToken"],["
1.12.0 · source§

impl<'a> Sum<&'a usize> for usize

source§

fn sum<I>(iter: I) -> usize
where\n I: Iterator<Item = &'a usize>,

Takes an iterator and generates Self from the elements by “summing up”\nthe items.
","Sum<&'a usize>","tor_interface::tor_provider::CircuitToken"],["
1.12.0 · source§

impl Sum for usize

source§

fn sum<I>(iter: I) -> usize
where\n I: Iterator<Item = usize>,

Takes an iterator and generates Self from the elements by “summing up”\nthe items.
","Sum","tor_interface::tor_provider::CircuitToken"],["
source§

impl ToBigInt for usize

source§

fn to_bigint(&self) -> Option<BigInt>

Converts the value of self to a BigInt.
","ToBigInt","tor_interface::tor_provider::CircuitToken"],["
source§

impl ToBigUint for usize

source§

fn to_biguint(&self) -> Option<BigUint>

Converts the value of self to a BigUint.
","ToBigUint","tor_interface::tor_provider::CircuitToken"],["
source§

impl ToBytes for usize

source§

type Bytes = [u8; 8]

source§

fn to_be_bytes(&self) -> <usize as ToBytes>::Bytes

Return the memory representation of this number as a byte array in big-endian byte order. Read more
source§

fn to_le_bytes(&self) -> <usize as ToBytes>::Bytes

Return the memory representation of this number as a byte array in little-endian byte order. Read more
source§

fn to_ne_bytes(&self) -> <usize as ToBytes>::Bytes

Return the memory representation of this number as a byte array in native byte order. Read more
","ToBytes","tor_interface::tor_provider::CircuitToken"],["
source§

impl ToPrimitive for usize

source§

fn to_isize(&self) -> Option<isize>

Converts the value of self to an isize. If the value cannot be\nrepresented by an isize, then None is returned.
source§

fn to_i8(&self) -> Option<i8>

Converts the value of self to an i8. If the value cannot be\nrepresented by an i8, then None is returned.
source§

fn to_i16(&self) -> Option<i16>

Converts the value of self to an i16. If the value cannot be\nrepresented by an i16, then None is returned.
source§

fn to_i32(&self) -> Option<i32>

Converts the value of self to an i32. If the value cannot be\nrepresented by an i32, then None is returned.
source§

fn to_i64(&self) -> Option<i64>

Converts the value of self to an i64. If the value cannot be\nrepresented by an i64, then None is returned.
source§

fn to_i128(&self) -> Option<i128>

Converts the value of self to an i128. If the value cannot be\nrepresented by an i128 (i64 under the default implementation), then\nNone is returned. Read more
source§

fn to_usize(&self) -> Option<usize>

Converts the value of self to a usize. If the value cannot be\nrepresented by a usize, then None is returned.
source§

fn to_u8(&self) -> Option<u8>

Converts the value of self to a u8. If the value cannot be\nrepresented by a u8, then None is returned.
source§

fn to_u16(&self) -> Option<u16>

Converts the value of self to a u16. If the value cannot be\nrepresented by a u16, then None is returned.
source§

fn to_u32(&self) -> Option<u32>

Converts the value of self to a u32. If the value cannot be\nrepresented by a u32, then None is returned.
source§

fn to_u64(&self) -> Option<u64>

Converts the value of self to a u64. If the value cannot be\nrepresented by a u64, then None is returned.
source§

fn to_u128(&self) -> Option<u128>

Converts the value of self to a u128. If the value cannot be\nrepresented by a u128 (u64 under the default implementation), then\nNone is returned. Read more
source§

fn to_f32(&self) -> Option<f32>

Converts the value of self to an f32. Overflows may map to positive\nor negative inifinity, otherwise None is returned if the value cannot\nbe represented by an f32.
source§

fn to_f64(&self) -> Option<f64>

Converts the value of self to an f64. Overflows may map to positive\nor negative inifinity, otherwise None is returned if the value cannot\nbe represented by an f64. Read more
","ToPrimitive","tor_interface::tor_provider::CircuitToken"],["
§

impl ToSql for usize

§

fn to_sql(&self) -> Result<ToSqlOutput<'_>, Error>

Converts Rust value to SQLite value
","ToSql","tor_interface::tor_provider::CircuitToken"],["
§

impl ToUsize for usize

§

fn to_usize(&self) -> usize

converts self to usize
","ToUsize","tor_interface::tor_provider::CircuitToken"],["
§

impl ToUsize for usize

§

fn to_usize(&self) -> usize

converts self to usize
","ToUsize","tor_interface::tor_provider::CircuitToken"],["
§

impl<const L: i32, const H: i32> TryFrom<BoundedInt32<L, H>> for usize

§

type Error = Error

The type returned in the event of a conversion error.
§

fn try_from(\n val: BoundedInt32<L, H>,\n) -> Result<usize, <usize as TryFrom<BoundedInt32<L, H>>>::Error>

Performs the conversion.
","TryFrom>","tor_interface::tor_provider::CircuitToken"],["
§

impl TryFrom<Length> for usize

§

type Error = Error

The type returned in the event of a conversion error.
§

fn try_from(len: Length) -> Result<usize, Error>

Performs the conversion.
","TryFrom","tor_interface::tor_provider::CircuitToken"],["
1.34.0 · source§

impl TryFrom<i128> for usize

source§

fn try_from(u: i128) -> Result<usize, <usize as TryFrom<i128>>::Error>

Tries to create the target number type from a source\nnumber type. This returns an error if the source value\nis outside of the range of the target type.

\n
source§

type Error = TryFromIntError

The type returned in the event of a conversion error.
","TryFrom","tor_interface::tor_provider::CircuitToken"],["
1.34.0 · source§

impl TryFrom<i16> for usize

source§

fn try_from(u: i16) -> Result<usize, <usize as TryFrom<i16>>::Error>

Tries to create the target number type from a source\nnumber type. This returns an error if the source value\nis outside of the range of the target type.

\n
source§

type Error = TryFromIntError

The type returned in the event of a conversion error.
","TryFrom","tor_interface::tor_provider::CircuitToken"],["
1.34.0 · source§

impl TryFrom<i32> for usize

source§

fn try_from(u: i32) -> Result<usize, <usize as TryFrom<i32>>::Error>

Tries to create the target number type from a source\nnumber type. This returns an error if the source value\nis outside of the range of the target type.

\n
source§

type Error = TryFromIntError

The type returned in the event of a conversion error.
","TryFrom","tor_interface::tor_provider::CircuitToken"],["
1.34.0 · source§

impl TryFrom<i64> for usize

source§

fn try_from(u: i64) -> Result<usize, <usize as TryFrom<i64>>::Error>

Tries to create the target number type from a source\nnumber type. This returns an error if the source value\nis outside of the range of the target type.

\n
source§

type Error = TryFromIntError

The type returned in the event of a conversion error.
","TryFrom","tor_interface::tor_provider::CircuitToken"],["
1.34.0 · source§

impl TryFrom<i8> for usize

source§

fn try_from(u: i8) -> Result<usize, <usize as TryFrom<i8>>::Error>

Tries to create the target number type from a source\nnumber type. This returns an error if the source value\nis outside of the range of the target type.

\n
source§

type Error = TryFromIntError

The type returned in the event of a conversion error.
","TryFrom","tor_interface::tor_provider::CircuitToken"],["
1.34.0 · source§

impl TryFrom<isize> for usize

source§

fn try_from(u: isize) -> Result<usize, <usize as TryFrom<isize>>::Error>

Tries to create the target number type from a source\nnumber type. This returns an error if the source value\nis outside of the range of the target type.

\n
source§

type Error = TryFromIntError

The type returned in the event of a conversion error.
","TryFrom","tor_interface::tor_provider::CircuitToken"],["
1.34.0 · source§

impl TryFrom<u128> for usize

source§

fn try_from(u: u128) -> Result<usize, <usize as TryFrom<u128>>::Error>

Tries to create the target number type from a source\nnumber type. This returns an error if the source value\nis outside of the range of the target type.

\n
source§

type Error = TryFromIntError

The type returned in the event of a conversion error.
","TryFrom","tor_interface::tor_provider::CircuitToken"],["
1.34.0 · source§

impl TryFrom<u32> for usize

source§

fn try_from(value: u32) -> Result<usize, <usize as TryFrom<u32>>::Error>

Tries to create the target number type from a source\nnumber type. This returns an error if the source value\nis outside of the range of the target type.

\n
source§

type Error = TryFromIntError

The type returned in the event of a conversion error.
","TryFrom","tor_interface::tor_provider::CircuitToken"],["
1.34.0 · source§

impl TryFrom<u64> for usize

source§

fn try_from(value: u64) -> Result<usize, <usize as TryFrom<u64>>::Error>

Tries to create the target number type from a source\nnumber type. This returns an error if the source value\nis outside of the range of the target type.

\n
source§

type Error = TryFromIntError

The type returned in the event of a conversion error.
","TryFrom","tor_interface::tor_provider::CircuitToken"],["
§

impl Unsigned for usize

§

fn is_power_of_two(self) -> bool

Returns true if and only if self == 2^k for some k.
§

fn next_power_of_two(self) -> usize

Returns the smallest power of two greater than or equal to self. Read more
§

fn checked_next_power_of_two(self) -> Option<usize>

Returns the smallest power of two greater than or equal to n. If the\nnext power of two is greater than the type’s maximum value, None is\nreturned, otherwise the power of two is wrapped in Some.
","Unsigned","tor_interface::tor_provider::CircuitToken"],["
1.42.0 · source§

impl UpperExp for usize

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","UpperExp","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl UpperHex for usize

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
","UpperHex","tor_interface::tor_provider::CircuitToken"],["
§

impl Value for usize

§

fn record(&self, key: &Field, visitor: &mut dyn Visit)

Visits this value with the given Visitor.
","Value","tor_interface::tor_provider::CircuitToken"],["
source§

impl WrappingAdd for usize

source§

fn wrapping_add(&self, v: &usize) -> usize

Wrapping (modular) addition. Computes self + other, wrapping around at the boundary of\nthe type.
","WrappingAdd","tor_interface::tor_provider::CircuitToken"],["
source§

impl WrappingMul for usize

source§

fn wrapping_mul(&self, v: &usize) -> usize

Wrapping (modular) multiplication. Computes self * other, wrapping around at the boundary\nof the type.
","WrappingMul","tor_interface::tor_provider::CircuitToken"],["
source§

impl WrappingNeg for usize

source§

fn wrapping_neg(&self) -> usize

Wrapping (modular) negation. Computes -self,\nwrapping around at the boundary of the type. Read more
","WrappingNeg","tor_interface::tor_provider::CircuitToken"],["
source§

impl WrappingShl for usize

source§

fn wrapping_shl(&self, rhs: u32) -> usize

Panic-free bitwise shift-left; yields self << mask(rhs),\nwhere mask removes any high order bits of rhs that would\ncause the shift to exceed the bitwidth of the type. Read more
","WrappingShl","tor_interface::tor_provider::CircuitToken"],["
source§

impl WrappingShr for usize

source§

fn wrapping_shr(&self, rhs: u32) -> usize

Panic-free bitwise shift-right; yields self >> mask(rhs),\nwhere mask removes any high order bits of rhs that would\ncause the shift to exceed the bitwidth of the type. Read more
","WrappingShr","tor_interface::tor_provider::CircuitToken"],["
source§

impl WrappingSub for usize

source§

fn wrapping_sub(&self, v: &usize) -> usize

Wrapping (modular) subtraction. Computes self - other, wrapping around at the boundary\nof the type.
","WrappingSub","tor_interface::tor_provider::CircuitToken"],["
§

impl WriteHex for usize

§

fn write_hex<W>(&self, writer: W) -> Result<(), Error>
where\n W: Write,

Write the value as hex.
","WriteHex","tor_interface::tor_provider::CircuitToken"],["
§

impl Writeable for usize

§

fn write_to<W>(&self, sink: &mut W) -> Result<(), Error>
where\n W: Write + ?Sized,

Writes a string to the given sink. Errors from the sink are bubbled up.\nThe default implementation delegates to write_to_parts, and discards any\nPart annotations.
§

fn writeable_length_hint(&self) -> LengthHint

Returns a hint for the number of UTF-8 bytes that will be written to the sink. Read more
§

fn write_to_parts<S>(&self, sink: &mut S) -> Result<(), Error>
where\n S: PartsWrite + ?Sized,

Write bytes and Part annotations to the given sink. Errors from the\nsink are bubbled up. The default implementation delegates to write_to,\nand doesn’t produce any Part annotations.
§

fn write_to_string(&self) -> Cow<'_, str>

Creates a new String with the data from this Writeable. Like ToString,\nbut smaller and faster. Read more
§

fn writeable_cmp_bytes(&self, other: &[u8]) -> Ordering

Compares the contents of this Writeable to the given bytes\nwithout allocating a String to hold the Writeable contents. Read more
","Writeable","tor_interface::tor_provider::CircuitToken"],["
§

impl<'a> Yokeable<'a> for usize

§

type Output = usize

This type MUST be Self with the 'static replaced with 'a, i.e. Self<'a>
§

fn transform(&self) -> &<usize as Yokeable<'a>>::Output

This method must cast self between &'a Self<'static> and &'a Self<'a>. Read more
§

fn transform_owned(self) -> <usize as Yokeable<'a>>::Output

This method must cast self between Self<'static> and Self<'a>. Read more
§

unsafe fn make(this: <usize as Yokeable<'a>>::Output) -> usize

This method can be used to cast away Self<'a>’s lifetime. Read more
§

fn transform_mut<F>(&'a mut self, f: F)
where\n F: 'static + for<'b> FnOnce(&'b mut <usize as Yokeable<'a>>::Output),

This method must cast self between &'a mut Self<'static> and &'a mut Self<'a>,\nand pass it to f. Read more
","Yokeable<'a>","tor_interface::tor_provider::CircuitToken"],["
source§

impl Zero for usize

source§

fn zero() -> usize

Returns the additive identity element of Self, 0. Read more
source§

fn is_zero(&self) -> bool

Returns true if self is equal to the additive identity.
source§

fn set_zero(&mut self)

Sets self to the additive identity element of Self, 0.
","Zero","tor_interface::tor_provider::CircuitToken"],["
§

impl<'a> ZeroFrom<'a, usize> for usize

§

fn zero_from(this: &'a usize) -> usize

Clone the other C into a struct that may retain references into C.
","ZeroFrom<'a, usize>","tor_interface::tor_provider::CircuitToken"],["
§

impl<'a> ZeroMapKV<'a> for usize

§

type Container = FlexZeroVec<'a>

The container that can be used with this type: [ZeroVec] or [VarZeroVec].
§

type Slice = FlexZeroSlice

§

type GetType = [u8]

The type produced by Container::get() Read more
§

type OwnedType = usize

The type produced by Container::replace() and Container::remove(),\nalso used during deserialization. If Self is human readable serialized,\ndeserializing to Self::OwnedType should produce the same value once\npassed through Self::owned_as_self() Read more
","ZeroMapKV<'a>","tor_interface::tor_provider::CircuitToken"],["
source§

impl usize

1.43.0 · source

pub const MIN: usize = 0usize

The smallest value that can be represented by this integer type.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(usize::MIN, 0);
\n
1.43.0 · source

pub const MAX: usize = 18_446_744_073_709_551_615usize

The largest value that can be represented by this integer type\n(264 − 1 on 64-bit targets).

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(usize::MAX, 18446744073709551615);
\n
1.53.0 · source

pub const BITS: u32 = 64u32

The size of this integer type in bits.

\n
§Examples
\n
assert_eq!(usize::BITS, 64);
\n
1.0.0 (const: 1.32.0) · source

pub const fn count_ones(self) -> u32

Returns the number of ones in the binary representation of self.

\n
§Examples
\n

Basic usage:

\n\n
let n = 0b01001100usize;\nassert_eq!(n.count_ones(), 3);\n\nlet max = usize::MAX;\nassert_eq!(max.count_ones(), 64);\n\nlet zero = 0usize;\nassert_eq!(zero.count_ones(), 0);
\n
1.0.0 (const: 1.32.0) · source

pub const fn count_zeros(self) -> u32

Returns the number of zeros in the binary representation of self.

\n
§Examples
\n

Basic usage:

\n\n
let zero = 0usize;\nassert_eq!(zero.count_zeros(), 64);\n\nlet max = usize::MAX;\nassert_eq!(max.count_zeros(), 0);
\n
1.0.0 (const: 1.32.0) · source

pub const fn leading_zeros(self) -> u32

Returns the number of leading zeros in the binary representation of self.

\n

Depending on what you’re doing with the value, you might also be interested in the\nilog2 function which returns a consistent number, even if the type widens.

\n
§Examples
\n

Basic usage:

\n\n
let n = usize::MAX >> 2;\nassert_eq!(n.leading_zeros(), 2);\n\nlet zero = 0usize;\nassert_eq!(zero.leading_zeros(), 64);\n\nlet max = usize::MAX;\nassert_eq!(max.leading_zeros(), 0);
\n
1.0.0 (const: 1.32.0) · source

pub const fn trailing_zeros(self) -> u32

Returns the number of trailing zeros in the binary representation\nof self.

\n
§Examples
\n

Basic usage:

\n\n
let n = 0b0101000usize;\nassert_eq!(n.trailing_zeros(), 3);\n\nlet zero = 0usize;\nassert_eq!(zero.trailing_zeros(), 64);\n\nlet max = usize::MAX;\nassert_eq!(max.trailing_zeros(), 0);
\n
1.46.0 (const: 1.46.0) · source

pub const fn leading_ones(self) -> u32

Returns the number of leading ones in the binary representation of self.

\n
§Examples
\n

Basic usage:

\n\n
let n = !(usize::MAX >> 2);\nassert_eq!(n.leading_ones(), 2);\n\nlet zero = 0usize;\nassert_eq!(zero.leading_ones(), 0);\n\nlet max = usize::MAX;\nassert_eq!(max.leading_ones(), 64);
\n
1.46.0 (const: 1.46.0) · source

pub const fn trailing_ones(self) -> u32

Returns the number of trailing ones in the binary representation\nof self.

\n
§Examples
\n

Basic usage:

\n\n
let n = 0b1010111usize;\nassert_eq!(n.trailing_ones(), 3);\n\nlet zero = 0usize;\nassert_eq!(zero.trailing_ones(), 0);\n\nlet max = usize::MAX;\nassert_eq!(max.trailing_ones(), 64);
\n
source

pub const fn cast_signed(self) -> isize

🔬This is a nightly-only experimental API. (integer_sign_cast)

Returns the bit pattern of self reinterpreted as a signed integer of the same size.

\n

This produces the same result as an as cast, but ensures that the bit-width remains\nthe same.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(integer_sign_cast)]\n\nlet n = usize::MAX;\n\nassert_eq!(n.cast_signed(), -1isize);
\n
1.0.0 (const: 1.32.0) · source

pub const fn rotate_left(self, n: u32) -> usize

Shifts the bits to the left by a specified amount, n,\nwrapping the truncated bits to the end of the resulting integer.

\n

Please note this isn’t the same operation as the << shifting operator!

\n
§Examples
\n

Basic usage:

\n\n
let n = 0xaa00000000006e1usize;\nlet m = 0x6e10aa;\n\nassert_eq!(n.rotate_left(12), m);
\n
1.0.0 (const: 1.32.0) · source

pub const fn rotate_right(self, n: u32) -> usize

Shifts the bits to the right by a specified amount, n,\nwrapping the truncated bits to the beginning of the resulting\ninteger.

\n

Please note this isn’t the same operation as the >> shifting operator!

\n
§Examples
\n

Basic usage:

\n\n
let n = 0x6e10aausize;\nlet m = 0xaa00000000006e1;\n\nassert_eq!(n.rotate_right(12), m);
\n
1.0.0 (const: 1.32.0) · source

pub const fn swap_bytes(self) -> usize

Reverses the byte order of the integer.

\n
§Examples
\n

Basic usage:

\n\n
let n = 0x1234567890123456usize;\nlet m = n.swap_bytes();\n\nassert_eq!(m, 0x5634129078563412);
\n
1.37.0 (const: 1.37.0) · source

pub const fn reverse_bits(self) -> usize

Reverses the order of bits in the integer. The least significant bit becomes the most significant bit,\nsecond least-significant bit becomes second most-significant bit, etc.

\n
§Examples
\n

Basic usage:

\n\n
let n = 0x1234567890123456usize;\nlet m = n.reverse_bits();\n\nassert_eq!(m, 0x6a2c48091e6a2c48);\nassert_eq!(0, 0usize.reverse_bits());
\n
1.0.0 (const: 1.32.0) · source

pub const fn from_be(x: usize) -> usize

Converts an integer from big endian to the target’s endianness.

\n

On big endian this is a no-op. On little endian the bytes are\nswapped.

\n
§Examples
\n

Basic usage:

\n\n
let n = 0x1Ausize;\n\nif cfg!(target_endian = \"big\") {\n    assert_eq!(usize::from_be(n), n)\n} else {\n    assert_eq!(usize::from_be(n), n.swap_bytes())\n}
\n
1.0.0 (const: 1.32.0) · source

pub const fn from_le(x: usize) -> usize

Converts an integer from little endian to the target’s endianness.

\n

On little endian this is a no-op. On big endian the bytes are\nswapped.

\n
§Examples
\n

Basic usage:

\n\n
let n = 0x1Ausize;\n\nif cfg!(target_endian = \"little\") {\n    assert_eq!(usize::from_le(n), n)\n} else {\n    assert_eq!(usize::from_le(n), n.swap_bytes())\n}
\n
1.0.0 (const: 1.32.0) · source

pub const fn to_be(self) -> usize

Converts self to big endian from the target’s endianness.

\n

On big endian this is a no-op. On little endian the bytes are\nswapped.

\n
§Examples
\n

Basic usage:

\n\n
let n = 0x1Ausize;\n\nif cfg!(target_endian = \"big\") {\n    assert_eq!(n.to_be(), n)\n} else {\n    assert_eq!(n.to_be(), n.swap_bytes())\n}
\n
1.0.0 (const: 1.32.0) · source

pub const fn to_le(self) -> usize

Converts self to little endian from the target’s endianness.

\n

On little endian this is a no-op. On big endian the bytes are\nswapped.

\n
§Examples
\n

Basic usage:

\n\n
let n = 0x1Ausize;\n\nif cfg!(target_endian = \"little\") {\n    assert_eq!(n.to_le(), n)\n} else {\n    assert_eq!(n.to_le(), n.swap_bytes())\n}
\n
1.0.0 (const: 1.47.0) · source

pub const fn checked_add(self, rhs: usize) -> Option<usize>

Checked integer addition. Computes self + rhs, returning None\nif overflow occurred.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!((usize::MAX - 2).checked_add(1), Some(usize::MAX - 1));\nassert_eq!((usize::MAX - 2).checked_add(3), None);
\n
source

pub const fn strict_add(self, rhs: usize) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict integer addition. Computes self + rhs, panicking\nif overflow occurred.

\n
§Panics
§Overflow behavior
\n

This function will always panic on overflow, regardless of whether overflow checks are enabled.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!((usize::MAX - 2).strict_add(1), usize::MAX - 1);
\n

The following panics because of overflow:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = (usize::MAX - 2).strict_add(3);
\n
1.79.0 (const: 1.79.0) · source

pub const unsafe fn unchecked_add(self, rhs: usize) -> usize

Unchecked integer addition. Computes self + rhs, assuming overflow\ncannot occur.

\n

Calling x.unchecked_add(y) is semantically equivalent to calling\nx.checked_add(y).unwrap_unchecked().

\n

If you’re just trying to avoid the panic in debug mode, then do not\nuse this. Instead, you’re looking for wrapping_add.

\n
§Safety
\n

This results in undefined behavior when\nself + rhs > usize::MAX or self + rhs < usize::MIN,\ni.e. when checked_add would return None.

\n
1.66.0 (const: 1.66.0) · source

pub const fn checked_add_signed(self, rhs: isize) -> Option<usize>

Checked addition with a signed integer. Computes self + rhs,\nreturning None if overflow occurred.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(1usize.checked_add_signed(2), Some(3));\nassert_eq!(1usize.checked_add_signed(-2), None);\nassert_eq!((usize::MAX - 2).checked_add_signed(3), None);
\n
source

pub const fn strict_add_signed(self, rhs: isize) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict addition with a signed integer. Computes self + rhs,\npanicking if overflow occurred.

\n
§Panics
§Overflow behavior
\n

This function will always panic on overflow, regardless of whether overflow checks are enabled.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(1usize.strict_add_signed(2), 3);
\n

The following panic because of overflow:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = 1usize.strict_add_signed(-2);
\n\n
#![feature(strict_overflow_ops)]\nlet _ = (usize::MAX - 2).strict_add_signed(3);
\n
1.0.0 (const: 1.47.0) · source

pub const fn checked_sub(self, rhs: usize) -> Option<usize>

Checked integer subtraction. Computes self - rhs, returning\nNone if overflow occurred.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(1usize.checked_sub(1), Some(0));\nassert_eq!(0usize.checked_sub(1), None);
\n
source

pub const fn strict_sub(self, rhs: usize) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict integer subtraction. Computes self - rhs, panicking if\noverflow occurred.

\n
§Panics
§Overflow behavior
\n

This function will always panic on overflow, regardless of whether overflow checks are enabled.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(1usize.strict_sub(1), 0);
\n

The following panics because of overflow:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = 0usize.strict_sub(1);
\n
1.79.0 (const: 1.79.0) · source

pub const unsafe fn unchecked_sub(self, rhs: usize) -> usize

Unchecked integer subtraction. Computes self - rhs, assuming overflow\ncannot occur.

\n

Calling x.unchecked_sub(y) is semantically equivalent to calling\nx.checked_sub(y).unwrap_unchecked().

\n

If you’re just trying to avoid the panic in debug mode, then do not\nuse this. Instead, you’re looking for wrapping_sub.

\n

If you find yourself writing code like this:

\n\n
if foo >= bar {\n    // SAFETY: just checked it will not overflow\n    let diff = unsafe { foo.unchecked_sub(bar) };\n    // ... use diff ...\n}
\n

Consider changing it to

\n\n
if let Some(diff) = foo.checked_sub(bar) {\n    // ... use diff ...\n}
\n

As that does exactly the same thing – including telling the optimizer\nthat the subtraction cannot overflow – but avoids needing unsafe.

\n
§Safety
\n

This results in undefined behavior when\nself - rhs > usize::MAX or self - rhs < usize::MIN,\ni.e. when checked_sub would return None.

\n
source

pub const fn checked_signed_diff(self, rhs: usize) -> Option<isize>

🔬This is a nightly-only experimental API. (unsigned_signed_diff)

Checked integer subtraction. Computes self - rhs and checks if the result fits into an isize, returning None if overflow occurred.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(unsigned_signed_diff)]\nassert_eq!(10usize.checked_signed_diff(2), Some(8));\nassert_eq!(2usize.checked_signed_diff(10), Some(-8));\nassert_eq!(usize::MAX.checked_signed_diff(isize::MAX as usize), None);\nassert_eq!((isize::MAX as usize).checked_signed_diff(usize::MAX), Some(isize::MIN));\nassert_eq!((isize::MAX as usize + 1).checked_signed_diff(0), None);\nassert_eq!(usize::MAX.checked_signed_diff(usize::MAX), Some(0));
\n
1.0.0 (const: 1.47.0) · source

pub const fn checked_mul(self, rhs: usize) -> Option<usize>

Checked integer multiplication. Computes self * rhs, returning\nNone if overflow occurred.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(5usize.checked_mul(1), Some(5));\nassert_eq!(usize::MAX.checked_mul(2), None);
\n
source

pub const fn strict_mul(self, rhs: usize) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict integer multiplication. Computes self * rhs, panicking if\noverflow occurred.

\n
§Panics
§Overflow behavior
\n

This function will always panic on overflow, regardless of whether overflow checks are enabled.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(5usize.strict_mul(1), 5);
\n

The following panics because of overflow:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = usize::MAX.strict_mul(2);
\n
1.79.0 (const: 1.79.0) · source

pub const unsafe fn unchecked_mul(self, rhs: usize) -> usize

Unchecked integer multiplication. Computes self * rhs, assuming overflow\ncannot occur.

\n

Calling x.unchecked_mul(y) is semantically equivalent to calling\nx.checked_mul(y).unwrap_unchecked().

\n

If you’re just trying to avoid the panic in debug mode, then do not\nuse this. Instead, you’re looking for wrapping_mul.

\n
§Safety
\n

This results in undefined behavior when\nself * rhs > usize::MAX or self * rhs < usize::MIN,\ni.e. when checked_mul would return None.

\n
1.0.0 (const: 1.52.0) · source

pub const fn checked_div(self, rhs: usize) -> Option<usize>

Checked integer division. Computes self / rhs, returning None\nif rhs == 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(128usize.checked_div(2), Some(64));\nassert_eq!(1usize.checked_div(0), None);
\n
source

pub const fn strict_div(self, rhs: usize) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict integer division. Computes self / rhs.

\n

Strict division on unsigned types is just normal division. There’s no\nway overflow could ever happen. This function exists so that all\noperations are accounted for in the strict operations.

\n
§Panics
\n

This function will panic if rhs is zero.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(100usize.strict_div(10), 10);
\n

The following panics because of division by zero:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = (1usize).strict_div(0);
\n
1.38.0 (const: 1.52.0) · source

pub const fn checked_div_euclid(self, rhs: usize) -> Option<usize>

Checked Euclidean division. Computes self.div_euclid(rhs), returning None\nif rhs == 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(128usize.checked_div_euclid(2), Some(64));\nassert_eq!(1usize.checked_div_euclid(0), None);
\n
source

pub const fn strict_div_euclid(self, rhs: usize) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict Euclidean division. Computes self.div_euclid(rhs).

\n

Strict division on unsigned types is just normal division. There’s no\nway overflow could ever happen. This function exists so that all\noperations are accounted for in the strict operations. Since, for the\npositive integers, all common definitions of division are equal, this\nis exactly equal to self.strict_div(rhs).

\n
§Panics
\n

This function will panic if rhs is zero.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(100usize.strict_div_euclid(10), 10);
\n

The following panics because of division by zero:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = (1usize).strict_div_euclid(0);
\n
1.7.0 (const: 1.52.0) · source

pub const fn checked_rem(self, rhs: usize) -> Option<usize>

Checked integer remainder. Computes self % rhs, returning None\nif rhs == 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(5usize.checked_rem(2), Some(1));\nassert_eq!(5usize.checked_rem(0), None);
\n
source

pub const fn strict_rem(self, rhs: usize) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict integer remainder. Computes self % rhs.

\n

Strict remainder calculation on unsigned types is just the regular\nremainder calculation. There’s no way overflow could ever happen.\nThis function exists so that all operations are accounted for in the\nstrict operations.

\n
§Panics
\n

This function will panic if rhs is zero.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(100usize.strict_rem(10), 0);
\n

The following panics because of division by zero:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = 5usize.strict_rem(0);
\n
1.38.0 (const: 1.52.0) · source

pub const fn checked_rem_euclid(self, rhs: usize) -> Option<usize>

Checked Euclidean modulo. Computes self.rem_euclid(rhs), returning None\nif rhs == 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(5usize.checked_rem_euclid(2), Some(1));\nassert_eq!(5usize.checked_rem_euclid(0), None);
\n
source

pub const fn strict_rem_euclid(self, rhs: usize) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict Euclidean modulo. Computes self.rem_euclid(rhs).

\n

Strict modulo calculation on unsigned types is just the regular\nremainder calculation. There’s no way overflow could ever happen.\nThis function exists so that all operations are accounted for in the\nstrict operations. Since, for the positive integers, all common\ndefinitions of division are equal, this is exactly equal to\nself.strict_rem(rhs).

\n
§Panics
\n

This function will panic if rhs is zero.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(100usize.strict_rem_euclid(10), 0);
\n

The following panics because of division by zero:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = 5usize.strict_rem_euclid(0);
\n
1.67.0 (const: 1.67.0) · source

pub const fn ilog(self, base: usize) -> u32

Returns the logarithm of the number with respect to an arbitrary base,\nrounded down.

\n

This method might not be optimized owing to implementation details;\nilog2 can produce results more efficiently for base 2, and ilog10\ncan produce results more efficiently for base 10.

\n
§Panics
\n

This function will panic if self is zero, or if base is less than 2.

\n
§Examples
\n
assert_eq!(5usize.ilog(5), 1);
\n
1.67.0 (const: 1.67.0) · source

pub const fn ilog2(self) -> u32

Returns the base 2 logarithm of the number, rounded down.

\n
§Panics
\n

This function will panic if self is zero.

\n
§Examples
\n
assert_eq!(2usize.ilog2(), 1);
\n
1.67.0 (const: 1.67.0) · source

pub const fn ilog10(self) -> u32

Returns the base 10 logarithm of the number, rounded down.

\n
§Panics
\n

This function will panic if self is zero.

\n
§Example
\n
assert_eq!(10usize.ilog10(), 1);
\n
1.67.0 (const: 1.67.0) · source

pub const fn checked_ilog(self, base: usize) -> Option<u32>

Returns the logarithm of the number with respect to an arbitrary base,\nrounded down.

\n

Returns None if the number is zero, or if the base is not at least 2.

\n

This method might not be optimized owing to implementation details;\nchecked_ilog2 can produce results more efficiently for base 2, and\nchecked_ilog10 can produce results more efficiently for base 10.

\n
§Examples
\n
assert_eq!(5usize.checked_ilog(5), Some(1));
\n
1.67.0 (const: 1.67.0) · source

pub const fn checked_ilog2(self) -> Option<u32>

Returns the base 2 logarithm of the number, rounded down.

\n

Returns None if the number is zero.

\n
§Examples
\n
assert_eq!(2usize.checked_ilog2(), Some(1));
\n
1.67.0 (const: 1.67.0) · source

pub const fn checked_ilog10(self) -> Option<u32>

Returns the base 10 logarithm of the number, rounded down.

\n

Returns None if the number is zero.

\n
§Examples
\n
assert_eq!(10usize.checked_ilog10(), Some(1));
\n
1.7.0 (const: 1.47.0) · source

pub const fn checked_neg(self) -> Option<usize>

Checked negation. Computes -self, returning None unless self == 0.

\n

Note that negating any positive integer will overflow.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(0usize.checked_neg(), Some(0));\nassert_eq!(1usize.checked_neg(), None);
\n
source

pub const fn strict_neg(self) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict negation. Computes -self, panicking unless self == 0.

\n

Note that negating any positive integer will overflow.

\n
§Panics
§Overflow behavior
\n

This function will always panic on overflow, regardless of whether overflow checks are enabled.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(0usize.strict_neg(), 0);
\n

The following panics because of overflow:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = 1usize.strict_neg();
\n
1.7.0 (const: 1.47.0) · source

pub const fn checked_shl(self, rhs: u32) -> Option<usize>

Checked shift left. Computes self << rhs, returning None\nif rhs is larger than or equal to the number of bits in self.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(0x1usize.checked_shl(4), Some(0x10));\nassert_eq!(0x10usize.checked_shl(129), None);\nassert_eq!(0x10usize.checked_shl(63), Some(0));
\n
source

pub const fn strict_shl(self, rhs: u32) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict shift left. Computes self << rhs, panicking if rhs is larger\nthan or equal to the number of bits in self.

\n
§Panics
§Overflow behavior
\n

This function will always panic on overflow, regardless of whether overflow checks are enabled.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(0x1usize.strict_shl(4), 0x10);
\n

The following panics because of overflow:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = 0x10usize.strict_shl(129);
\n
source

pub const unsafe fn unchecked_shl(self, rhs: u32) -> usize

🔬This is a nightly-only experimental API. (unchecked_shifts)

Unchecked shift left. Computes self << rhs, assuming that\nrhs is less than the number of bits in self.

\n
§Safety
\n

This results in undefined behavior if rhs is larger than\nor equal to the number of bits in self,\ni.e. when checked_shl would return None.

\n
source

pub const fn unbounded_shl(self, rhs: u32) -> usize

🔬This is a nightly-only experimental API. (unbounded_shifts)

Unbounded shift left. Computes self << rhs, without bounding the value of rhs

\n

If rhs is larger or equal to the number of bits in self,\nthe entire value is shifted out, and 0 is returned.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(unbounded_shifts)]\nassert_eq!(0x1usize.unbounded_shl(4), 0x10);\nassert_eq!(0x1usize.unbounded_shl(129), 0);
\n
1.7.0 (const: 1.47.0) · source

pub const fn checked_shr(self, rhs: u32) -> Option<usize>

Checked shift right. Computes self >> rhs, returning None\nif rhs is larger than or equal to the number of bits in self.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(0x10usize.checked_shr(4), Some(0x1));\nassert_eq!(0x10usize.checked_shr(129), None);
\n
source

pub const fn strict_shr(self, rhs: u32) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict shift right. Computes self >> rhs, panicking rhs is\nlarger than or equal to the number of bits in self.

\n
§Panics
§Overflow behavior
\n

This function will always panic on overflow, regardless of whether overflow checks are enabled.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(0x10usize.strict_shr(4), 0x1);
\n

The following panics because of overflow:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = 0x10usize.strict_shr(129);
\n
source

pub const unsafe fn unchecked_shr(self, rhs: u32) -> usize

🔬This is a nightly-only experimental API. (unchecked_shifts)

Unchecked shift right. Computes self >> rhs, assuming that\nrhs is less than the number of bits in self.

\n
§Safety
\n

This results in undefined behavior if rhs is larger than\nor equal to the number of bits in self,\ni.e. when checked_shr would return None.

\n
source

pub const fn unbounded_shr(self, rhs: u32) -> usize

🔬This is a nightly-only experimental API. (unbounded_shifts)

Unbounded shift right. Computes self >> rhs, without bounding the value of rhs

\n

If rhs is larger or equal to the number of bits in self,\nthe entire value is shifted out, and 0 is returned.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(unbounded_shifts)]\nassert_eq!(0x10usize.unbounded_shr(4), 0x1);\nassert_eq!(0x10usize.unbounded_shr(129), 0);
\n
1.34.0 (const: 1.50.0) · source

pub const fn checked_pow(self, exp: u32) -> Option<usize>

Checked exponentiation. Computes self.pow(exp), returning None if\noverflow occurred.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(2usize.checked_pow(5), Some(32));\nassert_eq!(usize::MAX.checked_pow(2), None);
\n
source

pub const fn strict_pow(self, exp: u32) -> usize

🔬This is a nightly-only experimental API. (strict_overflow_ops)

Strict exponentiation. Computes self.pow(exp), panicking if\noverflow occurred.

\n
§Panics
§Overflow behavior
\n

This function will always panic on overflow, regardless of whether overflow checks are enabled.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(strict_overflow_ops)]\nassert_eq!(2usize.strict_pow(5), 32);
\n

The following panics because of overflow:

\n\n
#![feature(strict_overflow_ops)]\nlet _ = usize::MAX.strict_pow(2);
\n
1.0.0 (const: 1.47.0) · source

pub const fn saturating_add(self, rhs: usize) -> usize

Saturating integer addition. Computes self + rhs, saturating at\nthe numeric bounds instead of overflowing.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(100usize.saturating_add(1), 101);\nassert_eq!(usize::MAX.saturating_add(127), usize::MAX);
\n
1.66.0 (const: 1.66.0) · source

pub const fn saturating_add_signed(self, rhs: isize) -> usize

Saturating addition with a signed integer. Computes self + rhs,\nsaturating at the numeric bounds instead of overflowing.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(1usize.saturating_add_signed(2), 3);\nassert_eq!(1usize.saturating_add_signed(-2), 0);\nassert_eq!((usize::MAX - 2).saturating_add_signed(4), usize::MAX);
\n
1.0.0 (const: 1.47.0) · source

pub const fn saturating_sub(self, rhs: usize) -> usize

Saturating integer subtraction. Computes self - rhs, saturating\nat the numeric bounds instead of overflowing.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(100usize.saturating_sub(27), 73);\nassert_eq!(13usize.saturating_sub(127), 0);
\n
1.7.0 (const: 1.47.0) · source

pub const fn saturating_mul(self, rhs: usize) -> usize

Saturating integer multiplication. Computes self * rhs,\nsaturating at the numeric bounds instead of overflowing.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(2usize.saturating_mul(10), 20);\nassert_eq!((usize::MAX).saturating_mul(10), usize::MAX);
\n
1.58.0 (const: 1.58.0) · source

pub const fn saturating_div(self, rhs: usize) -> usize

Saturating integer division. Computes self / rhs, saturating at the\nnumeric bounds instead of overflowing.

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(5usize.saturating_div(2), 2);\n
\n
1.34.0 (const: 1.50.0) · source

pub const fn saturating_pow(self, exp: u32) -> usize

Saturating integer exponentiation. Computes self.pow(exp),\nsaturating at the numeric bounds instead of overflowing.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(4usize.saturating_pow(3), 64);\nassert_eq!(usize::MAX.saturating_pow(2), usize::MAX);
\n
1.0.0 (const: 1.32.0) · source

pub const fn wrapping_add(self, rhs: usize) -> usize

Wrapping (modular) addition. Computes self + rhs,\nwrapping around at the boundary of the type.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(200usize.wrapping_add(55), 255);\nassert_eq!(200usize.wrapping_add(usize::MAX), 199);
\n
1.66.0 (const: 1.66.0) · source

pub const fn wrapping_add_signed(self, rhs: isize) -> usize

Wrapping (modular) addition with a signed integer. Computes\nself + rhs, wrapping around at the boundary of the type.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(1usize.wrapping_add_signed(2), 3);\nassert_eq!(1usize.wrapping_add_signed(-2), usize::MAX);\nassert_eq!((usize::MAX - 2).wrapping_add_signed(4), 1);
\n
1.0.0 (const: 1.32.0) · source

pub const fn wrapping_sub(self, rhs: usize) -> usize

Wrapping (modular) subtraction. Computes self - rhs,\nwrapping around at the boundary of the type.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(100usize.wrapping_sub(100), 0);\nassert_eq!(100usize.wrapping_sub(usize::MAX), 101);
\n
1.0.0 (const: 1.32.0) · source

pub const fn wrapping_mul(self, rhs: usize) -> usize

Wrapping (modular) multiplication. Computes self * rhs, wrapping around at the boundary of the type.

\n
§Examples
\n

Basic usage:

\n

Please note that this example is shared between integer types.\nWhich explains why u8 is used here.

\n\n
assert_eq!(10u8.wrapping_mul(12), 120);\nassert_eq!(25u8.wrapping_mul(12), 44);
\n
1.2.0 (const: 1.52.0) · source

pub const fn wrapping_div(self, rhs: usize) -> usize

Wrapping (modular) division. Computes self / rhs.

\n

Wrapped division on unsigned types is just normal division. There’s\nno way wrapping could ever happen. This function exists so that all\noperations are accounted for in the wrapping operations.

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(100usize.wrapping_div(10), 10);
\n
1.38.0 (const: 1.52.0) · source

pub const fn wrapping_div_euclid(self, rhs: usize) -> usize

Wrapping Euclidean division. Computes self.div_euclid(rhs).

\n

Wrapped division on unsigned types is just normal division. There’s\nno way wrapping could ever happen. This function exists so that all\noperations are accounted for in the wrapping operations. Since, for\nthe positive integers, all common definitions of division are equal,\nthis is exactly equal to self.wrapping_div(rhs).

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(100usize.wrapping_div_euclid(10), 10);
\n
1.2.0 (const: 1.52.0) · source

pub const fn wrapping_rem(self, rhs: usize) -> usize

Wrapping (modular) remainder. Computes self % rhs.

\n

Wrapped remainder calculation on unsigned types is just the regular\nremainder calculation. There’s no way wrapping could ever happen.\nThis function exists so that all operations are accounted for in the\nwrapping operations.

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(100usize.wrapping_rem(10), 0);
\n
1.38.0 (const: 1.52.0) · source

pub const fn wrapping_rem_euclid(self, rhs: usize) -> usize

Wrapping Euclidean modulo. Computes self.rem_euclid(rhs).

\n

Wrapped modulo calculation on unsigned types is just the regular\nremainder calculation. There’s no way wrapping could ever happen.\nThis function exists so that all operations are accounted for in the\nwrapping operations. Since, for the positive integers, all common\ndefinitions of division are equal, this is exactly equal to\nself.wrapping_rem(rhs).

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(100usize.wrapping_rem_euclid(10), 0);
\n
1.2.0 (const: 1.32.0) · source

pub const fn wrapping_neg(self) -> usize

Wrapping (modular) negation. Computes -self,\nwrapping around at the boundary of the type.

\n

Since unsigned types do not have negative equivalents\nall applications of this function will wrap (except for -0).\nFor values smaller than the corresponding signed type’s maximum\nthe result is the same as casting the corresponding signed value.\nAny larger values are equivalent to MAX + 1 - (val - MAX - 1) where\nMAX is the corresponding signed type’s maximum.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(0_usize.wrapping_neg(), 0);\nassert_eq!(usize::MAX.wrapping_neg(), 1);\nassert_eq!(13_usize.wrapping_neg(), (!13) + 1);\nassert_eq!(42_usize.wrapping_neg(), !(42 - 1));
\n
1.2.0 (const: 1.32.0) · source

pub const fn wrapping_shl(self, rhs: u32) -> usize

Panic-free bitwise shift-left; yields self << mask(rhs),\nwhere mask removes any high-order bits of rhs that\nwould cause the shift to exceed the bitwidth of the type.

\n

Note that this is not the same as a rotate-left; the\nRHS of a wrapping shift-left is restricted to the range\nof the type, rather than the bits shifted out of the LHS\nbeing returned to the other end. The primitive integer\ntypes all implement a rotate_left function,\nwhich may be what you want instead.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(1usize.wrapping_shl(7), 128);\nassert_eq!(1usize.wrapping_shl(128), 1);
\n
1.2.0 (const: 1.32.0) · source

pub const fn wrapping_shr(self, rhs: u32) -> usize

Panic-free bitwise shift-right; yields self >> mask(rhs),\nwhere mask removes any high-order bits of rhs that\nwould cause the shift to exceed the bitwidth of the type.

\n

Note that this is not the same as a rotate-right; the\nRHS of a wrapping shift-right is restricted to the range\nof the type, rather than the bits shifted out of the LHS\nbeing returned to the other end. The primitive integer\ntypes all implement a rotate_right function,\nwhich may be what you want instead.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(128usize.wrapping_shr(7), 1);\nassert_eq!(128usize.wrapping_shr(128), 128);
\n
1.34.0 (const: 1.50.0) · source

pub const fn wrapping_pow(self, exp: u32) -> usize

Wrapping (modular) exponentiation. Computes self.pow(exp),\nwrapping around at the boundary of the type.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(3usize.wrapping_pow(5), 243);\nassert_eq!(3u8.wrapping_pow(6), 217);
\n
1.7.0 (const: 1.32.0) · source

pub const fn overflowing_add(self, rhs: usize) -> (usize, bool)

Calculates self + rhs.

\n

Returns a tuple of the addition along with a boolean indicating\nwhether an arithmetic overflow would occur. If an overflow would\nhave occurred then the wrapped value is returned.

\n
§Examples
\n

Basic usage

\n\n
assert_eq!(5usize.overflowing_add(2), (7, false));\nassert_eq!(usize::MAX.overflowing_add(1), (0, true));
\n
source

pub const fn carrying_add(self, rhs: usize, carry: bool) -> (usize, bool)

🔬This is a nightly-only experimental API. (bigint_helper_methods)

Calculates self + rhs + carry and returns a tuple containing\nthe sum and the output carry.

\n

Performs “ternary addition” of two integer operands and a carry-in\nbit, and returns an output integer and a carry-out bit. This allows\nchaining together multiple additions to create a wider addition, and\ncan be useful for bignum addition.

\n

This can be thought of as a 64-bit “full adder”, in the electronics sense.

\n

If the input carry is false, this method is equivalent to\noverflowing_add, and the output carry is\nequal to the overflow flag. Note that although carry and overflow\nflags are similar for unsigned integers, they are different for\nsigned integers.

\n
§Examples
\n
#![feature(bigint_helper_methods)]\n\n//    3  MAX    (a = 3 × 2^64 + 2^64 - 1)\n// +  5    7    (b = 5 × 2^64 + 7)\n// ---------\n//    9    6    (sum = 9 × 2^64 + 6)\n\nlet (a1, a0): (usize, usize) = (3, usize::MAX);\nlet (b1, b0): (usize, usize) = (5, 7);\nlet carry0 = false;\n\nlet (sum0, carry1) = a0.carrying_add(b0, carry0);\nassert_eq!(carry1, true);\nlet (sum1, carry2) = a1.carrying_add(b1, carry1);\nassert_eq!(carry2, false);\n\nassert_eq!((sum1, sum0), (9, 6));
\n
1.66.0 (const: 1.66.0) · source

pub const fn overflowing_add_signed(self, rhs: isize) -> (usize, bool)

Calculates self + rhs with a signed rhs.

\n

Returns a tuple of the addition along with a boolean indicating\nwhether an arithmetic overflow would occur. If an overflow would\nhave occurred then the wrapped value is returned.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(1usize.overflowing_add_signed(2), (3, false));\nassert_eq!(1usize.overflowing_add_signed(-2), (usize::MAX, true));\nassert_eq!((usize::MAX - 2).overflowing_add_signed(4), (1, true));
\n
1.7.0 (const: 1.32.0) · source

pub const fn overflowing_sub(self, rhs: usize) -> (usize, bool)

Calculates self - rhs

\n

Returns a tuple of the subtraction along with a boolean indicating\nwhether an arithmetic overflow would occur. If an overflow would\nhave occurred then the wrapped value is returned.

\n
§Examples
\n

Basic usage

\n\n
assert_eq!(5usize.overflowing_sub(2), (3, false));\nassert_eq!(0usize.overflowing_sub(1), (usize::MAX, true));
\n
source

pub const fn borrowing_sub(self, rhs: usize, borrow: bool) -> (usize, bool)

🔬This is a nightly-only experimental API. (bigint_helper_methods)

Calculates selfrhsborrow and returns a tuple\ncontaining the difference and the output borrow.

\n

Performs “ternary subtraction” by subtracting both an integer\noperand and a borrow-in bit from self, and returns an output\ninteger and a borrow-out bit. This allows chaining together multiple\nsubtractions to create a wider subtraction, and can be useful for\nbignum subtraction.

\n
§Examples
\n
#![feature(bigint_helper_methods)]\n\n//    9    6    (a = 9 × 2^64 + 6)\n// -  5    7    (b = 5 × 2^64 + 7)\n// ---------\n//    3  MAX    (diff = 3 × 2^64 + 2^64 - 1)\n\nlet (a1, a0): (usize, usize) = (9, 6);\nlet (b1, b0): (usize, usize) = (5, 7);\nlet borrow0 = false;\n\nlet (diff0, borrow1) = a0.borrowing_sub(b0, borrow0);\nassert_eq!(borrow1, true);\nlet (diff1, borrow2) = a1.borrowing_sub(b1, borrow1);\nassert_eq!(borrow2, false);\n\nassert_eq!((diff1, diff0), (3, usize::MAX));
\n
1.60.0 (const: 1.60.0) · source

pub const fn abs_diff(self, other: usize) -> usize

Computes the absolute difference between self and other.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(100usize.abs_diff(80), 20usize);\nassert_eq!(100usize.abs_diff(110), 10usize);
\n
1.7.0 (const: 1.32.0) · source

pub const fn overflowing_mul(self, rhs: usize) -> (usize, bool)

Calculates the multiplication of self and rhs.

\n

Returns a tuple of the multiplication along with a boolean\nindicating whether an arithmetic overflow would occur. If an\noverflow would have occurred then the wrapped value is returned.

\n
§Examples
\n

Basic usage:

\n

Please note that this example is shared between integer types.\nWhich explains why u32 is used here.

\n\n
assert_eq!(5u32.overflowing_mul(2), (10, false));\nassert_eq!(1_000_000_000u32.overflowing_mul(10), (1410065408, true));
\n
1.7.0 (const: 1.52.0) · source

pub const fn overflowing_div(self, rhs: usize) -> (usize, bool)

Calculates the divisor when self is divided by rhs.

\n

Returns a tuple of the divisor along with a boolean indicating\nwhether an arithmetic overflow would occur. Note that for unsigned\nintegers overflow never occurs, so the second value is always\nfalse.

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage

\n\n
assert_eq!(5usize.overflowing_div(2), (2, false));
\n
1.38.0 (const: 1.52.0) · source

pub const fn overflowing_div_euclid(self, rhs: usize) -> (usize, bool)

Calculates the quotient of Euclidean division self.div_euclid(rhs).

\n

Returns a tuple of the divisor along with a boolean indicating\nwhether an arithmetic overflow would occur. Note that for unsigned\nintegers overflow never occurs, so the second value is always\nfalse.\nSince, for the positive integers, all common\ndefinitions of division are equal, this\nis exactly equal to self.overflowing_div(rhs).

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage

\n\n
assert_eq!(5usize.overflowing_div_euclid(2), (2, false));
\n
1.7.0 (const: 1.52.0) · source

pub const fn overflowing_rem(self, rhs: usize) -> (usize, bool)

Calculates the remainder when self is divided by rhs.

\n

Returns a tuple of the remainder after dividing along with a boolean\nindicating whether an arithmetic overflow would occur. Note that for\nunsigned integers overflow never occurs, so the second value is\nalways false.

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage

\n\n
assert_eq!(5usize.overflowing_rem(2), (1, false));
\n
1.38.0 (const: 1.52.0) · source

pub const fn overflowing_rem_euclid(self, rhs: usize) -> (usize, bool)

Calculates the remainder self.rem_euclid(rhs) as if by Euclidean division.

\n

Returns a tuple of the modulo after dividing along with a boolean\nindicating whether an arithmetic overflow would occur. Note that for\nunsigned integers overflow never occurs, so the second value is\nalways false.\nSince, for the positive integers, all common\ndefinitions of division are equal, this operation\nis exactly equal to self.overflowing_rem(rhs).

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage

\n\n
assert_eq!(5usize.overflowing_rem_euclid(2), (1, false));
\n
1.7.0 (const: 1.32.0) · source

pub const fn overflowing_neg(self) -> (usize, bool)

Negates self in an overflowing fashion.

\n

Returns !self + 1 using wrapping operations to return the value\nthat represents the negation of this unsigned value. Note that for\npositive unsigned values overflow always occurs, but negating 0 does\nnot overflow.

\n
§Examples
\n

Basic usage

\n\n
assert_eq!(0usize.overflowing_neg(), (0, false));\nassert_eq!(2usize.overflowing_neg(), (-2i32 as usize, true));
\n
1.7.0 (const: 1.32.0) · source

pub const fn overflowing_shl(self, rhs: u32) -> (usize, bool)

Shifts self left by rhs bits.

\n

Returns a tuple of the shifted version of self along with a boolean\nindicating whether the shift value was larger than or equal to the\nnumber of bits. If the shift value is too large, then value is\nmasked (N-1) where N is the number of bits, and this value is then\nused to perform the shift.

\n
§Examples
\n

Basic usage

\n\n
assert_eq!(0x1usize.overflowing_shl(4), (0x10, false));\nassert_eq!(0x1usize.overflowing_shl(132), (0x10, true));\nassert_eq!(0x10usize.overflowing_shl(63), (0, false));
\n
1.7.0 (const: 1.32.0) · source

pub const fn overflowing_shr(self, rhs: u32) -> (usize, bool)

Shifts self right by rhs bits.

\n

Returns a tuple of the shifted version of self along with a boolean\nindicating whether the shift value was larger than or equal to the\nnumber of bits. If the shift value is too large, then value is\nmasked (N-1) where N is the number of bits, and this value is then\nused to perform the shift.

\n
§Examples
\n

Basic usage

\n\n
assert_eq!(0x10usize.overflowing_shr(4), (0x1, false));\nassert_eq!(0x10usize.overflowing_shr(132), (0x1, true));
\n
1.34.0 (const: 1.50.0) · source

pub const fn overflowing_pow(self, exp: u32) -> (usize, bool)

Raises self to the power of exp, using exponentiation by squaring.

\n

Returns a tuple of the exponentiation along with a bool indicating\nwhether an overflow happened.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(3usize.overflowing_pow(5), (243, false));\nassert_eq!(3u8.overflowing_pow(6), (217, true));
\n
1.0.0 (const: 1.50.0) · source

pub const fn pow(self, exp: u32) -> usize

Raises self to the power of exp, using exponentiation by squaring.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(2usize.pow(5), 32);
\n
source

pub const fn isqrt(self) -> usize

🔬This is a nightly-only experimental API. (isqrt)

Returns the square root of the number, rounded down.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(isqrt)]\nassert_eq!(10usize.isqrt(), 3);
\n
1.38.0 (const: 1.52.0) · source

pub const fn div_euclid(self, rhs: usize) -> usize

Performs Euclidean division.

\n

Since, for the positive integers, all common\ndefinitions of division are equal, this\nis exactly equal to self / rhs.

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(7usize.div_euclid(4), 1); // or any other integer type
\n
1.38.0 (const: 1.52.0) · source

pub const fn rem_euclid(self, rhs: usize) -> usize

Calculates the least remainder of self (mod rhs).

\n

Since, for the positive integers, all common\ndefinitions of division are equal, this\nis exactly equal to self % rhs.

\n
§Panics
\n

This function will panic if rhs is 0.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(7usize.rem_euclid(4), 3); // or any other integer type
\n
source

pub const fn div_floor(self, rhs: usize) -> usize

🔬This is a nightly-only experimental API. (int_roundings)

Calculates the quotient of self and rhs, rounding the result towards negative infinity.

\n

This is the same as performing self / rhs for all unsigned integers.

\n
§Panics
\n

This function will panic if rhs is zero.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(int_roundings)]\nassert_eq!(7_usize.div_floor(4), 1);
\n
1.73.0 (const: 1.73.0) · source

pub const fn div_ceil(self, rhs: usize) -> usize

Calculates the quotient of self and rhs, rounding the result towards positive infinity.

\n
§Panics
\n

This function will panic if rhs is zero.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(7_usize.div_ceil(4), 2);
\n
1.73.0 (const: 1.73.0) · source

pub const fn next_multiple_of(self, rhs: usize) -> usize

Calculates the smallest value greater than or equal to self that\nis a multiple of rhs.

\n
§Panics
\n

This function will panic if rhs is zero.

\n
§Overflow behavior
\n

On overflow, this function will panic if overflow checks are enabled (default in debug\nmode) and wrap if overflow checks are disabled (default in release mode).

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(16_usize.next_multiple_of(8), 16);\nassert_eq!(23_usize.next_multiple_of(8), 24);
\n
1.73.0 (const: 1.73.0) · source

pub const fn checked_next_multiple_of(self, rhs: usize) -> Option<usize>

Calculates the smallest value greater than or equal to self that\nis a multiple of rhs. Returns None if rhs is zero or the\noperation would result in overflow.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(16_usize.checked_next_multiple_of(8), Some(16));\nassert_eq!(23_usize.checked_next_multiple_of(8), Some(24));\nassert_eq!(1_usize.checked_next_multiple_of(0), None);\nassert_eq!(usize::MAX.checked_next_multiple_of(2), None);
\n
source

pub const fn is_multiple_of(self, rhs: usize) -> bool

🔬This is a nightly-only experimental API. (unsigned_is_multiple_of)

Returns true if self is an integer multiple of rhs, and false otherwise.

\n

This function is equivalent to self % rhs == 0, except that it will not panic\nfor rhs == 0. Instead, 0.is_multiple_of(0) == true, and for any non-zero n,\nn.is_multiple_of(0) == false.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(unsigned_is_multiple_of)]\nassert!(6_usize.is_multiple_of(2));\nassert!(!5_usize.is_multiple_of(2));\n\nassert!(0_usize.is_multiple_of(0));\nassert!(!6_usize.is_multiple_of(0));
\n
1.0.0 (const: 1.32.0) · source

pub const fn is_power_of_two(self) -> bool

Returns true if and only if self == 2^k for some k.

\n
§Examples
\n

Basic usage:

\n\n
assert!(16usize.is_power_of_two());\nassert!(!10usize.is_power_of_two());
\n
1.0.0 (const: 1.50.0) · source

pub const fn next_power_of_two(self) -> usize

Returns the smallest power of two greater than or equal to self.

\n

When return value overflows (i.e., self > (1 << (N-1)) for type\nuN), it panics in debug mode and the return value is wrapped to 0 in\nrelease mode (the only situation in which this method can return 0).

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(2usize.next_power_of_two(), 2);\nassert_eq!(3usize.next_power_of_two(), 4);\nassert_eq!(0usize.next_power_of_two(), 1);
\n
1.0.0 (const: 1.50.0) · source

pub const fn checked_next_power_of_two(self) -> Option<usize>

Returns the smallest power of two greater than or equal to self. If\nthe next power of two is greater than the type’s maximum value,\nNone is returned, otherwise the power of two is wrapped in Some.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(2usize.checked_next_power_of_two(), Some(2));\nassert_eq!(3usize.checked_next_power_of_two(), Some(4));\nassert_eq!(usize::MAX.checked_next_power_of_two(), None);
\n
source

pub const fn wrapping_next_power_of_two(self) -> usize

🔬This is a nightly-only experimental API. (wrapping_next_power_of_two)

Returns the smallest power of two greater than or equal to n. If\nthe next power of two is greater than the type’s maximum value,\nthe return value is wrapped to 0.

\n
§Examples
\n

Basic usage:

\n\n
#![feature(wrapping_next_power_of_two)]\n\nassert_eq!(2usize.wrapping_next_power_of_two(), 2);\nassert_eq!(3usize.wrapping_next_power_of_two(), 4);\nassert_eq!(usize::MAX.wrapping_next_power_of_two(), 0);
\n
1.32.0 (const: 1.44.0) · source

pub const fn to_be_bytes(self) -> [u8; 8]

Returns the memory representation of this integer as a byte array in\nbig-endian (network) byte order.

\n

Note: This function returns an array of length 2, 4 or 8 bytes\ndepending on the target pointer size.

\n
§Examples
\n
let bytes = 0x1234567890123456usize.to_be_bytes();\nassert_eq!(bytes, [0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]);
\n
1.32.0 (const: 1.44.0) · source

pub const fn to_le_bytes(self) -> [u8; 8]

Returns the memory representation of this integer as a byte array in\nlittle-endian byte order.

\n

Note: This function returns an array of length 2, 4 or 8 bytes\ndepending on the target pointer size.

\n
§Examples
\n
let bytes = 0x1234567890123456usize.to_le_bytes();\nassert_eq!(bytes, [0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]);
\n
1.32.0 (const: 1.44.0) · source

pub const fn to_ne_bytes(self) -> [u8; 8]

Returns the memory representation of this integer as a byte array in\nnative byte order.

\n

As the target platform’s native endianness is used, portable code\nshould use to_be_bytes or to_le_bytes, as appropriate,\ninstead.

\n

Note: This function returns an array of length 2, 4 or 8 bytes\ndepending on the target pointer size.

\n
§Examples
\n
let bytes = 0x1234567890123456usize.to_ne_bytes();\nassert_eq!(\n    bytes,\n    if cfg!(target_endian = \"big\") {\n        [0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]\n    } else {\n        [0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]\n    }\n);
\n
1.32.0 (const: 1.44.0) · source

pub const fn from_be_bytes(bytes: [u8; 8]) -> usize

Creates a native endian integer value from its representation\nas a byte array in big endian.

\n

Note: This function takes an array of length 2, 4 or 8 bytes\ndepending on the target pointer size.

\n
§Examples
\n
let value = usize::from_be_bytes([0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]);\nassert_eq!(value, 0x1234567890123456);
\n

When starting from a slice rather than an array, fallible conversion APIs can be used:

\n\n
fn read_be_usize(input: &mut &[u8]) -> usize {\n    let (int_bytes, rest) = input.split_at(std::mem::size_of::<usize>());\n    *input = rest;\n    usize::from_be_bytes(int_bytes.try_into().unwrap())\n}
\n
1.32.0 (const: 1.44.0) · source

pub const fn from_le_bytes(bytes: [u8; 8]) -> usize

Creates a native endian integer value from its representation\nas a byte array in little endian.

\n

Note: This function takes an array of length 2, 4 or 8 bytes\ndepending on the target pointer size.

\n
§Examples
\n
let value = usize::from_le_bytes([0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]);\nassert_eq!(value, 0x1234567890123456);
\n

When starting from a slice rather than an array, fallible conversion APIs can be used:

\n\n
fn read_le_usize(input: &mut &[u8]) -> usize {\n    let (int_bytes, rest) = input.split_at(std::mem::size_of::<usize>());\n    *input = rest;\n    usize::from_le_bytes(int_bytes.try_into().unwrap())\n}
\n
1.32.0 (const: 1.44.0) · source

pub const fn from_ne_bytes(bytes: [u8; 8]) -> usize

Creates a native endian integer value from its memory representation\nas a byte array in native endianness.

\n

As the target platform’s native endianness is used, portable code\nlikely wants to use from_be_bytes or from_le_bytes, as\nappropriate instead.

\n

Note: This function takes an array of length 2, 4 or 8 bytes\ndepending on the target pointer size.

\n
§Examples
\n
let value = usize::from_ne_bytes(if cfg!(target_endian = \"big\") {\n    [0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]\n} else {\n    [0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]\n});\nassert_eq!(value, 0x1234567890123456);
\n

When starting from a slice rather than an array, fallible conversion APIs can be used:

\n\n
fn read_ne_usize(input: &mut &[u8]) -> usize {\n    let (int_bytes, rest) = input.split_at(std::mem::size_of::<usize>());\n    *input = rest;\n    usize::from_ne_bytes(int_bytes.try_into().unwrap())\n}
\n
1.0.0 (const: 1.32.0) · source

pub const fn min_value() -> usize

👎Deprecating in a future version: replaced by the MIN associated constant on this type

New code should prefer to use\nusize::MIN instead.

\n

Returns the smallest value that can be represented by this integer type.

\n
1.0.0 (const: 1.32.0) · source

pub const fn max_value() -> usize

👎Deprecating in a future version: replaced by the MAX associated constant on this type

New code should prefer to use\nusize::MAX instead.

\n

Returns the largest value that can be represented by this integer type.

\n
source

pub const fn widening_mul(self, rhs: usize) -> (usize, usize)

🔬This is a nightly-only experimental API. (bigint_helper_methods)

Calculates the complete product self * rhs without the possibility to overflow.

\n

This returns the low-order (wrapping) bits and the high-order (overflow) bits\nof the result as two separate values, in that order.

\n

If you also need to add a carry to the wide result, then you want\nSelf::carrying_mul instead.

\n
§Examples
\n

Basic usage:

\n

Please note that this example is shared between integer types.\nWhich explains why u32 is used here.

\n\n
#![feature(bigint_helper_methods)]\nassert_eq!(5u32.widening_mul(2), (10, 0));\nassert_eq!(1_000_000_000u32.widening_mul(10), (1410065408, 2));
\n
source

pub const fn carrying_mul(self, rhs: usize, carry: usize) -> (usize, usize)

🔬This is a nightly-only experimental API. (bigint_helper_methods)

Calculates the “full multiplication” self * rhs + carry\nwithout the possibility to overflow.

\n

This returns the low-order (wrapping) bits and the high-order (overflow) bits\nof the result as two separate values, in that order.

\n

Performs “long multiplication” which takes in an extra amount to add, and may return an\nadditional amount of overflow. This allows for chaining together multiple\nmultiplications to create “big integers” which represent larger values.

\n

If you don’t need the carry, then you can use Self::widening_mul instead.

\n
§Examples
\n

Basic usage:

\n

Please note that this example is shared between integer types.\nWhich explains why u32 is used here.

\n\n
#![feature(bigint_helper_methods)]\nassert_eq!(5u32.carrying_mul(2, 0), (10, 0));\nassert_eq!(5u32.carrying_mul(2, 10), (20, 0));\nassert_eq!(1_000_000_000u32.carrying_mul(10, 0), (1410065408, 2));\nassert_eq!(1_000_000_000u32.carrying_mul(10, 10), (1410065418, 2));\nassert_eq!(usize::MAX.carrying_mul(usize::MAX, usize::MAX), (0, usize::MAX));
\n

This is the core operation needed for scalar multiplication when\nimplementing it for wider-than-native types.

\n\n
#![feature(bigint_helper_methods)]\nfn scalar_mul_eq(little_endian_digits: &mut Vec<u16>, multiplicand: u16) {\n    let mut carry = 0;\n    for d in little_endian_digits.iter_mut() {\n        (*d, carry) = d.carrying_mul(multiplicand, carry);\n    }\n    if carry != 0 {\n        little_endian_digits.push(carry);\n    }\n}\n\nlet mut v = vec![10, 20];\nscalar_mul_eq(&mut v, 3);\nassert_eq!(v, [30, 60]);\n\nassert_eq!(0x87654321_u64 * 0xFEED, 0x86D3D159E38D);\nlet mut v = vec![0x4321, 0x8765];\nscalar_mul_eq(&mut v, 0xFEED);\nassert_eq!(v, [0xE38D, 0xD159, 0x86D3]);
\n

If carry is zero, this is similar to overflowing_mul,\nexcept that it gives the value of the overflow instead of just whether one happened:

\n\n
#![feature(bigint_helper_methods)]\nlet r = u8::carrying_mul(7, 13, 0);\nassert_eq!((r.0, r.1 != 0), u8::overflowing_mul(7, 13));\nlet r = u8::carrying_mul(13, 42, 0);\nassert_eq!((r.0, r.1 != 0), u8::overflowing_mul(13, 42));
\n

The value of the first field in the returned tuple matches what you’d get\nby combining the wrapping_mul and\nwrapping_add methods:

\n\n
#![feature(bigint_helper_methods)]\nassert_eq!(\n    789_u16.carrying_mul(456, 123).0,\n    789_u16.wrapping_mul(456).wrapping_add(123),\n);
\n
source

pub const fn midpoint(self, rhs: usize) -> usize

🔬This is a nightly-only experimental API. (num_midpoint)

Calculates the middle point of self and rhs.

\n

midpoint(a, b) is (a + b) >> 1 as if it were performed in a\nsufficiently-large signed integral type. This implies that the result is\nalways rounded towards negative infinity and that no overflow will ever occur.

\n
§Examples
\n
#![feature(num_midpoint)]\nassert_eq!(0usize.midpoint(4), 2);\nassert_eq!(1usize.midpoint(4), 2);
\n
",0,"tor_interface::tor_provider::CircuitToken"],["
source§

impl usize

1.0.0 (const: 1.82.0) · source

pub const fn from_str_radix(\n src: &str,\n radix: u32,\n) -> Result<usize, ParseIntError>

Converts a string slice in a given base to an integer.

\n

The string is expected to be an optional + sign\nfollowed by digits.\nLeading and trailing whitespace represent an error.\nDigits are a subset of these characters, depending on radix:

\n
    \n
  • 0-9
  • \n
  • a-z
  • \n
  • A-Z
  • \n
\n
§Panics
\n

This function panics if radix is not in the range from 2 to 36.

\n
§Examples
\n

Basic usage:

\n\n
assert_eq!(usize::from_str_radix(\"A\", 16), Ok(10));
\n
",0,"tor_interface::tor_provider::CircuitToken"],["
§

impl AtLeast16 for usize

","AtLeast16","tor_interface::tor_provider::CircuitToken"],["
§

impl AtLeast32 for usize

","AtLeast32","tor_interface::tor_provider::CircuitToken"],["
§

impl AtLeast64 for usize

","AtLeast64","tor_interface::tor_provider::CircuitToken"],["
§

impl AtLeast8 for usize

","AtLeast8","tor_interface::tor_provider::CircuitToken"],["
§

impl AtMost128 for usize

","AtMost128","tor_interface::tor_provider::CircuitToken"],["
§

impl AtMost64 for usize

","AtMost64","tor_interface::tor_provider::CircuitToken"],["
§

impl BitOps for usize

","BitOps","tor_interface::tor_provider::CircuitToken"],["
source§

impl ConstParamTy_ for usize

","ConstParamTy_","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Copy for usize

","Copy","tor_interface::tor_provider::CircuitToken"],["
§

impl DefaultIsZeroes for usize

","DefaultIsZeroes","tor_interface::tor_provider::CircuitToken"],["
1.0.0 · source§

impl Eq for usize

","Eq","tor_interface::tor_provider::CircuitToken"],["
§

impl ExtendTarget<usize> for usize

","ExtendTarget","tor_interface::tor_provider::CircuitToken"],["
source§

impl Index for usize

","Index","tor_interface::tor_provider::CircuitToken"],["
§

impl Index for usize

","Index","tor_interface::tor_provider::CircuitToken"],["
source§

impl Integer for usize

","Integer","tor_interface::tor_provider::CircuitToken"],["
§

impl Is64 for usize

","Is64","tor_interface::tor_provider::CircuitToken"],["
§

impl NotAutoValue for usize

","NotAutoValue","tor_interface::tor_provider::CircuitToken"],["
§

impl NumericOps for usize

","NumericOps","tor_interface::tor_provider::CircuitToken"],["
source§

impl SimdCast for usize

","SimdCast","tor_interface::tor_provider::CircuitToken"],["
source§

impl StructuralPartialEq for usize

","StructuralPartialEq","tor_interface::tor_provider::CircuitToken"],["
§

impl TruncateTarget<u16> for usize

","TruncateTarget","tor_interface::tor_provider::CircuitToken"],["
§

impl TruncateTarget<u8> for usize

","TruncateTarget","tor_interface::tor_provider::CircuitToken"],["
§

impl TruncateTarget<usize> for usize

","TruncateTarget","tor_interface::tor_provider::CircuitToken"],["
source§

impl TrustedStep for usize

","TrustedStep","tor_interface::tor_provider::CircuitToken"],["
§

impl Uint for usize

","Uint","tor_interface::tor_provider::CircuitToken"],["
source§

impl Unsigned for usize

","Unsigned","tor_interface::tor_provider::CircuitToken"],["
source§

impl UnsizedConstParamTy for usize

","UnsizedConstParamTy","tor_interface::tor_provider::CircuitToken"],["
source§

impl Weight for usize

","Weight","tor_interface::tor_provider::CircuitToken"],["
source§

impl ZeroablePrimitive for usize

","ZeroablePrimitive","tor_interface::tor_provider::CircuitToken"]]]]); + if (window.register_type_impls) { + window.register_type_impls(type_impls); + } else { + window.pending_type_impls = type_impls; + } +})() +//{"start":55,"fragment_lengths":[1046651,1049450]} \ No newline at end of file diff --git a/gosling.spdx.json b/gosling.spdx.json index 8fc218e6..1e08db01 100644 --- a/gosling.spdx.json +++ b/gosling.spdx.json @@ -1,13 +1,13 @@ { "SPDXID": "SPDXRef-DOCUMENT", "creationInfo": { - "created": "2024-11-04T01:12:39.861Z", + "created": "2024-11-06T20:38:36.349Z", "creators": [ "Tool: cargo-sbom-v0.9.1" ] }, "dataLicense": "CC0-1.0", - "documentNamespace": "https://spdx.org/spdxdocs/gosling-087334ad-73a4-4b9d-8946-b4df8922e6ba", + "documentNamespace": "https://spdx.org/spdxdocs/gosling-2c95d3a7-45d0-48f8-b382-853da6362cc1", "files": [ { "SPDXID": "SPDXRef-File-gosling", @@ -37,1658 +37,1656 @@ "name": "gosling", "packages": [ { - "SPDXID": "SPDXRef-Package-zerofrom-derive-0.1.4", - "description": "Custom derive for the zerofrom crate", + "SPDXID": "SPDXRef-Package-futures-channel-0.3.30", + "description": "Channels for asynchronous communication using futures-rs.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/zerofrom-derive@0.1.4", + "referenceLocator": "pkg:cargo/futures-channel@0.3.30", "referenceType": "purl" } ], - "licenseConcluded": "Unicode-3.0", - "licenseDeclared": "Unicode-3.0", - "name": "zerofrom-derive", - "versionInfo": "0.1.4" + "homepage": "https://rust-lang.github.io/futures-rs", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "futures-channel", + "versionInfo": "0.3.30" }, { - "SPDXID": "SPDXRef-Package-foreign-types-shared-0.1.1", - "description": "An internal crate used by foreign-types", + "SPDXID": "SPDXRef-Package-signature-1.6.4", + "description": "Traits for cryptographic signature algorithms (e.g. ECDSA, Ed25519)", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/foreign-types-shared@0.1.1", + "referenceLocator": "pkg:cargo/signature@1.6.4", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT/Apache-2.0", - "name": "foreign-types-shared", - "versionInfo": "0.1.1" + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "signature", + "versionInfo": "1.6.4" }, { - "SPDXID": "SPDXRef-Package-memchr-2.7.4", - "description": "Provides extremely fast (uses SIMD on x86_64, aarch64 and wasm32) routines for\n1, 2 or 3 byte search and single substring search.\n", + "SPDXID": "SPDXRef-Package-derive_builder_core_fork_arti-0.11.2", + "description": "Internal helper library for the derive_builder crate.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/memchr@2.7.4", + "referenceLocator": "pkg:cargo/derive_builder_core_fork_arti@0.11.2", "referenceType": "purl" } ], - "homepage": "https://github.com/BurntSushi/memchr", - "licenseConcluded": "Unlicense OR MIT", - "licenseDeclared": "Unlicense OR MIT", - "name": "memchr", - "versionInfo": "2.7.4" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT/Apache-2.0", + "name": "derive_builder_core_fork_arti", + "versionInfo": "0.11.2" }, { - "SPDXID": "SPDXRef-Package-tor-hsclient-0.24.0", - "description": "Arti's implementation of an onion service client", + "SPDXID": "SPDXRef-Package-winapi-i686-pc-windows-gnu-0.4.0", + "description": "Import libraries for the i686-pc-windows-gnu target. Please don't use this crate directly, depend on winapi instead.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tor-hsclient@0.24.0", + "referenceLocator": "pkg:cargo/winapi-i686-pc-windows-gnu@0.4.0", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "tor-hsclient", - "versionInfo": "0.24.0" + "licenseDeclared": "MIT/Apache-2.0", + "name": "winapi-i686-pc-windows-gnu", + "versionInfo": "0.4.0" }, { - "SPDXID": "SPDXRef-Package-tempfile-3.12.0", - "description": "A library for managing temporary files and directories.", + "SPDXID": "SPDXRef-Package-zerocopy-0.7.35", + "description": "Utilities for zero-copy parsing and serialization", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tempfile@3.12.0", + "referenceLocator": "pkg:cargo/zerocopy@0.7.35", "referenceType": "purl" } ], - "homepage": "https://stebalien.com/projects/tempfile-rs/", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "tempfile", - "versionInfo": "3.12.0" + "licenseConcluded": "BSD-2-Clause OR Apache-2.0 OR MIT", + "licenseDeclared": "BSD-2-Clause OR Apache-2.0 OR MIT", + "name": "zerocopy", + "versionInfo": "0.7.35" }, { - "SPDXID": "SPDXRef-Package-keccak-0.1.5", - "description": "Pure Rust implementation of the Keccak sponge function including the keccak-f\nand keccak-p variants\n", + "SPDXID": "SPDXRef-Package-zstd-sys-2.0.13+zstd.1.5.6", + "description": "Low-level bindings for the zstd compression library.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/keccak@0.1.5", + "referenceLocator": "pkg:cargo/zstd-sys@2.0.13+zstd.1.5.6", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "keccak", - "versionInfo": "0.1.5" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT/Apache-2.0", + "name": "zstd-sys", + "versionInfo": "2.0.13+zstd.1.5.6" }, { - "SPDXID": "SPDXRef-Package-regex-syntax-0.6.29", - "description": "A regular expression parser.", + "SPDXID": "SPDXRef-Package-p521-0.13.3", + "description": "Pure Rust implementation of the NIST P-521 (a.k.a. secp521r1) elliptic curve\nas defined in SP 800-186\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/regex-syntax@0.6.29", + "referenceLocator": "pkg:cargo/p521@0.13.3", "referenceType": "purl" } ], - "homepage": "https://github.com/rust-lang/regex", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "regex-syntax", - "versionInfo": "0.6.29" + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "p521", + "versionInfo": "0.13.3" }, { - "SPDXID": "SPDXRef-Package-once_cell-1.19.0", - "description": "Single assignment cells and lazy values.", + "SPDXID": "SPDXRef-Package-aes-0.8.4", + "description": "Pure Rust implementation of the Advanced Encryption Standard (a.k.a. Rijndael)", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/once_cell@1.19.0", + "referenceLocator": "pkg:cargo/aes@0.8.4", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "once_cell", - "versionInfo": "1.19.0" + "name": "aes", + "versionInfo": "0.8.4" }, { - "SPDXID": "SPDXRef-Package-idna-0.5.0", - "description": "IDNA (Internationalizing Domain Names in Applications) and Punycode.", + "SPDXID": "SPDXRef-Package-sha2-0.10.8", + "description": "Pure Rust implementation of the SHA-2 hash function family\nincluding SHA-224, SHA-256, SHA-384, and SHA-512.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/idna@0.5.0", + "referenceLocator": "pkg:cargo/sha2@0.10.8", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "idna", - "versionInfo": "0.5.0" + "name": "sha2", + "versionInfo": "0.10.8" }, { - "SPDXID": "SPDXRef-Package-zerovec-derive-0.10.3", - "description": "Custom derive for the zerovec crate", + "SPDXID": "SPDXRef-Package-openssl-macros-0.1.1", + "description": "Internal macros used by the openssl crate.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/zerovec-derive@0.10.3", + "referenceLocator": "pkg:cargo/openssl-macros@0.1.1", "referenceType": "purl" } ], - "licenseConcluded": "Unicode-3.0", - "licenseDeclared": "Unicode-3.0", - "name": "zerovec-derive", - "versionInfo": "0.10.3" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT/Apache-2.0", + "name": "openssl-macros", + "versionInfo": "0.1.1" }, { - "SPDXID": "SPDXRef-Package-parking_lot_core-0.9.10", - "description": "An advanced API for creating custom synchronization primitives.", + "SPDXID": "SPDXRef-Package-safelog-0.4.1", + "description": "Conditionally suppress confidential information from logs", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/parking_lot_core@0.9.10", + "referenceLocator": "pkg:cargo/safelog@0.4.1", "referenceType": "purl" } ], + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "parking_lot_core", - "versionInfo": "0.9.10" + "name": "safelog", + "versionInfo": "0.4.1" }, { - "SPDXID": "SPDXRef-Package-miniz_oxide-0.8.0", - "description": "DEFLATE compression and decompression library rewritten in Rust based on miniz", + "SPDXID": "SPDXRef-Package-chrono-0.4.38", + "description": "Date and time library for Rust", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/miniz_oxide@0.8.0", + "referenceLocator": "pkg:cargo/chrono@0.4.38", "referenceType": "purl" } ], - "homepage": "https://github.com/Frommi/miniz_oxide/tree/master/miniz_oxide", - "licenseConcluded": "MIT OR Zlib OR Apache-2.0", - "licenseDeclared": "MIT OR Zlib OR Apache-2.0", - "name": "miniz_oxide", - "versionInfo": "0.8.0" + "homepage": "https://github.com/chronotope/chrono", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "chrono", + "versionInfo": "0.4.38" }, { - "SPDXID": "SPDXRef-Package-inventory-0.3.15", - "description": "Typed distributed plugin registration", + "SPDXID": "SPDXRef-Package-bitflags-1.3.2", + "description": "A macro to generate structures which behave like bitflags.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/inventory@0.3.15", + "referenceLocator": "pkg:cargo/bitflags@1.3.2", "referenceType": "purl" } ], + "homepage": "https://github.com/bitflags/bitflags", "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "inventory", - "versionInfo": "0.3.15" + "licenseDeclared": "MIT/Apache-2.0", + "name": "bitflags", + "versionInfo": "1.3.2" }, { - "SPDXID": "SPDXRef-Package-nu-ansi-term-0.46.0", - "description": "Library for ANSI terminal colors and styles (bold, underline)", + "SPDXID": "SPDXRef-Package-adler-1.0.2", + "description": "A simple clean-room implementation of the Adler-32 checksum", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/nu-ansi-term@0.46.0", + "referenceLocator": "pkg:cargo/adler@1.0.2", "referenceType": "purl" } ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "nu-ansi-term", - "versionInfo": "0.46.0" + "licenseConcluded": "0BSD OR MIT OR Apache-2.0", + "licenseDeclared": "0BSD OR MIT OR Apache-2.0", + "name": "adler", + "versionInfo": "1.0.2" }, { - "SPDXID": "SPDXRef-Package-indexmap-2.5.0", - "description": "A hash table with consistent order and fast iteration.", + "SPDXID": "SPDXRef-Package-socket2-0.5.7", + "description": "Utilities for handling networking sockets with a maximal amount of configuration\npossible intended.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/indexmap@2.5.0", + "referenceLocator": "pkg:cargo/socket2@0.5.7", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "indexmap", - "versionInfo": "2.5.0" + "homepage": "https://github.com/rust-lang/socket2", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "socket2", + "versionInfo": "0.5.7" }, { - "SPDXID": "SPDXRef-Package-stable_deref_trait-1.2.0", - "description": "An unsafe marker trait for types like Box and Rc that dereference to a stable address even when moved, and hence can be used with libraries such as owning_ref and rental.\n", + "SPDXID": "SPDXRef-Package-tor-rtcompat-0.24.0", + "description": "Compatibility layer for asynchronous runtimes, used by Tor", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/stable_deref_trait@1.2.0", + "referenceLocator": "pkg:cargo/tor-rtcompat@0.24.0", "referenceType": "purl" } ], + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT/Apache-2.0", - "name": "stable_deref_trait", - "versionInfo": "1.2.0" + "licenseDeclared": "MIT OR Apache-2.0", + "name": "tor-rtcompat", + "versionInfo": "0.24.0" }, { - "SPDXID": "SPDXRef-Package-sha3-0.10.8", - "description": "Pure Rust implementation of SHA-3, a family of Keccak-based hash functions\nincluding the SHAKE family of eXtendable-Output Functions (XOFs), as well as\nthe accelerated variant TurboSHAKE\n", + "SPDXID": "SPDXRef-Package-fluid-let-1.0.0", + "description": "Dynamically scoped variables", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/sha3@0.10.8", + "referenceLocator": "pkg:cargo/fluid-let@1.0.0", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "sha3", - "versionInfo": "0.10.8" + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "fluid-let", + "versionInfo": "1.0.0" }, { - "SPDXID": "SPDXRef-Package-ed25519-dalek-2.1.1", - "description": "Fast and efficient ed25519 EdDSA key generations, signing, and verification in pure Rust.", + "SPDXID": "SPDXRef-Package-tor-netdir-0.24.0", + "description": "Types to represent and use a Tor network directory", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/ed25519-dalek@2.1.1", + "referenceLocator": "pkg:cargo/tor-netdir@0.24.0", "referenceType": "purl" } ], - "homepage": "https://github.com/dalek-cryptography/curve25519-dalek", - "licenseConcluded": "BSD-3-Clause", - "licenseDeclared": "BSD-3-Clause", - "name": "ed25519-dalek", - "versionInfo": "2.1.1" + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "tor-netdir", + "versionInfo": "0.24.0" }, { - "SPDXID": "SPDXRef-Package-icu_locid-1.5.0", - "description": "API for managing Unicode Language and Locale Identifiers", + "SPDXID": "SPDXRef-Package-tor-llcrypto-0.24.0", + "description": "Low level cryptography wrappers used by Tor", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/icu_locid@1.5.0", + "referenceLocator": "pkg:cargo/tor-llcrypto@0.24.0", "referenceType": "purl" } ], - "homepage": "https://icu4x.unicode.org", - "licenseConcluded": "Unicode-3.0", - "licenseDeclared": "Unicode-3.0", - "name": "icu_locid", - "versionInfo": "1.5.0" + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "tor-llcrypto", + "versionInfo": "0.24.0" }, { - "SPDXID": "SPDXRef-Package-primeorder-0.13.6", - "description": "Pure Rust implementation of complete addition formulas for prime order elliptic\ncurves (Renes-Costello-Batina 2015). Generic over field elements and curve\nequation coefficients\n", + "SPDXID": "SPDXRef-Package-memchr-2.7.4", + "description": "Provides extremely fast (uses SIMD on x86_64, aarch64 and wasm32) routines for\n1, 2 or 3 byte search and single substring search.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/primeorder@0.13.6", + "referenceLocator": "pkg:cargo/memchr@2.7.4", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "primeorder", - "versionInfo": "0.13.6" + "homepage": "https://github.com/BurntSushi/memchr", + "licenseConcluded": "Unlicense OR MIT", + "licenseDeclared": "Unlicense OR MIT", + "name": "memchr", + "versionInfo": "2.7.4" }, { - "SPDXID": "SPDXRef-Package-socket2-0.5.7", - "description": "Utilities for handling networking sockets with a maximal amount of configuration\npossible intended.\n", + "SPDXID": "SPDXRef-Package-proc-macro-crate-1.3.1", + "description": "Replacement for crate (macro_rules keyword) in proc-macros\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/socket2@0.5.7", + "referenceLocator": "pkg:cargo/proc-macro-crate@1.3.1", "referenceType": "purl" } ], - "homepage": "https://github.com/rust-lang/socket2", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "socket2", - "versionInfo": "0.5.7" + "name": "proc-macro-crate", + "versionInfo": "1.3.1" }, { - "SPDXID": "SPDXRef-Package-tracing-test-macro-0.2.5", - "description": "A procedural macro that allow for easier testing of crates that use `tracing`.\n\nInternal crate, should only be used through the `tracing-test` crate.\n", + "SPDXID": "SPDXRef-Package-educe-0.4.23", + "description": "This crate provides procedural macros to help you implement Rust-built-in traits quickly.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tracing-test-macro@0.2.5", + "referenceLocator": "pkg:cargo/educe@0.4.23", "referenceType": "purl" } ], + "homepage": "https://magiclen.org/educe", "licenseConcluded": "MIT", "licenseDeclared": "MIT", - "name": "tracing-test-macro", - "versionInfo": "0.2.5" - }, - { - "SPDXID": "SPDXRef-Package-windows-sys-0.52.0", - "description": "Rust for Windows", - "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/windows-sys@0.52.0", - "referenceType": "purl" - } - ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "windows-sys", - "versionInfo": "0.52.0" + "name": "educe", + "versionInfo": "0.4.23" }, { - "SPDXID": "SPDXRef-Package-directories-5.0.1", - "description": "A tiny mid-level library that provides platform-specific standard locations of directories for config, cache and other data on Linux, Windows and macOS by leveraging the mechanisms defined by the XDG base/user directory specifications on Linux, the Known Folder API on Windows, and the Standard Directory guidelines on macOS.", + "SPDXID": "SPDXRef-Package-ed25519-dalek-2.1.1", + "description": "Fast and efficient ed25519 EdDSA key generations, signing, and verification in pure Rust.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/directories@5.0.1", + "referenceLocator": "pkg:cargo/ed25519-dalek@2.1.1", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "directories", - "versionInfo": "5.0.1" + "homepage": "https://github.com/dalek-cryptography/curve25519-dalek", + "licenseConcluded": "BSD-3-Clause", + "licenseDeclared": "BSD-3-Clause", + "name": "ed25519-dalek", + "versionInfo": "2.1.1" }, { - "SPDXID": "SPDXRef-Package-derive-adhoc-0.7.3", - "description": "An ergonomic way to write derive() macros", + "SPDXID": "SPDXRef-Package-wyz-0.5.1", + "description": "myrrlyn’s utility collection", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/derive-adhoc@0.7.3", + "referenceLocator": "pkg:cargo/wyz@0.5.1", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/Diziet/rust-derive-adhoc", + "homepage": "https://myrrlyn.net/crates/wyz", "licenseConcluded": "MIT", "licenseDeclared": "MIT", - "name": "derive-adhoc", - "versionInfo": "0.7.3" + "name": "wyz", + "versionInfo": "0.5.1" }, { - "SPDXID": "SPDXRef-Package-flate2-1.0.33", - "description": "DEFLATE compression and decompression exposed as Read/BufRead/Write streams.\nSupports miniz_oxide and multiple zlib implementations. Supports zlib, gzip,\nand raw deflate streams.\n", + "SPDXID": "SPDXRef-Package-tor-hscrypto-0.24.0", + "description": "Basic onion service cryptography types used by Aerti", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/flate2@1.0.33", + "referenceLocator": "pkg:cargo/tor-hscrypto@0.24.0", "referenceType": "purl" } ], - "homepage": "https://github.com/rust-lang/flate2-rs", + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "flate2", - "versionInfo": "1.0.33" + "name": "tor-hscrypto", + "versionInfo": "0.24.0" }, { - "SPDXID": "SPDXRef-Package-serde_bytes-0.11.15", - "description": "Optimized handling of `&[u8]` and `Vec` for Serde", + "SPDXID": "SPDXRef-Package-phf_shared-0.11.2", + "description": "Support code shared by PHF libraries", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/serde_bytes@0.11.15", + "referenceLocator": "pkg:cargo/phf_shared@0.11.2", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "serde_bytes", - "versionInfo": "0.11.15" + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "phf_shared", + "versionInfo": "0.11.2" }, { - "SPDXID": "SPDXRef-Package-cpufeatures-0.2.13", - "description": "Lightweight runtime CPU feature detection for aarch64, loongarch64, and x86/x86_64 targets, \nwith no_std support and support for mobile targets including Android and iOS\n", + "SPDXID": "SPDXRef-Package-tor-relay-selection-0.24.0", + "description": "Logic to select Tor relays for specific purposes", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/cpufeatures@0.2.13", + "referenceLocator": "pkg:cargo/tor-relay-selection@0.24.0", "referenceType": "purl" } ], + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "cpufeatures", - "versionInfo": "0.2.13" + "name": "tor-relay-selection", + "versionInfo": "0.24.0" }, { - "SPDXID": "SPDXRef-Package-windows_x86_64_gnu-0.48.5", - "description": "Import lib for Windows", + "SPDXID": "SPDXRef-Package-inotify-sys-0.1.5", + "description": "inotify bindings for the Rust programming language", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/windows_x86_64_gnu@0.48.5", + "referenceLocator": "pkg:cargo/inotify-sys@0.1.5", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "windows_x86_64_gnu", - "versionInfo": "0.48.5" + "licenseConcluded": "ISC", + "licenseDeclared": "ISC", + "name": "inotify-sys", + "versionInfo": "0.1.5" }, { - "SPDXID": "SPDXRef-Package-num_enum_derive-0.6.1", - "description": "Internal implementation details for ::num_enum (Procedural macros to make inter-operation between primitives and enums easier)", + "SPDXID": "SPDXRef-Package-ordered-float-2.10.1", + "description": "Wrappers for total ordering on floats", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/num_enum_derive@0.6.1", + "referenceLocator": "pkg:cargo/ordered-float@2.10.1", "referenceType": "purl" } ], - "licenseConcluded": "BSD-3-Clause OR MIT OR Apache-2.0", - "licenseDeclared": "BSD-3-Clause OR MIT OR Apache-2.0", - "name": "num_enum_derive", - "versionInfo": "0.6.1" + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "ordered-float", + "versionInfo": "2.10.1" }, { - "SPDXID": "SPDXRef-Package-serde_spanned-0.6.7", - "description": "Serde-compatible spanned Value", + "SPDXID": "SPDXRef-Package-tor-bytes-0.24.0", + "description": "Helpers for encoding and decoding byte-orientted data, as used by Tor", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/serde_spanned@0.6.7", + "referenceLocator": "pkg:cargo/tor-bytes@0.24.0", "referenceType": "purl" } ], - "homepage": "https://github.com/toml-rs/toml", + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "serde_spanned", - "versionInfo": "0.6.7" + "name": "tor-bytes", + "versionInfo": "0.24.0" }, { - "SPDXID": "SPDXRef-Package-libsqlite3-sys-0.30.1", - "description": "Native bindings to the libsqlite3 library", + "SPDXID": "SPDXRef-Package-tokio-stream-0.1.16", + "description": "Utilities to work with `Stream` and `tokio`.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/libsqlite3-sys@0.30.1", + "referenceLocator": "pkg:cargo/tokio-stream@0.1.16", "referenceType": "purl" } ], + "homepage": "https://tokio.rs", "licenseConcluded": "MIT", "licenseDeclared": "MIT", - "name": "libsqlite3-sys", - "versionInfo": "0.30.1" + "name": "tokio-stream", + "versionInfo": "0.1.16" }, { - "SPDXID": "SPDXRef-Package-windows_x86_64_msvc-0.48.5", - "description": "Import lib for Windows", + "SPDXID": "SPDXRef-Package-tor-chanmgr-0.24.0", + "description": "Manage a set of connections to the Tor network", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/windows_x86_64_msvc@0.48.5", + "referenceLocator": "pkg:cargo/tor-chanmgr@0.24.0", "referenceType": "purl" } ], + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "windows_x86_64_msvc", - "versionInfo": "0.48.5" + "name": "tor-chanmgr", + "versionInfo": "0.24.0" }, { - "SPDXID": "SPDXRef-Package-radium-0.7.0", - "description": "Portable interfaces for maybe-atomic types", + "SPDXID": "SPDXRef-Package-der-parser-9.0.0", + "description": "Parser/encoder for ASN.1 BER/DER data", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/radium@0.7.0", + "referenceLocator": "pkg:cargo/der-parser@9.0.0", "referenceType": "purl" } ], - "homepage": "https://github.com/bitvecto-rs/radium", - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "radium", - "versionInfo": "0.7.0" + "homepage": "https://github.com/rusticata/der-parser", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT/Apache-2.0", + "name": "der-parser", + "versionInfo": "9.0.0" }, { - "SPDXID": "SPDXRef-Package-crc32fast-1.4.2", - "description": "Fast, SIMD-accelerated CRC32 (IEEE) checksum computation", + "SPDXID": "SPDXRef-Package-data-encoding-macro-internal-0.1.13", + "description": "Internal library for data-encoding-macro", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/crc32fast@1.4.2", + "referenceLocator": "pkg:cargo/data-encoding-macro-internal@0.1.13", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "crc32fast", - "versionInfo": "1.4.2" + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "data-encoding-macro-internal", + "versionInfo": "0.1.13" }, { - "SPDXID": "SPDXRef-Package-itertools-0.11.0", - "description": "Extra iterator adaptors, iterator methods, free functions, and macros.", + "SPDXID": "SPDXRef-Package-wasm-bindgen-macro-0.2.93", + "description": "Definition of the `#[wasm_bindgen]` attribute, an internal dependency\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/itertools@0.11.0", + "referenceLocator": "pkg:cargo/wasm-bindgen-macro@0.2.93", "referenceType": "purl" } ], + "homepage": "https://rustwasm.github.io/wasm-bindgen/", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "itertools", - "versionInfo": "0.11.0" + "name": "wasm-bindgen-macro", + "versionInfo": "0.2.93" }, { - "SPDXID": "SPDXRef-Package-httparse-1.9.4", - "description": "A tiny, safe, speedy, zero-copy HTTP/1.x parser.", + "SPDXID": "SPDXRef-Package-windows_i686_gnu-0.48.5", + "description": "Import lib for Windows", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/httparse@1.9.4", + "referenceLocator": "pkg:cargo/windows_i686_gnu@0.48.5", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "httparse", - "versionInfo": "1.9.4" + "name": "windows_i686_gnu", + "versionInfo": "0.48.5" }, { - "SPDXID": "SPDXRef-Package-openssl-probe-0.1.5", - "description": "Tool for helping to find SSL certificate locations on the system for OpenSSL\n", + "SPDXID": "SPDXRef-Package-itertools-0.11.0", + "description": "Extra iterator adaptors, iterator methods, free functions, and macros.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/openssl-probe@0.1.5", + "referenceLocator": "pkg:cargo/itertools@0.11.0", "referenceType": "purl" } ], - "homepage": "https://github.com/alexcrichton/openssl-probe", "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT/Apache-2.0", - "name": "openssl-probe", - "versionInfo": "0.1.5" + "licenseDeclared": "MIT OR Apache-2.0", + "name": "itertools", + "versionInfo": "0.11.0" }, { - "SPDXID": "SPDXRef-Package-base64ct-1.6.0", - "description": "Pure Rust implementation of Base64 (RFC 4648) which avoids any usages of\ndata-dependent branches/LUTs and thereby provides portable \"best effort\"\nconstant-time operation and embedded-friendly no_std support\n", + "SPDXID": "SPDXRef-Package-addr2line-0.22.0", + "description": "A cross-platform symbolication library written in Rust, using `gimli`", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/base64ct@1.6.0", + "referenceLocator": "pkg:cargo/addr2line@0.22.0", "referenceType": "purl" } ], "licenseConcluded": "Apache-2.0 OR MIT", "licenseDeclared": "Apache-2.0 OR MIT", - "name": "base64ct", - "versionInfo": "1.6.0" + "name": "addr2line", + "versionInfo": "0.22.0" }, { - "SPDXID": "SPDXRef-Package-iana-time-zone-0.1.60", - "description": "get the IANA time zone for the current system", + "SPDXID": "SPDXRef-Package-num_enum_derive-0.7.3", + "description": "Internal implementation details for ::num_enum (Procedural macros to make inter-operation between primitives and enums easier)", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/iana-time-zone@0.1.60", + "referenceLocator": "pkg:cargo/num_enum_derive@0.7.3", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "iana-time-zone", - "versionInfo": "0.1.60" + "licenseConcluded": "BSD-3-Clause OR MIT OR Apache-2.0", + "licenseDeclared": "BSD-3-Clause OR MIT OR Apache-2.0", + "name": "num_enum_derive", + "versionInfo": "0.7.3" }, { - "SPDXID": "SPDXRef-Package-miniz_oxide-0.7.4", - "description": "DEFLATE compression and decompression library rewritten in Rust based on miniz", + "SPDXID": "SPDXRef-Package-lock_api-0.4.12", + "description": "Wrappers to create fully-featured Mutex and RwLock types. Compatible with no_std.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/miniz_oxide@0.7.4", + "referenceLocator": "pkg:cargo/lock_api@0.4.12", "referenceType": "purl" } ], - "homepage": "https://github.com/Frommi/miniz_oxide/tree/master/miniz_oxide", - "licenseConcluded": "MIT OR Zlib OR Apache-2.0", - "licenseDeclared": "MIT OR Zlib OR Apache-2.0", - "name": "miniz_oxide", - "versionInfo": "0.7.4" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "lock_api", + "versionInfo": "0.4.12" }, { - "SPDXID": "SPDXRef-Package-memmap2-0.9.4", - "description": "Cross-platform Rust API for memory-mapped file IO", + "SPDXID": "SPDXRef-Package-downcast-rs-1.2.1", + "description": "Trait object downcasting support using only safe Rust. It supports type\nparameters, associated types, and type constraints.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/memmap2@0.9.4", + "referenceLocator": "pkg:cargo/downcast-rs@1.2.1", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "memmap2", - "versionInfo": "0.9.4" + "licenseDeclared": "MIT/Apache-2.0", + "name": "downcast-rs", + "versionInfo": "1.2.1" }, { - "SPDXID": "SPDXRef-Package-group-0.13.0", - "description": "Elliptic curve group traits and utilities", + "SPDXID": "SPDXRef-Package-lazy_static-1.5.0", + "description": "A macro for declaring lazily evaluated statics in Rust.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/group@0.13.0", + "referenceLocator": "pkg:cargo/lazy_static@1.5.0", "referenceType": "purl" } ], - "homepage": "https://github.com/zkcrypto/group", "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT/Apache-2.0", - "name": "group", - "versionInfo": "0.13.0" + "licenseDeclared": "MIT OR Apache-2.0", + "name": "lazy_static", + "versionInfo": "1.5.0" }, { - "SPDXID": "SPDXRef-Package-time-0.3.36", - "description": "Date and time library. Fully interoperable with the standard library. Mostly compatible with #![no_std].", + "SPDXID": "SPDXRef-Package-form_urlencoded-1.2.1", + "description": "Parser and serializer for the application/x-www-form-urlencoded syntax, as used by HTML forms.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/time@0.3.36", + "referenceLocator": "pkg:cargo/form_urlencoded@1.2.1", "referenceType": "purl" } ], - "homepage": "https://time-rs.github.io", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "time", - "versionInfo": "0.3.36" + "name": "form_urlencoded", + "versionInfo": "1.2.1" }, { - "SPDXID": "SPDXRef-Package-tor-rtcompat-0.24.0", - "description": "Compatibility layer for asynchronous runtimes, used by Tor", + "SPDXID": "SPDXRef-Package-ctr-0.9.2", + "description": "CTR block modes of operation", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tor-rtcompat@0.24.0", + "referenceLocator": "pkg:cargo/ctr@0.9.2", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "tor-rtcompat", - "versionInfo": "0.24.0" + "name": "ctr", + "versionInfo": "0.9.2" }, { - "SPDXID": "SPDXRef-Package-domain-0.10.0", - "description": "A DNS library for Rust.", + "SPDXID": "SPDXRef-Package-regex-syntax-0.8.4", + "description": "A regular expression parser.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/domain@0.10.0", + "referenceLocator": "pkg:cargo/regex-syntax@0.8.4", "referenceType": "purl" } ], - "homepage": "https://github.com/nlnetlabs/domain/", - "licenseConcluded": "BSD-3-Clause", - "licenseDeclared": "BSD-3-Clause", - "name": "domain", - "versionInfo": "0.10.0" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "regex-syntax", + "versionInfo": "0.8.4" }, { - "SPDXID": "SPDXRef-Package-pem-rfc7468-0.7.0", - "description": "PEM Encoding (RFC 7468) for PKIX, PKCS, and CMS Structures, implementing a\nstrict subset of the original Privacy-Enhanced Mail encoding intended\nspecifically for use with cryptographic keys, certificates, and other messages.\nProvides a no_std-friendly, constant-time implementation suitable for use with\ncryptographic private keys.\n", + "SPDXID": "SPDXRef-Package-object-0.36.4", + "description": "A unified interface for reading and writing object file formats.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/pem-rfc7468@0.7.0", + "referenceLocator": "pkg:cargo/object@0.36.4", "referenceType": "purl" } ], "licenseConcluded": "Apache-2.0 OR MIT", "licenseDeclared": "Apache-2.0 OR MIT", - "name": "pem-rfc7468", - "versionInfo": "0.7.0" + "name": "object", + "versionInfo": "0.36.4" }, { - "SPDXID": "SPDXRef-Package-tor-dirmgr-0.24.0", - "description": "Bootstrap and update an accurate Tor network directory", + "SPDXID": "SPDXRef-Package-hex-0.4.3", + "description": "Encoding and decoding data into/from hexadecimal representation.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tor-dirmgr@0.24.0", + "referenceLocator": "pkg:cargo/hex@0.4.3", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "tor-dirmgr", - "versionInfo": "0.24.0" + "name": "hex", + "versionInfo": "0.4.3" }, { - "SPDXID": "SPDXRef-Package-derive_builder_macro_fork_arti-0.11.2", - "description": "Rust macro to automatically implement the builder pattern for arbitrary structs.", + "SPDXID": "SPDXRef-Package-tracing-core-0.1.32", + "description": "Core primitives for application-level tracing.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/derive_builder_macro_fork_arti@0.11.2", + "referenceLocator": "pkg:cargo/tracing-core@0.1.32", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT/Apache-2.0", - "name": "derive_builder_macro_fork_arti", - "versionInfo": "0.11.2" + "homepage": "https://tokio.rs", + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "tracing-core", + "versionInfo": "0.1.32" }, { - "SPDXID": "SPDXRef-Package-futures-0.3.30", - "description": "An implementation of futures and streams featuring zero allocations,\ncomposability, and iterator-like interfaces.\n", + "SPDXID": "SPDXRef-Package-rusqlite-0.32.1", + "description": "Ergonomic wrapper for SQLite", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/futures@0.3.30", + "referenceLocator": "pkg:cargo/rusqlite@0.32.1", "referenceType": "purl" } ], - "homepage": "https://rust-lang.github.io/futures-rs", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "futures", - "versionInfo": "0.3.30" + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "rusqlite", + "versionInfo": "0.32.1" }, { - "SPDXID": "SPDXRef-Package-ident_case-1.0.1", - "description": "Utility for applying case rules to Rust identifiers.", + "SPDXID": "SPDXRef-Package-unicode-segmentation-1.12.0", + "description": "This crate provides Grapheme Cluster, Word and Sentence boundaries\naccording to Unicode Standard Annex #29 rules.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/ident_case@1.0.1", + "referenceLocator": "pkg:cargo/unicode-segmentation@1.12.0", "referenceType": "purl" } ], + "homepage": "https://github.com/unicode-rs/unicode-segmentation", "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT/Apache-2.0", - "name": "ident_case", - "versionInfo": "1.0.1" + "licenseDeclared": "MIT OR Apache-2.0", + "name": "unicode-segmentation", + "versionInfo": "1.12.0" }, { - "SPDXID": "SPDXRef-Package-aho-corasick-1.1.3", - "description": "Fast multiple substring searching.", + "SPDXID": "SPDXRef-Package-windows_x86_64_gnullvm-0.48.5", + "description": "Import lib for Windows", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/aho-corasick@1.1.3", + "referenceLocator": "pkg:cargo/windows_x86_64_gnullvm@0.48.5", "referenceType": "purl" } ], - "homepage": "https://github.com/BurntSushi/aho-corasick", - "licenseConcluded": "Unlicense OR MIT", - "licenseDeclared": "Unlicense OR MIT", - "name": "aho-corasick", - "versionInfo": "1.1.3" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "windows_x86_64_gnullvm", + "versionInfo": "0.48.5" }, { - "SPDXID": "SPDXRef-Package-tor-cert-0.24.0", - "description": "Non-standard certificate formats used by Tor", + "SPDXID": "SPDXRef-Package-ascii-1.1.0", + "description": "ASCII-only equivalents to `char`, `str` and `String`.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tor-cert@0.24.0", + "referenceLocator": "pkg:cargo/ascii@1.1.0", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "tor-cert", - "versionInfo": "0.24.0" + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "ascii", + "versionInfo": "1.1.0" }, { - "SPDXID": "SPDXRef-Package-event-listener-5.3.1", - "description": "Notify async tasks or threads", + "SPDXID": "SPDXRef-Package-darling_macro-0.14.4", + "description": "Internal support for a proc-macro library for reading attributes into structs when\nimplementing custom derives. Use https://crates.io/crates/darling in your code.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/event-listener@5.3.1", + "referenceLocator": "pkg:cargo/darling_macro@0.14.4", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "event-listener", - "versionInfo": "5.3.1" + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "darling_macro", + "versionInfo": "0.14.4" }, { - "SPDXID": "SPDXRef-Package-xz2-0.1.7", - "description": "Rust bindings to liblzma providing Read/Write streams as well as low-level\nin-memory encoding/decoding.\n", + "SPDXID": "SPDXRef-Package-fiat-crypto-0.2.9", + "description": "Fiat-crypto generated Rust", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/xz2@0.1.7", + "referenceLocator": "pkg:cargo/fiat-crypto@0.2.9", "referenceType": "purl" } ], - "homepage": "https://github.com/alexcrichton/xz2-rs", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT/Apache-2.0", - "name": "xz2", - "versionInfo": "0.1.7" + "homepage": "https://github.com/mit-plv/fiat-crypto", + "licenseConcluded": "MIT OR Apache-2.0 OR BSD-1-Clause", + "licenseDeclared": "MIT OR Apache-2.0 OR BSD-1-Clause", + "name": "fiat-crypto", + "versionInfo": "0.2.9" }, { - "SPDXID": "SPDXRef-Package-lazy_static-1.5.0", - "description": "A macro for declaring lazily evaluated statics in Rust.", + "SPDXID": "SPDXRef-Package-hashbrown-0.14.5", + "description": "A Rust port of Google's SwissTable hash map", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/lazy_static@1.5.0", + "referenceLocator": "pkg:cargo/hashbrown@0.14.5", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "lazy_static", - "versionInfo": "1.5.0" + "name": "hashbrown", + "versionInfo": "0.14.5" }, { - "SPDXID": "SPDXRef-Package-tracing-0.1.40", - "description": "Application-level tracing for Rust.\n", + "SPDXID": "SPDXRef-Package-tor-circmgr-0.24.0", + "description": "Manage a set of anonymous circuits over the Tor network", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tracing@0.1.40", + "referenceLocator": "pkg:cargo/tor-circmgr@0.24.0", "referenceType": "purl" } ], - "homepage": "https://tokio.rs", - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "tracing", - "versionInfo": "0.1.40" + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "tor-circmgr", + "versionInfo": "0.24.0" }, { - "SPDXID": "SPDXRef-Package-thiserror-impl-1.0.63", - "description": "Implementation detail of the `thiserror` crate", + "SPDXID": "SPDXRef-Package-openssl-0.10.66", + "description": "OpenSSL bindings", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/thiserror-impl@1.0.63", + "referenceLocator": "pkg:cargo/openssl@0.10.66", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "thiserror-impl", - "versionInfo": "1.0.63" - }, + "licenseConcluded": "Apache-2.0", + "licenseDeclared": "Apache-2.0", + "name": "openssl", + "versionInfo": "0.10.66" + }, { - "SPDXID": "SPDXRef-Package-rusqlite-0.32.1", - "description": "Ergonomic wrapper for SQLite", + "SPDXID": "SPDXRef-Package-zerovec-derive-0.10.3", + "description": "Custom derive for the zerovec crate", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/rusqlite@0.32.1", + "referenceLocator": "pkg:cargo/zerovec-derive@0.10.3", "referenceType": "purl" } ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "rusqlite", - "versionInfo": "0.32.1" + "licenseConcluded": "Unicode-3.0", + "licenseDeclared": "Unicode-3.0", + "name": "zerovec-derive", + "versionInfo": "0.10.3" }, { - "SPDXID": "SPDXRef-Package-derive_builder_core_fork_arti-0.11.2", - "description": "Internal helper library for the derive_builder crate.", + "SPDXID": "SPDXRef-Package-async-trait-0.1.82", + "description": "Type erasure for async trait methods", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/derive_builder_core_fork_arti@0.11.2", + "referenceLocator": "pkg:cargo/async-trait@0.1.82", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT/Apache-2.0", - "name": "derive_builder_core_fork_arti", - "versionInfo": "0.11.2" + "licenseDeclared": "MIT OR Apache-2.0", + "name": "async-trait", + "versionInfo": "0.1.82" }, { - "SPDXID": "SPDXRef-Package-crypto-common-0.1.6", - "description": "Common cryptographic traits", + "SPDXID": "SPDXRef-Package-futures-sink-0.3.30", + "description": "The asynchronous `Sink` trait for the futures-rs library.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/crypto-common@0.1.6", + "referenceLocator": "pkg:cargo/futures-sink@0.3.30", "referenceType": "purl" } ], + "homepage": "https://rust-lang.github.io/futures-rs", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "crypto-common", - "versionInfo": "0.1.6" + "name": "futures-sink", + "versionInfo": "0.3.30" }, { - "SPDXID": "SPDXRef-Package-litemap-0.7.3", - "description": "A key-value Map implementation based on a flat, sorted Vec.", + "SPDXID": "SPDXRef-Package-x25519-dalek-2.0.1", + "description": "X25519 elliptic curve Diffie-Hellman key exchange in pure-Rust, using curve25519-dalek.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/litemap@0.7.3", + "referenceLocator": "pkg:cargo/x25519-dalek@2.0.1", "referenceType": "purl" } ], - "licenseConcluded": "Unicode-3.0", - "licenseDeclared": "Unicode-3.0", - "name": "litemap", - "versionInfo": "0.7.3" + "homepage": "https://github.com/dalek-cryptography/curve25519-dalek", + "licenseConcluded": "BSD-3-Clause", + "licenseDeclared": "BSD-3-Clause", + "name": "x25519-dalek", + "versionInfo": "2.0.1" }, { - "SPDXID": "SPDXRef-Package-windows_aarch64_msvc-0.52.6", - "description": "Import lib for Windows", + "SPDXID": "SPDXRef-Package-windows-core-0.52.0", + "description": "Rust for Windows", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/windows_aarch64_msvc@0.52.6", + "referenceLocator": "pkg:cargo/windows-core@0.52.0", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "windows_aarch64_msvc", - "versionInfo": "0.52.6" + "name": "windows-core", + "versionInfo": "0.52.0" }, { - "SPDXID": "SPDXRef-Package-hostname-validator-1.1.1", - "description": "Validate hostnames according to IETF RFC 1123", + "SPDXID": "SPDXRef-Package-windows_i686_msvc-0.52.6", + "description": "Import lib for Windows", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/hostname-validator@1.1.1", + "referenceLocator": "pkg:cargo/windows_i686_msvc@0.52.6", "referenceType": "purl" } ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "hostname-validator", - "versionInfo": "1.1.1" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "windows_i686_msvc", + "versionInfo": "0.52.6" }, { - "SPDXID": "SPDXRef-Package-num_enum-0.6.1", - "description": "Procedural macros to make inter-operation between primitives and enums easier.", + "SPDXID": "SPDXRef-Package-thiserror-impl-1.0.63", + "description": "Implementation detail of the `thiserror` crate", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/num_enum@0.6.1", + "referenceLocator": "pkg:cargo/thiserror-impl@1.0.63", "referenceType": "purl" } ], - "licenseConcluded": "BSD-3-Clause OR MIT OR Apache-2.0", - "licenseDeclared": "BSD-3-Clause OR MIT OR Apache-2.0", - "name": "num_enum", - "versionInfo": "0.6.1" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "thiserror-impl", + "versionInfo": "1.0.63" }, { - "SPDXID": "SPDXRef-Package-tor-chanmgr-0.24.0", - "description": "Manage a set of connections to the Tor network", + "SPDXID": "SPDXRef-Package-tor-config-0.24.0", + "description": "Low-level configuration for the Arti Tor implementation", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tor-chanmgr@0.24.0", + "referenceLocator": "pkg:cargo/tor-config@0.24.0", "referenceType": "purl" } ], "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "tor-chanmgr", + "name": "tor-config", "versionInfo": "0.24.0" }, { - "SPDXID": "SPDXRef-Package-windows-sys-0.59.0", - "description": "Rust for Windows", + "SPDXID": "SPDXRef-Package-data-encoding-macro-0.1.15", + "description": "Macros for data-encoding", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/windows-sys@0.59.0", + "referenceLocator": "pkg:cargo/data-encoding-macro@0.1.15", + "referenceType": "purl" + } + ], + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "data-encoding-macro", + "versionInfo": "0.1.15" + }, + { + "SPDXID": "SPDXRef-Package-typed-index-collections-3.1.0", + "description": "Typed index version of Rust slice and Vec containers", + "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceLocator": "pkg:cargo/typed-index-collections@3.1.0", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "windows-sys", - "versionInfo": "0.59.0" + "name": "typed-index-collections", + "versionInfo": "3.1.0" }, { - "SPDXID": "SPDXRef-Package-zerovec-0.10.4", - "description": "Zero-copy vector backed by a byte array", + "SPDXID": "SPDXRef-Package-icu_properties-1.5.1", + "description": "Definitions for Unicode properties", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/zerovec@0.10.4", + "referenceLocator": "pkg:cargo/icu_properties@1.5.1", "referenceType": "purl" } ], + "homepage": "https://icu4x.unicode.org", "licenseConcluded": "Unicode-3.0", "licenseDeclared": "Unicode-3.0", - "name": "zerovec", - "versionInfo": "0.10.4" + "name": "icu_properties", + "versionInfo": "1.5.1" }, { - "SPDXID": "SPDXRef-Package-tor-basic-utils-0.24.0", - "description": "General helpers used by Tor", + "SPDXID": "SPDXRef-Package-wasm-bindgen-shared-0.2.93", + "description": "Shared support between wasm-bindgen and wasm-bindgen cli, an internal\ndependency.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tor-basic-utils@0.24.0", + "referenceLocator": "pkg:cargo/wasm-bindgen-shared@0.2.93", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", + "homepage": "https://rustwasm.github.io/wasm-bindgen/", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "tor-basic-utils", - "versionInfo": "0.24.0" + "name": "wasm-bindgen-shared", + "versionInfo": "0.2.93" }, { - "SPDXID": "SPDXRef-Package-chrono-0.4.38", - "description": "Date and time library for Rust", + "SPDXID": "SPDXRef-Package-weak-table-0.3.2", + "description": "Weak hash maps and sets", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/chrono@0.4.38", + "referenceLocator": "pkg:cargo/weak-table@0.3.2", "referenceType": "purl" } ], - "homepage": "https://github.com/chronotope/chrono", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "chrono", - "versionInfo": "0.4.38" + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "weak-table", + "versionInfo": "0.3.2" }, { - "SPDXID": "SPDXRef-Package-p384-0.13.0", - "description": "Pure Rust implementation of the NIST P-384 (a.k.a. secp384r1) elliptic curve\nas defined in SP 800-186 with support for ECDH, ECDSA signing/verification,\nand general purpose curve arithmetic support.\n", + "SPDXID": "SPDXRef-Package-kqueue-sys-1.0.4", + "description": "Low-level kqueue interface for BSDs", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/p384@0.13.0", + "referenceLocator": "pkg:cargo/kqueue-sys@1.0.4", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "p384", - "versionInfo": "0.13.0" + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "kqueue-sys", + "versionInfo": "1.0.4" }, { - "SPDXID": "SPDXRef-Package-fslock-0.2.1", - "description": "A library to use files as locks", + "SPDXID": "SPDXRef-Package-slotmap-careful-0.2.1", + "description": "Wrap the slotmap crate and prevent key reuse", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/fslock@0.2.1", + "referenceLocator": "pkg:cargo/slotmap-careful@0.2.1", "referenceType": "purl" } ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "fslock", + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "slotmap-careful", "versionInfo": "0.2.1" }, { - "SPDXID": "SPDXRef-Package-darling_core-0.14.4", - "description": "Helper crate for proc-macro library for reading attributes into structs when\nimplementing custom derives. Use https://crates.io/crates/darling in your code.\n", + "SPDXID": "SPDXRef-Package-proc-macro-crate-3.2.0", + "description": "Replacement for crate (macro_rules keyword) in proc-macros\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/darling_core@0.14.4", + "referenceLocator": "pkg:cargo/proc-macro-crate@3.2.0", "referenceType": "purl" } ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "darling_core", - "versionInfo": "0.14.4" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "proc-macro-crate", + "versionInfo": "3.2.0" }, { - "SPDXID": "SPDXRef-Package-addr2line-0.22.0", - "description": "A cross-platform symbolication library written in Rust, using `gimli`", + "SPDXID": "SPDXRef-Package-amplify_derive-4.0.1", + "description": "Powerful derivation macros; part of the 'amplify' library", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/addr2line@0.22.0", + "referenceLocator": "pkg:cargo/amplify_derive@4.0.1", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "addr2line", - "versionInfo": "0.22.0" + "homepage": "https://github.com/rust-amplify", + "licenseConcluded": "Apache-2.0", + "licenseDeclared": "Apache-2.0", + "name": "amplify_derive", + "versionInfo": "4.0.1" }, { - "SPDXID": "SPDXRef-Package-tor-socksproto-0.24.0", - "description": "Encode and decode the SOCKS protocol, as extended in Tor", + "SPDXID": "SPDXRef-Package-security-framework-2.11.1", + "description": "Security.framework bindings for macOS and iOS", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tor-socksproto@0.24.0", + "referenceLocator": "pkg:cargo/security-framework@2.11.1", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", + "homepage": "https://lib.rs/crates/security_framework", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "tor-socksproto", - "versionInfo": "0.24.0" + "name": "security-framework", + "versionInfo": "2.11.1" }, { - "SPDXID": "SPDXRef-Package-humantime-serde-1.1.1", - "description": "Serde support for the `humantime` crate", + "SPDXID": "SPDXRef-Package-core-foundation-sys-0.8.7", + "description": "Bindings to Core Foundation for macOS", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/humantime-serde@1.1.1", + "referenceLocator": "pkg:cargo/core-foundation-sys@0.8.7", "referenceType": "purl" } ], + "homepage": "https://github.com/servo/core-foundation-rs", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "humantime-serde", - "versionInfo": "1.1.1" + "name": "core-foundation-sys", + "versionInfo": "0.8.7" }, { - "SPDXID": "SPDXRef-Package-wasi-0.11.0+wasi-snapshot-preview1", - "description": "Experimental WASI API bindings for Rust", + "SPDXID": "SPDXRef-Package-fslock-arti-fork-0.2.0", + "description": "A library to use files as locks, forked for use in Arti.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/wasi@0.11.0+wasi-snapshot-preview1", + "referenceLocator": "pkg:cargo/fslock-arti-fork@0.2.0", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT", - "name": "wasi", - "versionInfo": "0.11.0+wasi-snapshot-preview1" + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "fslock-arti-fork", + "versionInfo": "0.2.0" }, { - "SPDXID": "SPDXRef-Package-uuid-1.10.0", - "description": "A library to generate and parse UUIDs.", + "SPDXID": "SPDXRef-Package-tinyvec-1.8.0", + "description": "`tinyvec` provides 100% safe vec-like data structures.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/uuid@1.10.0", + "referenceLocator": "pkg:cargo/tinyvec@1.8.0", "referenceType": "purl" } ], - "homepage": "https://github.com/uuid-rs/uuid", - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "uuid", - "versionInfo": "1.10.0" + "licenseConcluded": "Zlib OR Apache-2.0 OR MIT", + "licenseDeclared": "Zlib OR Apache-2.0 OR MIT", + "name": "tinyvec", + "versionInfo": "1.8.0" }, { - "SPDXID": "SPDXRef-Package-derive-deftly-0.14.2", - "description": "An ergonomic way to write derive() macros", + "SPDXID": "SPDXRef-Package-tor-linkspec-0.24.0", + "description": "Parts of the Tor protocol that indicate specific relays on the network", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/derive-deftly@0.14.2", + "referenceLocator": "pkg:cargo/tor-linkspec@0.24.0", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/Diziet/rust-derive-deftly", - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "derive-deftly", - "versionInfo": "0.14.2" + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "tor-linkspec", + "versionInfo": "0.24.0" }, { - "SPDXID": "SPDXRef-Package-arti-client-0.24.0", - "description": "Library for connecting to the Tor network as an anonymous client", + "SPDXID": "SPDXRef-Package-block-buffer-0.10.4", + "description": "Buffer type for block processing of data", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/arti-client@0.24.0", + "referenceLocator": "pkg:cargo/block-buffer@0.10.4", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "arti-client", - "versionInfo": "0.24.0" + "name": "block-buffer", + "versionInfo": "0.10.4" }, { - "SPDXID": "SPDXRef-Package-icu_locid_transform_data-1.5.0", - "description": "Data for the icu_locid_transform crate", + "SPDXID": "SPDXRef-Package-hmac-0.12.1", + "description": "Generic implementation of Hash-based Message Authentication Code (HMAC)", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/icu_locid_transform_data@1.5.0", + "referenceLocator": "pkg:cargo/hmac@0.12.1", "referenceType": "purl" } ], - "homepage": "https://icu4x.unicode.org", - "licenseConcluded": "Unicode-3.0", - "licenseDeclared": "Unicode-3.0", - "name": "icu_locid_transform_data", - "versionInfo": "1.5.0" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "hmac", + "versionInfo": "0.12.1" }, { - "SPDXID": "SPDXRef-Package-adler-1.0.2", - "description": "A simple clean-room implementation of the Adler-32 checksum", + "SPDXID": "SPDXRef-Package-tor-key-forge-0.24.0", + "description": "Low level cryptography wrappers used by Tor", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/adler@1.0.2", + "referenceLocator": "pkg:cargo/tor-key-forge@0.24.0", "referenceType": "purl" } ], - "licenseConcluded": "0BSD OR MIT OR Apache-2.0", - "licenseDeclared": "0BSD OR MIT OR Apache-2.0", - "name": "adler", - "versionInfo": "1.0.2" + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "tor-key-forge", + "versionInfo": "0.24.0" }, { - "SPDXID": "SPDXRef-Package-serde_ignored-0.1.10", - "description": "Find out about keys that are ignored when deserializing data", + "SPDXID": "SPDXRef-Package-serde-1.0.209", + "description": "A generic serialization/deserialization framework", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/serde_ignored@0.1.10", + "referenceLocator": "pkg:cargo/serde@1.0.209", "referenceType": "purl" } ], + "homepage": "https://serde.rs", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "serde_ignored", - "versionInfo": "0.1.10" + "name": "serde", + "versionInfo": "1.0.209" }, { - "SPDXID": "SPDXRef-Package-x25519-dalek-2.0.1", - "description": "X25519 elliptic curve Diffie-Hellman key exchange in pure-Rust, using curve25519-dalek.", + "SPDXID": "SPDXRef-Package-tor-protover-0.24.0", + "description": "Implementation for Tor's subprotocol versioning", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/x25519-dalek@2.0.1", + "referenceLocator": "pkg:cargo/tor-protover@0.24.0", "referenceType": "purl" } ], - "homepage": "https://github.com/dalek-cryptography/curve25519-dalek", - "licenseConcluded": "BSD-3-Clause", - "licenseDeclared": "BSD-3-Clause", - "name": "x25519-dalek", - "versionInfo": "2.0.1" + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "tor-protover", + "versionInfo": "0.24.0" }, { - "SPDXID": "SPDXRef-Package-hashlink-0.9.1", - "description": "HashMap-like containers that hold their key-value pairs in a user controllable order", + "SPDXID": "SPDXRef-Package-cfg-if-1.0.0", + "description": "A macro to ergonomically define an item depending on a large number of #[cfg]\nparameters. Structured like an if-else chain, the first matching branch is the\nitem that gets emitted.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/hashlink@0.9.1", + "referenceLocator": "pkg:cargo/cfg-if@1.0.0", "referenceType": "purl" } ], + "homepage": "https://github.com/alexcrichton/cfg-if", "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "hashlink", - "versionInfo": "0.9.1" + "licenseDeclared": "MIT/Apache-2.0", + "name": "cfg-if", + "versionInfo": "1.0.0" }, { - "SPDXID": "SPDXRef-Package-libc-0.2.158", - "description": "Raw FFI bindings to platform libraries like libc.\n", + "SPDXID": "SPDXRef-Package-ff-0.13.0", + "description": "Library for building and interfacing with finite fields", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/libc@0.2.158", + "referenceLocator": "pkg:cargo/ff@0.13.0", "referenceType": "purl" } ], - "homepage": "https://github.com/rust-lang/libc", + "homepage": "https://github.com/zkcrypto/ff", "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "libc", - "versionInfo": "0.2.158" + "licenseDeclared": "MIT/Apache-2.0", + "name": "ff", + "versionInfo": "0.13.0" }, { - "SPDXID": "SPDXRef-Package-serde_derive-1.0.209", - "description": "Macros 1.1 implementation of #[derive(Serialize, Deserialize)]", + "SPDXID": "SPDXRef-Package-strum_macros-0.25.3", + "description": "Helpful macros for working with enums and strings", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/serde_derive@1.0.209", + "referenceLocator": "pkg:cargo/strum_macros@0.25.3", "referenceType": "purl" } ], - "homepage": "https://serde.rs", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "serde_derive", - "versionInfo": "1.0.209" + "homepage": "https://github.com/Peternator7/strum", + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "strum_macros", + "versionInfo": "0.25.3" }, { - "SPDXID": "SPDXRef-Package-ppv-lite86-0.2.20", - "description": "Implementation of the crypto-simd API for x86", + "SPDXID": "SPDXRef-Package-cookie-factory-0.3.3", + "description": "nom inspired serialization library", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/ppv-lite86@0.2.20", + "referenceLocator": "pkg:cargo/cookie-factory@0.3.3", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT/Apache-2.0", - "name": "ppv-lite86", - "versionInfo": "0.2.20" + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "cookie-factory", + "versionInfo": "0.3.3" }, { - "SPDXID": "SPDXRef-Package-ff-0.13.0", - "description": "Library for building and interfacing with finite fields", + "SPDXID": "SPDXRef-Package-amplify_syn-2.0.1", + "description": "Amplifying syn capabilities: helper functions for creating proc macro libraries", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/ff@0.13.0", + "referenceLocator": "pkg:cargo/amplify_syn@2.0.1", "referenceType": "purl" } ], - "homepage": "https://github.com/zkcrypto/ff", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT/Apache-2.0", - "name": "ff", - "versionInfo": "0.13.0" + "homepage": "https://github.com/rust-amplify", + "licenseConcluded": "Apache-2.0", + "licenseDeclared": "Apache-2.0", + "name": "amplify_syn", + "versionInfo": "2.0.1" }, { - "SPDXID": "SPDXRef-Package-paste-1.0.15", - "description": "Macros for all your token pasting needs", + "SPDXID": "SPDXRef-Package-write16-1.0.0", + "description": "A UTF-16 analog of the Write trait", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/paste@1.0.15", + "referenceLocator": "pkg:cargo/write16@1.0.0", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "paste", - "versionInfo": "1.0.15" + "homepage": "https://docs.rs/write16/", + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "write16", + "versionInfo": "1.0.0" }, { - "SPDXID": "SPDXRef-Package-either-1.13.0", - "description": "The enum `Either` with variants `Left` and `Right` is a general purpose sum type with two cases.\n", + "SPDXID": "SPDXRef-Package-cgosling-0.3.1", + "downloadLocation": "NONE", + "licenseConcluded": "NOASSERTION", + "name": "cgosling", + "versionInfo": "0.3.1" + }, + { + "SPDXID": "SPDXRef-Package-serde_bytes-0.11.15", + "description": "Optimized handling of `&[u8]` and `Vec` for Serde", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/either@1.13.0", + "referenceLocator": "pkg:cargo/serde_bytes@0.11.15", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "either", - "versionInfo": "1.13.0" + "name": "serde_bytes", + "versionInfo": "0.11.15" }, { - "SPDXID": "SPDXRef-Package-async-trait-0.1.82", - "description": "Type erasure for async trait methods", + "SPDXID": "SPDXRef-Package-same-file-1.0.6", + "description": "A simple crate for determining whether two file paths point to the same file.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/async-trait@0.1.82", + "referenceLocator": "pkg:cargo/same-file@1.0.6", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "async-trait", - "versionInfo": "0.1.82" + "homepage": "https://github.com/BurntSushi/same-file", + "licenseConcluded": "Unlicense OR MIT", + "licenseDeclared": "Unlicense/MIT", + "name": "same-file", + "versionInfo": "1.0.6" }, { - "SPDXID": "SPDXRef-Package-android-tzdata-0.1.1", - "description": "Parser for the Android-specific tzdata file", + "SPDXID": "SPDXRef-Package-quote-1.0.37", + "description": "Quasi-quoting macro quote!(...)", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/android-tzdata@0.1.1", + "referenceLocator": "pkg:cargo/quote@1.0.37", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "android-tzdata", - "versionInfo": "0.1.1" + "name": "quote", + "versionInfo": "1.0.37" }, { - "SPDXID": "SPDXRef-Package-windows_aarch64_msvc-0.48.5", - "description": "Import lib for Windows", + "SPDXID": "SPDXRef-Package-itoa-1.0.11", + "description": "Fast integer primitive to string conversion", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/windows_aarch64_msvc@0.48.5", + "referenceLocator": "pkg:cargo/itoa@1.0.11", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "windows_aarch64_msvc", - "versionInfo": "0.48.5" + "name": "itoa", + "versionInfo": "1.0.11" }, { - "SPDXID": "SPDXRef-Package-curve25519-dalek-derive-0.1.1", - "description": "curve25519-dalek Derives", + "SPDXID": "SPDXRef-Package-derive_builder_fork_arti-0.11.2", + "description": "Rust macro to automatically implement the builder pattern for arbitrary structs.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/curve25519-dalek-derive@0.1.1", + "referenceLocator": "pkg:cargo/derive_builder_fork_arti@0.11.2", "referenceType": "purl" } ], - "homepage": "https://github.com/dalek-cryptography/curve25519-dalek", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT/Apache-2.0", - "name": "curve25519-dalek-derive", - "versionInfo": "0.1.1" + "name": "derive_builder_fork_arti", + "versionInfo": "0.11.2" }, { - "SPDXID": "SPDXRef-Package-tor-key-forge-0.24.0", - "description": "Low level cryptography wrappers used by Tor", - "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tor-key-forge@0.24.0", - "referenceType": "purl" - } - ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "tor-key-forge", - "versionInfo": "0.24.0" - }, - { - "SPDXID": "SPDXRef-Package-phf_shared-0.11.2", - "description": "Support code shared by PHF libraries", + "SPDXID": "SPDXRef-Package-spin-0.9.8", + "description": "Spin-based synchronization primitives", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/phf_shared@0.11.2", + "referenceLocator": "pkg:cargo/spin@0.9.8", "referenceType": "purl" } ], "licenseConcluded": "MIT", "licenseDeclared": "MIT", - "name": "phf_shared", - "versionInfo": "0.11.2" + "name": "spin", + "versionInfo": "0.9.8" }, { - "SPDXID": "SPDXRef-Package-ryu-1.0.18", - "description": "Fast floating point to string conversion", + "SPDXID": "SPDXRef-Package-rand_core-0.6.4", + "description": "Core random number generator traits and tools for implementation.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/ryu@1.0.18", + "referenceLocator": "pkg:cargo/rand_core@0.6.4", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR BSL-1.0", - "licenseDeclared": "Apache-2.0 OR BSL-1.0", - "name": "ryu", - "versionInfo": "1.0.18" + "homepage": "https://rust-random.github.io/book", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "rand_core", + "versionInfo": "0.6.4" }, { - "SPDXID": "SPDXRef-Package-num-conv-0.1.0", - "description": "`num_conv` is a crate to convert between integer types without using `as` casts. This provides\nbetter certainty when refactoring, makes the exact behavior of code more explicit, and allows using\nturbofish syntax.\n", + "SPDXID": "SPDXRef-Package-sharded-slab-0.1.7", + "description": "A lock-free concurrent slab.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/num-conv@0.1.0", + "referenceLocator": "pkg:cargo/sharded-slab@0.1.7", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "num-conv", - "versionInfo": "0.1.0" + "homepage": "https://github.com/hawkw/sharded-slab", + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "sharded-slab", + "versionInfo": "0.1.7" }, { - "SPDXID": "SPDXRef-Package-syn-1.0.109", - "description": "Parser for Rust source code", + "SPDXID": "SPDXRef-Package-derive-deftly-macros-0.14.2", + "description": "Macros that implement the derive_deftly crate", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/syn@1.0.109", + "referenceLocator": "pkg:cargo/derive-deftly-macros@0.14.2", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "syn", - "versionInfo": "1.0.109" + "homepage": "https://gitlab.torproject.org/Diziet/rust-derive-deftly", + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "derive-deftly-macros", + "versionInfo": "0.14.2" }, { - "SPDXID": "SPDXRef-Package-toml_edit-0.22.20", - "description": "Yet another format-preserving TOML parser.", + "SPDXID": "SPDXRef-Package-funty-2.0.0", + "description": "Trait generalization over the primitive types", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/toml_edit@0.22.20", + "referenceLocator": "pkg:cargo/funty@2.0.0", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "toml_edit", - "versionInfo": "0.22.20" + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "funty", + "versionInfo": "2.0.0" }, { "SPDXID": "SPDXRef-Package-getrandom-0.2.15", @@ -1707,811 +1705,804 @@ "versionInfo": "0.2.15" }, { - "SPDXID": "SPDXRef-Package-pin-project-lite-0.2.14", - "description": "A lightweight version of pin-project written with declarative macros.\n", + "SPDXID": "SPDXRef-Package-miniz_oxide-0.7.4", + "description": "DEFLATE compression and decompression library rewritten in Rust based on miniz", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/pin-project-lite@0.2.14", + "referenceLocator": "pkg:cargo/miniz_oxide@0.7.4", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "pin-project-lite", - "versionInfo": "0.2.14" + "homepage": "https://github.com/Frommi/miniz_oxide/tree/master/miniz_oxide", + "licenseConcluded": "MIT OR Zlib OR Apache-2.0", + "licenseDeclared": "MIT OR Zlib OR Apache-2.0", + "name": "miniz_oxide", + "versionInfo": "0.7.4" }, { - "SPDXID": "SPDXRef-Package-strsim-0.10.0", - "description": "Implementations of string similarity metrics. Includes Hamming, Levenshtein,\nOSA, Damerau-Levenshtein, Jaro, Jaro-Winkler, and Sørensen-Dice.\n", + "SPDXID": "SPDXRef-Package-adler2-2.0.0", + "description": "A simple clean-room implementation of the Adler-32 checksum", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/strsim@0.10.0", + "referenceLocator": "pkg:cargo/adler2@2.0.0", "referenceType": "purl" } ], - "homepage": "https://github.com/dguo/strsim-rs", - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "strsim", - "versionInfo": "0.10.0" + "licenseConcluded": "0BSD OR MIT OR Apache-2.0", + "licenseDeclared": "0BSD OR MIT OR Apache-2.0", + "name": "adler2", + "versionInfo": "2.0.0" }, { - "SPDXID": "SPDXRef-Package-zeroize-1.8.1", - "description": "Securely clear secrets from memory with a simple trait built on\nstable Rust primitives which guarantee memory is zeroed using an\noperation will not be 'optimized away' by the compiler.\nUses a portable pure Rust implementation that works everywhere,\neven WASM!\n", + "SPDXID": "SPDXRef-Package-sanitize-filename-0.5.0", + "description": "A simple filename sanitizer, based on Node's sanitize-filename", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/zeroize@1.8.1", + "referenceLocator": "pkg:cargo/sanitize-filename@0.5.0", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "zeroize", - "versionInfo": "1.8.1" + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "sanitize-filename", + "versionInfo": "0.5.0" }, { - "SPDXID": "SPDXRef-Package-strum_macros-0.26.4", - "description": "Helpful macros for working with enums and strings", + "SPDXID": "SPDXRef-Package-glob-match-0.2.1", + "description": "An extremely fast glob matcher", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/strum_macros@0.26.4", + "referenceLocator": "pkg:cargo/glob-match@0.2.1", "referenceType": "purl" } ], - "homepage": "https://github.com/Peternator7/strum", "licenseConcluded": "MIT", "licenseDeclared": "MIT", - "name": "strum_macros", - "versionInfo": "0.26.4" + "name": "glob-match", + "versionInfo": "0.2.1" }, { - "SPDXID": "SPDXRef-Package-priority-queue-2.1.0", - "description": "A Priority Queue implemented as a heap with a function to efficiently change the priority of an item.", + "SPDXID": "SPDXRef-Package-icu_provider_macros-1.5.0", + "description": "Proc macros for ICU data providers", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/priority-queue@2.1.0", + "referenceLocator": "pkg:cargo/icu_provider_macros@1.5.0", "referenceType": "purl" } ], - "licenseConcluded": "LGPL-3.0-or-later OR MPL-2.0", - "licenseDeclared": "LGPL-3.0-or-later OR MPL-2.0", - "name": "priority-queue", - "versionInfo": "2.1.0" + "homepage": "https://icu4x.unicode.org", + "licenseConcluded": "Unicode-3.0", + "licenseDeclared": "Unicode-3.0", + "name": "icu_provider_macros", + "versionInfo": "1.5.0" }, { - "SPDXID": "SPDXRef-Package-windows_i686_gnullvm-0.52.6", - "description": "Import lib for Windows", + "SPDXID": "SPDXRef-Package-num_enum_derive-0.6.1", + "description": "Internal implementation details for ::num_enum (Procedural macros to make inter-operation between primitives and enums easier)", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/windows_i686_gnullvm@0.52.6", + "referenceLocator": "pkg:cargo/num_enum_derive@0.6.1", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "windows_i686_gnullvm", - "versionInfo": "0.52.6" + "licenseConcluded": "BSD-3-Clause OR MIT OR Apache-2.0", + "licenseDeclared": "BSD-3-Clause OR MIT OR Apache-2.0", + "name": "num_enum_derive", + "versionInfo": "0.6.1" }, { - "SPDXID": "SPDXRef-Package-windows_i686_gnu-0.48.5", - "description": "Import lib for Windows", + "SPDXID": "SPDXRef-Package-anyhow-1.0.86", + "description": "Flexible concrete Error type built on std::error::Error", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/windows_i686_gnu@0.48.5", + "referenceLocator": "pkg:cargo/anyhow@1.0.86", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "windows_i686_gnu", - "versionInfo": "0.48.5" + "name": "anyhow", + "versionInfo": "1.0.86" }, { - "SPDXID": "SPDXRef-Package-windows_x86_64_gnu-0.52.6", - "description": "Import lib for Windows", + "SPDXID": "SPDXRef-Package-slotmap-1.0.7", + "description": "Slotmap data structure", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/windows_x86_64_gnu@0.52.6", + "referenceLocator": "pkg:cargo/slotmap@1.0.7", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "windows_x86_64_gnu", - "versionInfo": "0.52.6" + "licenseConcluded": "Zlib", + "licenseDeclared": "Zlib", + "name": "slotmap", + "versionInfo": "1.0.7" }, { - "SPDXID": "SPDXRef-Package-winapi-x86_64-pc-windows-gnu-0.4.0", - "description": "Import libraries for the x86_64-pc-windows-gnu target. Please don't use this crate directly, depend on winapi instead.", + "SPDXID": "SPDXRef-Package-rfc6979-0.4.0", + "description": "Pure Rust implementation of RFC6979: Deterministic Usage of the\nDigital Signature Algorithm (DSA) and Elliptic Curve Digital Signature Algorithm (ECDSA)\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/winapi-x86_64-pc-windows-gnu@0.4.0", + "referenceLocator": "pkg:cargo/rfc6979@0.4.0", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT/Apache-2.0", - "name": "winapi-x86_64-pc-windows-gnu", + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "rfc6979", "versionInfo": "0.4.0" }, { - "SPDXID": "SPDXRef-Package-curve25519-dalek-4.1.3", - "description": "A pure-Rust implementation of group operations on ristretto255 and Curve25519", + "SPDXID": "SPDXRef-Package-event-listener-5.3.1", + "description": "Notify async tasks or threads", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/curve25519-dalek@4.1.3", + "referenceLocator": "pkg:cargo/event-listener@5.3.1", "referenceType": "purl" } ], - "homepage": "https://github.com/dalek-cryptography/curve25519-dalek", - "licenseConcluded": "BSD-3-Clause", - "licenseDeclared": "BSD-3-Clause", - "name": "curve25519-dalek", - "versionInfo": "4.1.3" + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "event-listener", + "versionInfo": "5.3.1" }, { - "SPDXID": "SPDXRef-Package-windows_i686_gnu-0.52.6", - "description": "Import lib for Windows", + "SPDXID": "SPDXRef-Package-filetime-0.2.25", + "description": "Platform-agnostic accessors of timestamps in File metadata\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/windows_i686_gnu@0.52.6", + "referenceLocator": "pkg:cargo/filetime@0.2.25", "referenceType": "purl" } ], + "homepage": "https://github.com/alexcrichton/filetime", "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "windows_i686_gnu", - "versionInfo": "0.52.6" + "licenseDeclared": "MIT/Apache-2.0", + "name": "filetime", + "versionInfo": "0.2.25" }, { - "SPDXID": "SPDXRef-Package-sha1-0.10.6", - "description": "SHA-1 hash function", + "SPDXID": "SPDXRef-Package-der-0.7.9", + "description": "Pure Rust embedded-friendly implementation of the Distinguished Encoding Rules\n(DER) for Abstract Syntax Notation One (ASN.1) as described in ITU X.690 with\nfull support for heapless no_std targets\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/sha1@0.10.6", + "referenceLocator": "pkg:cargo/der@0.7.9", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "sha1", - "versionInfo": "0.10.6" + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "der", + "versionInfo": "0.7.9" }, { - "SPDXID": "SPDXRef-Package-coarsetime-0.1.34", - "description": "Time and duration crate optimized for speed", + "SPDXID": "SPDXRef-Package-crossbeam-utils-0.8.20", + "description": "Utilities for concurrent programming", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/coarsetime@0.1.34", + "referenceLocator": "pkg:cargo/crossbeam-utils@0.8.20", "referenceType": "purl" } ], - "homepage": "https://github.com/jedisct1/rust-coarsetime", - "licenseConcluded": "ISC", - "licenseDeclared": "ISC", - "name": "coarsetime", - "versionInfo": "0.1.34" + "homepage": "https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-utils", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "crossbeam-utils", + "versionInfo": "0.8.20" }, { - "SPDXID": "SPDXRef-Package-tokio-stream-0.1.16", - "description": "Utilities to work with `Stream` and `tokio`.\n", + "SPDXID": "SPDXRef-Package-subtle-2.6.1", + "description": "Pure-Rust traits and utilities for constant-time cryptographic implementations.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tokio-stream@0.1.16", + "referenceLocator": "pkg:cargo/subtle@2.6.1", "referenceType": "purl" } ], - "homepage": "https://tokio.rs", - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "tokio-stream", - "versionInfo": "0.1.16" + "homepage": "https://dalek.rs/", + "licenseConcluded": "BSD-3-Clause", + "licenseDeclared": "BSD-3-Clause", + "name": "subtle", + "versionInfo": "2.6.1" }, { - "SPDXID": "SPDXRef-Package-strum-0.26.3", - "description": "Helpful macros for working with enums and strings", + "SPDXID": "SPDXRef-Package-indexmap-2.5.0", + "description": "A hash table with consistent order and fast iteration.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/strum@0.26.3", + "referenceLocator": "pkg:cargo/indexmap@2.5.0", "referenceType": "purl" } ], - "homepage": "https://github.com/Peternator7/strum", - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "strum", - "versionInfo": "0.26.3" + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "indexmap", + "versionInfo": "2.5.0" }, { - "SPDXID": "SPDXRef-Package-windows-targets-0.48.5", - "description": "Import libs for Windows", + "SPDXID": "SPDXRef-Package-libredox-0.1.3", + "description": "Redox stable ABI", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/windows-targets@0.48.5", + "referenceLocator": "pkg:cargo/libredox@0.1.3", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "windows-targets", - "versionInfo": "0.48.5" + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "libredox", + "versionInfo": "0.1.3" }, { - "SPDXID": "SPDXRef-Package-heck-0.5.0", - "description": "heck is a case conversion library.", + "SPDXID": "SPDXRef-Package-num-bigint-dig-0.8.4", + "description": "Big integer implementation for Rust", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/heck@0.5.0", + "referenceLocator": "pkg:cargo/num-bigint-dig@0.8.4", "referenceType": "purl" } ], + "homepage": "https://github.com/dignifiedquire/num-bigint", "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "heck", - "versionInfo": "0.5.0" + "licenseDeclared": "MIT/Apache-2.0", + "name": "num-bigint-dig", + "versionInfo": "0.8.4" }, { - "SPDXID": "SPDXRef-Package-yoke-0.7.4", - "description": "Abstraction allowing borrowed data to be carried along with the backing data it borrows from", + "SPDXID": "SPDXRef-Package-proc-macro2-1.0.86", + "description": "A substitute implementation of the compiler's `proc_macro` API to decouple token-based libraries from the procedural macro use case.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/yoke@0.7.4", + "referenceLocator": "pkg:cargo/proc-macro2@1.0.86", "referenceType": "purl" } ], - "licenseConcluded": "Unicode-3.0", - "licenseDeclared": "Unicode-3.0", - "name": "yoke", - "versionInfo": "0.7.4" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "proc-macro2", + "versionInfo": "1.0.86" }, { - "SPDXID": "SPDXRef-Package-tracing-log-0.2.0", - "description": "Provides compatibility between `tracing` and the `log` crate.\n", + "SPDXID": "SPDXRef-Package-tor-config-path-0.24.0", + "description": "Low-level file path handling for configuration of the Arti Tor implementation", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tracing-log@0.2.0", + "referenceLocator": "pkg:cargo/tor-config-path@0.24.0", "referenceType": "purl" } ], - "homepage": "https://tokio.rs", - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "tracing-log", - "versionInfo": "0.2.0" + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "tor-config-path", + "versionInfo": "0.24.0" }, { - "SPDXID": "SPDXRef-Package-backtrace-0.3.73", - "description": "A library to acquire a stack trace (backtrace) at runtime in a Rust program.\n", + "SPDXID": "SPDXRef-Package-num-conv-0.1.0", + "description": "`num_conv` is a crate to convert between integer types without using `as` casts. This provides\nbetter certainty when refactoring, makes the exact behavior of code more explicit, and allows using\nturbofish syntax.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/backtrace@0.3.73", + "referenceLocator": "pkg:cargo/num-conv@0.1.0", "referenceType": "purl" } ], - "homepage": "https://github.com/rust-lang/backtrace-rs", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "backtrace", - "versionInfo": "0.3.73" + "name": "num-conv", + "versionInfo": "0.1.0" }, { - "SPDXID": "SPDXRef-Package-glob-match-0.2.1", - "description": "An extremely fast glob matcher", + "SPDXID": "SPDXRef-Package-bson-2.11.0", + "description": "Encoding and decoding support for BSON in Rust", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/glob-match@0.2.1", + "referenceLocator": "pkg:cargo/bson@2.11.0", "referenceType": "purl" } ], "licenseConcluded": "MIT", "licenseDeclared": "MIT", - "name": "glob-match", - "versionInfo": "0.2.1" + "name": "bson", + "versionInfo": "2.11.0" }, { - "SPDXID": "SPDXRef-Package-signal-hook-registry-1.4.2", - "description": "Backend crate for signal-hook", + "SPDXID": "SPDXRef-Package-signature-2.2.0", + "description": "Traits for cryptographic signature algorithms (e.g. ECDSA, Ed25519)", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/signal-hook-registry@1.4.2", + "referenceLocator": "pkg:cargo/signature@2.2.0", "referenceType": "purl" } ], "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0/MIT", - "name": "signal-hook-registry", - "versionInfo": "1.4.2" + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "signature", + "versionInfo": "2.2.0" }, { - "SPDXID": "SPDXRef-Package-crossbeam-utils-0.8.20", - "description": "Utilities for concurrent programming", + "SPDXID": "SPDXRef-Package-zerocopy-derive-0.7.35", + "description": "Custom derive for traits from the zerocopy crate", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/crossbeam-utils@0.8.20", + "referenceLocator": "pkg:cargo/zerocopy-derive@0.7.35", "referenceType": "purl" } ], - "homepage": "https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-utils", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "crossbeam-utils", - "versionInfo": "0.8.20" + "licenseConcluded": "BSD-2-Clause OR Apache-2.0 OR MIT", + "licenseDeclared": "BSD-2-Clause OR Apache-2.0 OR MIT", + "name": "zerocopy-derive", + "versionInfo": "0.7.35" }, { - "SPDXID": "SPDXRef-Package-tokio-1.40.0", - "description": "An event-driven, non-blocking I/O platform for writing asynchronous I/O\nbacked applications.\n", + "SPDXID": "SPDXRef-Package-num-bigint-0.4.6", + "description": "Big integer implementation for Rust", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tokio@1.40.0", + "referenceLocator": "pkg:cargo/num-bigint@0.4.6", "referenceType": "purl" } ], - "homepage": "https://tokio.rs", - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "tokio", - "versionInfo": "1.40.0" + "homepage": "https://github.com/rust-num/num-bigint", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "num-bigint", + "versionInfo": "0.4.6" }, { - "SPDXID": "SPDXRef-Package-zeroize_derive-1.4.2", - "description": "Custom derive support for zeroize", + "SPDXID": "SPDXRef-Package-windows_i686_gnullvm-0.52.6", + "description": "Import lib for Windows", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/zeroize_derive@1.4.2", + "referenceLocator": "pkg:cargo/windows_i686_gnullvm@0.52.6", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "zeroize_derive", - "versionInfo": "1.4.2" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "windows_i686_gnullvm", + "versionInfo": "0.52.6" }, { - "SPDXID": "SPDXRef-Package-amplify-4.7.0", - "description": "Amplifying Rust language capabilities: multiple generic trait implementations, type wrappers, derive macros", + "SPDXID": "SPDXRef-Package-percent-encoding-2.3.1", + "description": "Percent encoding and decoding", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/amplify@4.7.0", + "referenceLocator": "pkg:cargo/percent-encoding@2.3.1", "referenceType": "purl" } ], - "homepage": "https://github.com/rust-amplify", - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "amplify", - "versionInfo": "4.7.0" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "percent-encoding", + "versionInfo": "2.3.1" }, { - "SPDXID": "SPDXRef-Package-errno-0.3.9", - "description": "Cross-platform interface to the `errno` variable.", + "SPDXID": "SPDXRef-Package-hashlink-0.9.1", + "description": "HashMap-like containers that hold their key-value pairs in a user controllable order", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/errno@0.3.9", + "referenceLocator": "pkg:cargo/hashlink@0.9.1", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "errno", - "versionInfo": "0.3.9" + "name": "hashlink", + "versionInfo": "0.9.1" }, { - "SPDXID": "SPDXRef-Package-figment-0.10.19", - "description": "A configuration library so con-free, it's unreal.", + "SPDXID": "SPDXRef-Package-darling-0.14.4", + "description": "A proc-macro library for reading attributes into structs when\nimplementing custom derives.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/figment@0.10.19", + "referenceLocator": "pkg:cargo/darling@0.14.4", + "referenceType": "purl" + } + ], + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "darling", + "versionInfo": "0.14.4" + }, + { + "SPDXID": "SPDXRef-Package-openssl-probe-0.1.5", + "description": "Tool for helping to find SSL certificate locations on the system for OpenSSL\n", + "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceLocator": "pkg:cargo/openssl-probe@0.1.5", "referenceType": "purl" } ], + "homepage": "https://github.com/alexcrichton/openssl-probe", "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "figment", - "versionInfo": "0.10.19" + "licenseDeclared": "MIT/Apache-2.0", + "name": "openssl-probe", + "versionInfo": "0.1.5" }, { - "SPDXID": "SPDXRef-Package-proc-macro2-1.0.86", - "description": "A substitute implementation of the compiler's `proc_macro` API to decouple token-based libraries from the procedural macro use case.", + "SPDXID": "SPDXRef-Package-iana-time-zone-haiku-0.1.2", + "description": "iana-time-zone support crate for Haiku OS", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/proc-macro2@1.0.86", + "referenceLocator": "pkg:cargo/iana-time-zone-haiku@0.1.2", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "proc-macro2", - "versionInfo": "1.0.86" + "name": "iana-time-zone-haiku", + "versionInfo": "0.1.2" }, { - "SPDXID": "SPDXRef-Package-tap-1.0.1", - "description": "Generic extensions for tapping values in Rust", + "SPDXID": "SPDXRef-Package-equivalent-1.0.1", + "description": "Traits for key comparison in maps.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tap@1.0.1", + "referenceLocator": "pkg:cargo/equivalent@1.0.1", "referenceType": "purl" } ], - "homepage": "https://github.com/myrrlyn/tap", - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "tap", + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "equivalent", "versionInfo": "1.0.1" }, { - "SPDXID": "SPDXRef-Package-openssl-macros-0.1.1", - "description": "Internal macros used by the openssl crate.", + "SPDXID": "SPDXRef-Package-sha3-0.10.8", + "description": "Pure Rust implementation of SHA-3, a family of Keccak-based hash functions\nincluding the SHAKE family of eXtendable-Output Functions (XOFs), as well as\nthe accelerated variant TurboSHAKE\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/openssl-macros@0.1.1", + "referenceLocator": "pkg:cargo/sha3@0.10.8", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT/Apache-2.0", - "name": "openssl-macros", - "versionInfo": "0.1.1" + "licenseDeclared": "MIT OR Apache-2.0", + "name": "sha3", + "versionInfo": "0.10.8" }, { - "SPDXID": "SPDXRef-Package-windows_i686_msvc-0.48.5", - "description": "Import lib for Windows", + "SPDXID": "SPDXRef-Package-security-framework-sys-2.11.1", + "description": "Apple `Security.framework` low-level FFI bindings", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/windows_i686_msvc@0.48.5", + "referenceLocator": "pkg:cargo/security-framework-sys@2.11.1", "referenceType": "purl" } ], + "homepage": "https://lib.rs/crates/security-framework-sys", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "windows_i686_msvc", - "versionInfo": "0.48.5" + "name": "security-framework-sys", + "versionInfo": "2.11.1" }, { - "SPDXID": "SPDXRef-Package-serde-1.0.209", - "description": "A generic serialization/deserialization framework", + "SPDXID": "SPDXRef-Package-ppv-lite86-0.2.20", + "description": "Implementation of the crypto-simd API for x86", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/serde@1.0.209", + "referenceLocator": "pkg:cargo/ppv-lite86@0.2.20", "referenceType": "purl" } ], - "homepage": "https://serde.rs", "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "serde", - "versionInfo": "1.0.209" + "licenseDeclared": "MIT/Apache-2.0", + "name": "ppv-lite86", + "versionInfo": "0.2.20" }, { - "SPDXID": "SPDXRef-Package-tor-bytes-0.24.0", - "description": "Helpers for encoding and decoding byte-orientted data, as used by Tor", + "SPDXID": "SPDXRef-Package-keccak-0.1.5", + "description": "Pure Rust implementation of the Keccak sponge function including the keccak-f\nand keccak-p variants\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tor-bytes@0.24.0", + "referenceLocator": "pkg:cargo/keccak@0.1.5", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "tor-bytes", - "versionInfo": "0.24.0" + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "keccak", + "versionInfo": "0.1.5" }, { - "SPDXID": "SPDXRef-Package-write16-1.0.0", - "description": "A UTF-16 analog of the Write trait", + "SPDXID": "SPDXRef-Package-by_address-1.2.1", + "description": "Wrapper for comparing and hashing pointers by address", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/write16@1.0.0", + "referenceLocator": "pkg:cargo/by_address@1.2.1", "referenceType": "purl" } ], - "homepage": "https://docs.rs/write16/", - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "write16", - "versionInfo": "1.0.0" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "by_address", + "versionInfo": "1.2.1" }, { - "SPDXID": "SPDXRef-Package-derive_more-1.0.0", - "description": "Adds #[derive(x)] macros for more traits", + "SPDXID": "SPDXRef-Package-tokio-macros-2.4.0", + "description": "Tokio's proc macros.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/derive_more@1.0.0", + "referenceLocator": "pkg:cargo/tokio-macros@2.4.0", "referenceType": "purl" } ], + "homepage": "https://tokio.rs", "licenseConcluded": "MIT", "licenseDeclared": "MIT", - "name": "derive_more", - "versionInfo": "1.0.0" + "name": "tokio-macros", + "versionInfo": "2.4.0" }, { - "SPDXID": "SPDXRef-Package-pwd-grp-0.1.1", - "description": "Access Unix passwords and groups", + "SPDXID": "SPDXRef-Package-derive_more-impl-1.0.0", + "description": "Internal implementation of `derive_more` crate", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/pwd-grp@0.1.1", + "referenceLocator": "pkg:cargo/derive_more-impl@1.0.0", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/rust-pwd-grp", "licenseConcluded": "MIT", "licenseDeclared": "MIT", - "name": "pwd-grp", - "versionInfo": "0.1.1" + "name": "derive_more-impl", + "versionInfo": "1.0.0" }, { - "SPDXID": "SPDXRef-Package-fs-mistrust-0.8.0", - "description": "Ensure that files can only be read or written by trusted users", + "SPDXID": "SPDXRef-Package-errno-0.3.9", + "description": "Cross-platform interface to the `errno` variable.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/fs-mistrust@0.8.0", + "referenceLocator": "pkg:cargo/errno@0.3.9", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "fs-mistrust", - "versionInfo": "0.8.0" + "name": "errno", + "versionInfo": "0.3.9" }, { - "SPDXID": "SPDXRef-Package-tor-netdoc-0.24.0", - "description": "Network document formats used with the Tor protocols.", + "SPDXID": "SPDXRef-Package-regex-automata-0.4.7", + "description": "Automata construction and matching using regular expressions.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tor-netdoc@0.24.0", + "referenceLocator": "pkg:cargo/regex-automata@0.4.7", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "tor-netdoc", - "versionInfo": "0.24.0" + "name": "regex-automata", + "versionInfo": "0.4.7" }, { - "SPDXID": "SPDXRef-Package-smallvec-1.13.2", - "description": "'Small vector' optimization: store up to a small number of items on the stack", + "SPDXID": "SPDXRef-Package-humantime-2.1.0", + "description": " A parser and formatter for std::time::{Duration, SystemTime}\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/smallvec@1.13.2", + "referenceLocator": "pkg:cargo/humantime@2.1.0", "referenceType": "purl" } ], + "homepage": "https://github.com/tailhook/humantime", "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "smallvec", - "versionInfo": "1.13.2" + "licenseDeclared": "MIT/Apache-2.0", + "name": "humantime", + "versionInfo": "2.1.0" }, { - "SPDXID": "SPDXRef-Package-asynchronous-codec-0.7.0", - "description": "Utilities for encoding and decoding frames using `async/await`", + "SPDXID": "SPDXRef-Package-valuable-0.1.0", + "description": "Object-safe value inspection, used to pass un-typed structured data across trait-object boundaries.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/asynchronous-codec@0.7.0", + "referenceLocator": "pkg:cargo/valuable@0.1.0", "referenceType": "purl" } ], - "homepage": "https://github.com/mxinden/asynchronous-codec", "licenseConcluded": "MIT", "licenseDeclared": "MIT", - "name": "asynchronous-codec", - "versionInfo": "0.7.0" - }, - { - "SPDXID": "SPDXRef-Package-zstd-safe-7.2.1", - "description": "Safe low-level bindings for the zstd compression library.", - "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/zstd-safe@7.2.1", - "referenceType": "purl" - } - ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT/Apache-2.0", - "name": "zstd-safe", - "versionInfo": "7.2.1" + "name": "valuable", + "versionInfo": "0.1.0" }, { - "SPDXID": "SPDXRef-Package-winapi-i686-pc-windows-gnu-0.4.0", - "description": "Import libraries for the i686-pc-windows-gnu target. Please don't use this crate directly, depend on winapi instead.", + "SPDXID": "SPDXRef-Package-rsa-0.9.6", + "description": "Pure Rust RSA implementation", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/winapi-i686-pc-windows-gnu@0.4.0", + "referenceLocator": "pkg:cargo/rsa@0.9.6", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT/Apache-2.0", - "name": "winapi-i686-pc-windows-gnu", - "versionInfo": "0.4.0" + "licenseDeclared": "MIT OR Apache-2.0", + "name": "rsa", + "versionInfo": "0.9.6" }, { - "SPDXID": "SPDXRef-Package-toml_edit-0.19.15", - "description": "Yet another format-preserving TOML parser.", + "SPDXID": "SPDXRef-Package-tor-units-0.24.0", + "description": "Provides macros for types which are constrained within a range, ensuring invalid values are unrepresentable.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/toml_edit@0.19.15", + "referenceLocator": "pkg:cargo/tor-units@0.24.0", "referenceType": "purl" } ], + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "toml_edit", - "versionInfo": "0.19.15" + "name": "tor-units", + "versionInfo": "0.24.0" }, { - "SPDXID": "SPDXRef-Package-tor-async-utils-0.24.0", - "description": "Async/futures helpers for use with Tor", + "SPDXID": "SPDXRef-Package-num_enum-0.6.1", + "description": "Procedural macros to make inter-operation between primitives and enums easier.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tor-async-utils@0.24.0", + "referenceLocator": "pkg:cargo/num_enum@0.6.1", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "tor-async-utils", - "versionInfo": "0.24.0" + "licenseConcluded": "BSD-3-Clause OR MIT OR Apache-2.0", + "licenseDeclared": "BSD-3-Clause OR MIT OR Apache-2.0", + "name": "num_enum", + "versionInfo": "0.6.1" }, { - "SPDXID": "SPDXRef-Package-tor-memquota-0.24.0", - "description": "Memory use tracking and quota utilities, used by Tor software", + "SPDXID": "SPDXRef-Package-native-tls-0.2.12", + "description": "A wrapper over a platform's native TLS implementation", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tor-memquota@0.24.0", + "referenceLocator": "pkg:cargo/native-tls@0.2.12", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "tor-memquota", - "versionInfo": "0.24.0" + "name": "native-tls", + "versionInfo": "0.2.12" }, { - "SPDXID": "SPDXRef-Package-bytemuck-1.18.0", - "description": "A crate for mucking around with piles of bytes.", + "SPDXID": "SPDXRef-Package-android_system_properties-0.1.5", + "description": "Minimal Android system properties wrapper", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/bytemuck@1.18.0", + "referenceLocator": "pkg:cargo/android_system_properties@0.1.5", "referenceType": "purl" } ], - "licenseConcluded": "Zlib OR Apache-2.0 OR MIT", - "licenseDeclared": "Zlib OR Apache-2.0 OR MIT", - "name": "bytemuck", - "versionInfo": "1.18.0" + "homepage": "https://github.com/nical/android_system_properties", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT/Apache-2.0", + "name": "android_system_properties", + "versionInfo": "0.1.5" }, { - "SPDXID": "SPDXRef-Package-icu_properties-1.5.1", - "description": "Definitions for Unicode properties", + "SPDXID": "SPDXRef-Package-lzma-sys-0.1.20", + "description": "Raw bindings to liblzma which contains an implementation of LZMA and xz stream\nencoding/decoding.\n\nHigh level Rust bindings are available in the `xz2` crate.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/icu_properties@1.5.1", + "referenceLocator": "pkg:cargo/lzma-sys@0.1.20", "referenceType": "purl" } ], - "homepage": "https://icu4x.unicode.org", - "licenseConcluded": "Unicode-3.0", - "licenseDeclared": "Unicode-3.0", - "name": "icu_properties", - "versionInfo": "1.5.1" + "homepage": "https://github.com/alexcrichton/xz2-rs", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT/Apache-2.0", + "name": "lzma-sys", + "versionInfo": "0.1.20" }, { - "SPDXID": "SPDXRef-Package-icu_normalizer-1.5.0", - "description": "API for normalizing text into Unicode Normalization Forms", + "SPDXID": "SPDXRef-Package-enum-ordinalize-3.1.15", + "description": "This crates provides a procedural macro to let enums not only get its variants' ordinal but also be constructed from an ordinal.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/icu_normalizer@1.5.0", + "referenceLocator": "pkg:cargo/enum-ordinalize@3.1.15", "referenceType": "purl" } ], - "homepage": "https://icu4x.unicode.org", - "licenseConcluded": "Unicode-3.0", - "licenseDeclared": "Unicode-3.0", - "name": "icu_normalizer", - "versionInfo": "1.5.0" + "homepage": "https://magiclen.org/enum-ordinalize", + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "enum-ordinalize", + "versionInfo": "3.1.15" }, { "SPDXID": "SPDXRef-Package-hermit-abi-0.3.9", @@ -2530,3148 +2521,3179 @@ "versionInfo": "0.3.9" }, { - "SPDXID": "SPDXRef-Package-futures-sink-0.3.30", - "description": "The asynchronous `Sink` trait for the futures-rs library.\n", + "SPDXID": "SPDXRef-Package-kqueue-1.0.8", + "description": "kqueue interface for BSDs", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/futures-sink@0.3.30", + "referenceLocator": "pkg:cargo/kqueue@1.0.8", "referenceType": "purl" } ], - "homepage": "https://rust-lang.github.io/futures-rs", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "futures-sink", - "versionInfo": "0.3.30" + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "kqueue", + "versionInfo": "1.0.8" }, { - "SPDXID": "SPDXRef-Package-void-1.0.2", - "description": "The uninhabited void type for use in statically impossible cases.", - "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/void@1.0.2", - "referenceType": "purl" - } - ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "void", - "versionInfo": "1.0.2" - }, - { - "SPDXID": "SPDXRef-Package-unicode-segmentation-1.12.0", - "description": "This crate provides Grapheme Cluster, Word and Sentence boundaries\naccording to Unicode Standard Annex #29 rules.\n", + "SPDXID": "SPDXRef-Package-windows-targets-0.48.5", + "description": "Import libs for Windows", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/unicode-segmentation@1.12.0", + "referenceLocator": "pkg:cargo/windows-targets@0.48.5", "referenceType": "purl" } ], - "homepage": "https://github.com/unicode-rs/unicode-segmentation", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "unicode-segmentation", - "versionInfo": "1.12.0" + "name": "windows-targets", + "versionInfo": "0.48.5" }, { - "SPDXID": "SPDXRef-Package-icu_normalizer_data-1.5.0", - "description": "Data for the icu_normalizer crate", + "SPDXID": "SPDXRef-Package-regex-1.10.6", + "description": "An implementation of regular expressions for Rust. This implementation uses\nfinite automata and guarantees linear time matching on all inputs.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/icu_normalizer_data@1.5.0", + "referenceLocator": "pkg:cargo/regex@1.10.6", "referenceType": "purl" } ], - "homepage": "https://icu4x.unicode.org", - "licenseConcluded": "Unicode-3.0", - "licenseDeclared": "Unicode-3.0", - "name": "icu_normalizer_data", - "versionInfo": "1.5.0" + "homepage": "https://github.com/rust-lang/regex", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "regex", + "versionInfo": "1.10.6" }, { - "SPDXID": "SPDXRef-Package-kqueue-sys-1.0.4", - "description": "Low-level kqueue interface for BSDs", + "SPDXID": "SPDXRef-Package-wasm-bindgen-backend-0.2.93", + "description": "Backend code generation of the wasm-bindgen tool\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/kqueue-sys@1.0.4", + "referenceLocator": "pkg:cargo/wasm-bindgen-backend@0.2.93", "referenceType": "purl" } ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "kqueue-sys", - "versionInfo": "1.0.4" + "homepage": "https://rustwasm.github.io/wasm-bindgen/", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "wasm-bindgen-backend", + "versionInfo": "0.2.93" }, { - "SPDXID": "SPDXRef-Package-async_executors-0.7.0", - "description": "Implements Spawn, SpawnLocal and SpawnHandle for commonly used executors.", + "SPDXID": "SPDXRef-Package-zeroize-1.8.1", + "description": "Securely clear secrets from memory with a simple trait built on\nstable Rust primitives which guarantee memory is zeroed using an\noperation will not be 'optimized away' by the compiler.\nUses a portable pure Rust implementation that works everywhere,\neven WASM!\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/async_executors@0.7.0", + "referenceLocator": "pkg:cargo/zeroize@1.8.1", "referenceType": "purl" } ], - "licenseConcluded": "Unlicense", - "licenseDeclared": "Unlicense", - "name": "async_executors", - "versionInfo": "0.7.0" + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "zeroize", + "versionInfo": "1.8.1" }, { - "SPDXID": "SPDXRef-Package-windows-core-0.52.0", - "description": "Rust for Windows", + "SPDXID": "SPDXRef-Package-oneshot-fused-workaround-0.2.0", + "description": "Fused wrapper for futures::channel::oneshot", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/windows-core@0.52.0", + "referenceLocator": "pkg:cargo/oneshot-fused-workaround@0.2.0", "referenceType": "purl" } ], + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "windows-core", - "versionInfo": "0.52.0" + "name": "oneshot-fused-workaround", + "versionInfo": "0.2.0" }, { - "SPDXID": "SPDXRef-Package-home-0.5.9", - "description": "Shared definitions of home directories.", + "SPDXID": "SPDXRef-Package-tor-log-ratelim-0.24.0", + "description": "Facility for rate-limiting log messages in Arti", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/home@0.5.9", + "referenceLocator": "pkg:cargo/tor-log-ratelim@0.24.0", "referenceType": "purl" } ], + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "home", - "versionInfo": "0.5.9" + "name": "tor-log-ratelim", + "versionInfo": "0.24.0" }, { - "SPDXID": "SPDXRef-Package-darling-0.20.10", - "description": "A proc-macro library for reading attributes into structs when\nimplementing custom derives.\n", + "SPDXID": "SPDXRef-Package-k12-0.3.0", + "description": "Pure Rust implementation of the KangarooTwelve hash function", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/darling@0.20.10", + "referenceLocator": "pkg:cargo/k12@0.3.0", "referenceType": "purl" } ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "darling", - "versionInfo": "0.20.10" + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "k12", + "versionInfo": "0.3.0" }, { - "SPDXID": "SPDXRef-Package-phf_macros-0.11.2", - "description": "Macros to generate types in the phf crate", + "SPDXID": "SPDXRef-Package-xz2-0.1.7", + "description": "Rust bindings to liblzma providing Read/Write streams as well as low-level\nin-memory encoding/decoding.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/phf_macros@0.11.2", + "referenceLocator": "pkg:cargo/xz2@0.1.7", "referenceType": "purl" } ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "phf_macros", - "versionInfo": "0.11.2" - }, - { - "SPDXID": "SPDXRef-Package-cgosling-proc-macros-0.0.0", - "downloadLocation": "NONE", - "licenseConcluded": "NOASSERTION", - "name": "cgosling-proc-macros", - "versionInfo": "0.0.0" + "homepage": "https://github.com/alexcrichton/xz2-rs", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT/Apache-2.0", + "name": "xz2", + "versionInfo": "0.1.7" }, { - "SPDXID": "SPDXRef-Package-valuable-0.1.0", - "description": "Object-safe value inspection, used to pass un-typed structured data across trait-object boundaries.\n", + "SPDXID": "SPDXRef-Package-windows_i686_gnu-0.52.6", + "description": "Import lib for Windows", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/valuable@0.1.0", + "referenceLocator": "pkg:cargo/windows_i686_gnu@0.52.6", "referenceType": "purl" } ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "valuable", - "versionInfo": "0.1.0" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "windows_i686_gnu", + "versionInfo": "0.52.6" }, { - "SPDXID": "SPDXRef-Package-wasix-0.12.21", - "description": "WASIX API bindings for Rust", + "SPDXID": "SPDXRef-Package-rand_chacha-0.3.1", + "description": "ChaCha random number generator\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/wasix@0.12.21", + "referenceLocator": "pkg:cargo/rand_chacha@0.3.1", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT", - "name": "wasix", - "versionInfo": "0.12.21" + "homepage": "https://rust-random.github.io/book", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "rand_chacha", + "versionInfo": "0.3.1" }, { - "SPDXID": "SPDXRef-Package-serde_with_macros-3.9.0", - "description": "proc-macro library for serde_with", + "SPDXID": "SPDXRef-Package-tor-cert-0.24.0", + "description": "Non-standard certificate formats used by Tor", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/serde_with_macros@3.9.0", + "referenceLocator": "pkg:cargo/tor-cert@0.24.0", "referenceType": "purl" } ], + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "serde_with_macros", - "versionInfo": "3.9.0" + "name": "tor-cert", + "versionInfo": "0.24.0" }, { - "SPDXID": "SPDXRef-Package-num-traits-0.2.19", - "description": "Numeric traits for generic mathematics", + "SPDXID": "SPDXRef-Package-tor-guardmgr-0.24.0", + "description": "Manage a set of guard relays for Tor network", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/num-traits@0.2.19", + "referenceLocator": "pkg:cargo/tor-guardmgr@0.24.0", "referenceType": "purl" } ], - "homepage": "https://github.com/rust-num/num-traits", + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "num-traits", - "versionInfo": "0.2.19" + "name": "tor-guardmgr", + "versionInfo": "0.24.0" }, { - "SPDXID": "SPDXRef-Package-sha2-0.10.8", - "description": "Pure Rust implementation of the SHA-2 hash function family\nincluding SHA-224, SHA-256, SHA-384, and SHA-512.\n", + "SPDXID": "SPDXRef-Package-fastrand-2.1.1", + "description": "A simple and fast random number generator", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/sha2@0.10.8", + "referenceLocator": "pkg:cargo/fastrand@2.1.1", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "sha2", - "versionInfo": "0.10.8" + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "fastrand", + "versionInfo": "2.1.1" }, { - "SPDXID": "SPDXRef-Package-oneshot-fused-workaround-0.2.0", - "description": "Fused wrapper for futures::channel::oneshot", + "SPDXID": "SPDXRef-Package-pwd-grp-0.1.1", + "description": "Access Unix passwords and groups", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/oneshot-fused-workaround@0.2.0", + "referenceLocator": "pkg:cargo/pwd-grp@0.1.1", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "oneshot-fused-workaround", - "versionInfo": "0.2.0" + "homepage": "https://gitlab.torproject.org/tpo/core/rust-pwd-grp", + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "pwd-grp", + "versionInfo": "0.1.1" }, { - "SPDXID": "SPDXRef-Package-num_enum-0.7.3", - "description": "Procedural macros to make inter-operation between primitives and enums easier.", + "SPDXID": "SPDXRef-Package-siphasher-0.3.11", + "description": "SipHash-2-4, SipHash-1-3 and 128-bit variants in pure Rust", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/num_enum@0.7.3", + "referenceLocator": "pkg:cargo/siphasher@0.3.11", "referenceType": "purl" } ], - "licenseConcluded": "BSD-3-Clause OR MIT OR Apache-2.0", - "licenseDeclared": "BSD-3-Clause OR MIT OR Apache-2.0", - "name": "num_enum", - "versionInfo": "0.7.3" + "homepage": "https://docs.rs/siphasher", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT/Apache-2.0", + "name": "siphasher", + "versionInfo": "0.3.11" }, { - "SPDXID": "SPDXRef-Package-shellexpand-3.1.0", - "description": "Shell-like expansions in strings", + "SPDXID": "SPDXRef-Package-asn1-rs-impl-0.2.0", + "description": "Implementation details for the `asn1-rs` crate", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/shellexpand@3.1.0", + "referenceLocator": "pkg:cargo/asn1-rs-impl@0.2.0", "referenceType": "purl" } ], + "homepage": "https://github.com/rusticata/asn1-rs", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT/Apache-2.0", - "name": "shellexpand", - "versionInfo": "3.1.0" + "name": "asn1-rs-impl", + "versionInfo": "0.2.0" }, { - "SPDXID": "SPDXRef-Package-parking_lot-0.12.3", - "description": "More compact and efficient implementations of the standard synchronization primitives.", + "SPDXID": "SPDXRef-Package-base16ct-0.2.0", + "description": "Pure Rust implementation of Base16 a.k.a hexadecimal (RFC 4648) which avoids\nany usages of data-dependent branches/LUTs and thereby provides portable\n\"best effort\" constant-time operation and embedded-friendly no_std support\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/parking_lot@0.12.3", + "referenceLocator": "pkg:cargo/base16ct@0.2.0", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "parking_lot", - "versionInfo": "0.12.3" + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "base16ct", + "versionInfo": "0.2.0" }, { - "SPDXID": "SPDXRef-Package-minimal-lexical-0.2.1", - "description": "Fast float parsing conversion routines.", + "SPDXID": "SPDXRef-Package-windows_aarch64_gnullvm-0.52.6", + "description": "Import lib for Windows", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/minimal-lexical@0.2.1", + "referenceLocator": "pkg:cargo/windows_aarch64_gnullvm@0.52.6", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT/Apache-2.0", - "name": "minimal-lexical", - "versionInfo": "0.2.1" + "licenseDeclared": "MIT OR Apache-2.0", + "name": "windows_aarch64_gnullvm", + "versionInfo": "0.52.6" }, { - "SPDXID": "SPDXRef-Package-bounded-vec-deque-0.1.1", - "description": "A double-ended queue|ringbuffer with an upper bound on its length.", + "SPDXID": "SPDXRef-Package-static_assertions-1.1.0", + "description": "Compile-time assertions to ensure that invariants are met.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/bounded-vec-deque@0.1.1", + "referenceLocator": "pkg:cargo/static_assertions@1.1.0", "referenceType": "purl" } ], - "licenseConcluded": "GPL-3.0-or-later OR BSD-3-Clause", - "licenseDeclared": "GPL-3.0+ OR BSD-3-Clause", - "name": "bounded-vec-deque", - "versionInfo": "0.1.1" + "homepage": "https://github.com/nvzqz/static-assertions-rs", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "static_assertions", + "versionInfo": "1.1.0" }, { - "SPDXID": "SPDXRef-Package-subtle-2.6.1", - "description": "Pure-Rust traits and utilities for constant-time cryptographic implementations.", + "SPDXID": "SPDXRef-Package-asn1-rs-derive-0.5.1", + "description": "Derive macros for the `asn1-rs` crate", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/subtle@2.6.1", + "referenceLocator": "pkg:cargo/asn1-rs-derive@0.5.1", "referenceType": "purl" } ], - "homepage": "https://dalek.rs/", - "licenseConcluded": "BSD-3-Clause", - "licenseDeclared": "BSD-3-Clause", - "name": "subtle", - "versionInfo": "2.6.1" + "homepage": "https://github.com/rusticata/asn1-rs", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "asn1-rs-derive", + "versionInfo": "0.5.1" }, { - "SPDXID": "SPDXRef-Package-tor-protover-0.24.0", - "description": "Implementation for Tor's subprotocol versioning", + "SPDXID": "SPDXRef-Package-uncased-0.9.10", + "description": "Case-preserving, ASCII case-insensitive, no_std string types.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tor-protover@0.24.0", + "referenceLocator": "pkg:cargo/uncased@0.9.10", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "tor-protover", - "versionInfo": "0.24.0" + "name": "uncased", + "versionInfo": "0.9.10" }, { - "SPDXID": "SPDXRef-Package-zerofrom-0.1.4", - "description": "ZeroFrom trait for constructing", + "SPDXID": "SPDXRef-Package-windows_x86_64_gnullvm-0.52.6", + "description": "Import lib for Windows", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/zerofrom@0.1.4", + "referenceLocator": "pkg:cargo/windows_x86_64_gnullvm@0.52.6", "referenceType": "purl" } ], - "licenseConcluded": "Unicode-3.0", - "licenseDeclared": "Unicode-3.0", - "name": "zerofrom", - "versionInfo": "0.1.4" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "windows_x86_64_gnullvm", + "versionInfo": "0.52.6" }, { - "SPDXID": "SPDXRef-Package-unicode-xid-0.2.6", - "description": "Determine whether characters have the XID_Start\nor XID_Continue properties according to\nUnicode Standard Annex #31.\n", + "SPDXID": "SPDXRef-Package-winapi-util-0.1.9", + "description": "A dumping ground for high level safe wrappers over windows-sys.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/unicode-xid@0.2.6", + "referenceLocator": "pkg:cargo/winapi-util@0.1.9", "referenceType": "purl" } ], - "homepage": "https://github.com/unicode-rs/unicode-xid", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "unicode-xid", - "versionInfo": "0.2.6" + "homepage": "https://github.com/BurntSushi/winapi-util", + "licenseConcluded": "Unlicense OR MIT", + "licenseDeclared": "Unlicense OR MIT", + "name": "winapi-util", + "versionInfo": "0.1.9" }, { - "SPDXID": "SPDXRef-Package-hmac-0.12.1", - "description": "Generic implementation of Hash-based Message Authentication Code (HMAC)", + "SPDXID": "SPDXRef-Package-darling-0.20.10", + "description": "A proc-macro library for reading attributes into structs when\nimplementing custom derives.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/hmac@0.12.1", + "referenceLocator": "pkg:cargo/darling@0.20.10", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "hmac", - "versionInfo": "0.12.1" + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "darling", + "versionInfo": "0.20.10" }, { - "SPDXID": "SPDXRef-Package-gimli-0.29.0", - "description": "A library for reading and writing the DWARF debugging format.", + "SPDXID": "SPDXRef-Package-libm-0.2.8", + "description": "libm in pure Rust", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/gimli@0.29.0", + "referenceLocator": "pkg:cargo/libm@0.2.8", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "gimli", - "versionInfo": "0.29.0" + "name": "libm", + "versionInfo": "0.2.8" }, { - "SPDXID": "SPDXRef-Package-pkcs8-0.10.2", - "description": "Pure Rust implementation of Public-Key Cryptography Standards (PKCS) #8:\nPrivate-Key Information Syntax Specification (RFC 5208), with additional\nsupport for PKCS#8v2 asymmetric key packages (RFC 5958)\n", + "SPDXID": "SPDXRef-Package-libsqlite3-sys-0.30.1", + "description": "Native bindings to the libsqlite3 library", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/pkcs8@0.10.2", + "referenceLocator": "pkg:cargo/libsqlite3-sys@0.30.1", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "pkcs8", - "versionInfo": "0.10.2" + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "libsqlite3-sys", + "versionInfo": "0.30.1" }, { - "SPDXID": "SPDXRef-Package-tinystr-0.7.6", - "description": "A small ASCII-only bounded length string representation.", + "SPDXID": "SPDXRef-Package-typenum-1.17.0", + "description": "Typenum is a Rust library for type-level numbers evaluated at\n compile time. It currently supports bits, unsigned integers, and signed\n integers. It also provides a type-level array of type-level numbers, but its\n implementation is incomplete.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tinystr@0.7.6", + "referenceLocator": "pkg:cargo/typenum@1.17.0", "referenceType": "purl" } ], - "licenseConcluded": "Unicode-3.0", - "licenseDeclared": "Unicode-3.0", - "name": "tinystr", - "versionInfo": "0.7.6" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "typenum", + "versionInfo": "1.17.0" }, { - "SPDXID": "SPDXRef-Package-digest-0.10.7", - "description": "Traits for cryptographic hash functions and message authentication codes", + "SPDXID": "SPDXRef-Package-async_executors-0.7.0", + "description": "Implements Spawn, SpawnLocal and SpawnHandle for commonly used executors.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/digest@0.10.7", + "referenceLocator": "pkg:cargo/async_executors@0.7.0", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "digest", - "versionInfo": "0.10.7" + "licenseConcluded": "Unlicense", + "licenseDeclared": "Unlicense", + "name": "async_executors", + "versionInfo": "0.7.0" }, { - "SPDXID": "SPDXRef-Package-deranged-0.3.11", - "description": "Ranged integers", + "SPDXID": "SPDXRef-Package-icu_locid-1.5.0", + "description": "API for managing Unicode Language and Locale Identifiers", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/deranged@0.3.11", + "referenceLocator": "pkg:cargo/icu_locid@1.5.0", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "deranged", - "versionInfo": "0.3.11" + "homepage": "https://icu4x.unicode.org", + "licenseConcluded": "Unicode-3.0", + "licenseDeclared": "Unicode-3.0", + "name": "icu_locid", + "versionInfo": "1.5.0" }, { - "SPDXID": "SPDXRef-Package-wasm-bindgen-backend-0.2.93", - "description": "Backend code generation of the wasm-bindgen tool\n", + "SPDXID": "SPDXRef-Package-num-iter-0.1.45", + "description": "External iterators for generic mathematics", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/wasm-bindgen-backend@0.2.93", + "referenceLocator": "pkg:cargo/num-iter@0.1.45", "referenceType": "purl" } ], - "homepage": "https://rustwasm.github.io/wasm-bindgen/", + "homepage": "https://github.com/rust-num/num-iter", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "wasm-bindgen-backend", - "versionInfo": "0.2.93" + "name": "num-iter", + "versionInfo": "0.1.45" }, { - "SPDXID": "SPDXRef-Package-schannel-0.1.23", - "description": "Schannel bindings for rust, allowing SSL/TLS (e.g. https) without openssl", + "SPDXID": "SPDXRef-Package-tor-cell-0.24.0", + "description": "Encode and decode Tor cells and messages", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/schannel@0.1.23", + "referenceLocator": "pkg:cargo/tor-cell@0.24.0", "referenceType": "purl" } ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "schannel", - "versionInfo": "0.1.23" + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "tor-cell", + "versionInfo": "0.24.0" }, { - "SPDXID": "SPDXRef-Package-amplify_syn-2.0.1", - "description": "Amplifying syn capabilities: helper functions for creating proc macro libraries", + "SPDXID": "SPDXRef-Package-curve25519-dalek-derive-0.1.1", + "description": "curve25519-dalek Derives", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/amplify_syn@2.0.1", + "referenceLocator": "pkg:cargo/curve25519-dalek-derive@0.1.1", "referenceType": "purl" } ], - "homepage": "https://github.com/rust-amplify", - "licenseConcluded": "Apache-2.0", - "licenseDeclared": "Apache-2.0", - "name": "amplify_syn", - "versionInfo": "2.0.1" + "homepage": "https://github.com/dalek-cryptography/curve25519-dalek", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT/Apache-2.0", + "name": "curve25519-dalek-derive", + "versionInfo": "0.1.1" }, { - "SPDXID": "SPDXRef-Package-enum-ordinalize-3.1.15", - "description": "This crates provides a procedural macro to let enums not only get its variants' ordinal but also be constructed from an ordinal.", + "SPDXID": "SPDXRef-Package-darling_core-0.20.10", + "description": "Helper crate for proc-macro library for reading attributes into structs when\nimplementing custom derives. Use https://crates.io/crates/darling in your code.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/enum-ordinalize@3.1.15", + "referenceLocator": "pkg:cargo/darling_core@0.20.10", "referenceType": "purl" } ], - "homepage": "https://magiclen.org/enum-ordinalize", "licenseConcluded": "MIT", "licenseDeclared": "MIT", - "name": "enum-ordinalize", - "versionInfo": "3.1.15" + "name": "darling_core", + "versionInfo": "0.20.10" }, { - "SPDXID": "SPDXRef-Package-asn1-rs-impl-0.2.0", - "description": "Implementation details for the `asn1-rs` crate", + "SPDXID": "SPDXRef-Package-elliptic-curve-0.13.8", + "description": "General purpose Elliptic Curve Cryptography (ECC) support, including types\nand traits for representing various elliptic curve forms, scalars, points,\nand public/secret keys composed thereof.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/asn1-rs-impl@0.2.0", + "referenceLocator": "pkg:cargo/elliptic-curve@0.13.8", "referenceType": "purl" } ], - "homepage": "https://github.com/rusticata/asn1-rs", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT/Apache-2.0", - "name": "asn1-rs-impl", - "versionInfo": "0.2.0" + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "elliptic-curve", + "versionInfo": "0.13.8" }, { - "SPDXID": "SPDXRef-Package-num_enum_derive-0.7.3", - "description": "Internal implementation details for ::num_enum (Procedural macros to make inter-operation between primitives and enums easier)", + "SPDXID": "SPDXRef-Package-icu_collections-1.5.0", + "description": "Collection of API for use in ICU libraries.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/num_enum_derive@0.7.3", + "referenceLocator": "pkg:cargo/icu_collections@1.5.0", "referenceType": "purl" } ], - "licenseConcluded": "BSD-3-Clause OR MIT OR Apache-2.0", - "licenseDeclared": "BSD-3-Clause OR MIT OR Apache-2.0", - "name": "num_enum_derive", - "versionInfo": "0.7.3" + "homepage": "https://icu4x.unicode.org", + "licenseConcluded": "Unicode-3.0", + "licenseDeclared": "Unicode-3.0", + "name": "icu_collections", + "versionInfo": "1.5.0" }, { - "SPDXID": "SPDXRef-Package-xxhash-rust-0.8.12", - "description": "Implementation of xxhash", + "SPDXID": "SPDXRef-Package-inout-0.1.3", + "description": "Custom reference types for code generic over in-place and buffer-to-buffer modes of operation.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/xxhash-rust@0.8.12", + "referenceLocator": "pkg:cargo/inout@0.1.3", "referenceType": "purl" } ], - "licenseConcluded": "BSL-1.0", - "licenseDeclared": "BSL-1.0", - "name": "xxhash-rust", - "versionInfo": "0.8.12" - }, - { - "SPDXID": "SPDXRef-Package-asn1-rs-0.6.2", - "description": "Parser/encoder for ASN.1 BER/DER data", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "inout", + "versionInfo": "0.1.3" + }, + { + "SPDXID": "SPDXRef-Package-notify-7.0.0", + "description": "Cross-platform filesystem notification library", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/asn1-rs@0.6.2", + "referenceLocator": "pkg:cargo/notify@7.0.0", "referenceType": "purl" } ], - "homepage": "https://github.com/rusticata/asn1-rs", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "asn1-rs", - "versionInfo": "0.6.2" + "homepage": "https://github.com/notify-rs/notify", + "licenseConcluded": "CC0-1.0", + "licenseDeclared": "CC0-1.0", + "name": "notify", + "versionInfo": "7.0.0" }, { - "SPDXID": "SPDXRef-Package-rand_chacha-0.3.1", - "description": "ChaCha random number generator\n", + "SPDXID": "SPDXRef-Package-serde_json-1.0.128", + "description": "A JSON serialization file format", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/rand_chacha@0.3.1", + "referenceLocator": "pkg:cargo/serde_json@1.0.128", "referenceType": "purl" } ], - "homepage": "https://rust-random.github.io/book", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "rand_chacha", - "versionInfo": "0.3.1" + "name": "serde_json", + "versionInfo": "1.0.128" }, { - "SPDXID": "SPDXRef-Package-inout-0.1.3", - "description": "Custom reference types for code generic over in-place and buffer-to-buffer modes of operation.", + "SPDXID": "SPDXRef-Package-derive-adhoc-macros-0.7.3", + "description": "Macros that implement the derive_adhoc crate", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/inout@0.1.3", + "referenceLocator": "pkg:cargo/derive-adhoc-macros@0.7.3", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "inout", - "versionInfo": "0.1.3" + "homepage": "https://gitlab.torproject.org/Diziet/rust-derive-adhoc", + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "derive-adhoc-macros", + "versionInfo": "0.7.3" }, { - "SPDXID": "SPDXRef-Package-pin-project-internal-1.1.5", - "description": "Implementation detail of the `pin-project` crate.\n", + "SPDXID": "SPDXRef-Package-num-traits-0.2.19", + "description": "Numeric traits for generic mathematics", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/pin-project-internal@1.1.5", + "referenceLocator": "pkg:cargo/num-traits@0.2.19", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "pin-project-internal", - "versionInfo": "1.1.5" + "homepage": "https://github.com/rust-num/num-traits", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "num-traits", + "versionInfo": "0.2.19" }, { - "SPDXID": "SPDXRef-Package-mio-1.0.2", - "description": "Lightweight non-blocking I/O.", + "SPDXID": "SPDXRef-Package-convert_case-0.6.0", + "description": "Convert strings into any case", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/mio@1.0.2", + "referenceLocator": "pkg:cargo/convert_case@0.6.0", "referenceType": "purl" } ], - "homepage": "https://github.com/tokio-rs/mio", "licenseConcluded": "MIT", "licenseDeclared": "MIT", - "name": "mio", - "versionInfo": "1.0.2" + "name": "convert_case", + "versionInfo": "0.6.0" }, { - "SPDXID": "SPDXRef-Package-strum-0.25.0", - "description": "Helpful macros for working with enums and strings", + "SPDXID": "SPDXRef-Package-postage-0.5.0", + "description": "An async channel library", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/strum@0.25.0", + "referenceLocator": "pkg:cargo/postage@0.5.0", "referenceType": "purl" } ], - "homepage": "https://github.com/Peternator7/strum", + "homepage": "https://github.com/austinjones/postage-rs", "licenseConcluded": "MIT", "licenseDeclared": "MIT", - "name": "strum", - "versionInfo": "0.25.0" + "name": "postage", + "versionInfo": "0.5.0" }, { - "SPDXID": "SPDXRef-Package-itertools-0.13.0", - "description": "Extra iterator adaptors, iterator methods, free functions, and macros.", + "SPDXID": "SPDXRef-Package-toml_datetime-0.6.8", + "description": "A TOML-compatible datetime type", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/itertools@0.13.0", + "referenceLocator": "pkg:cargo/toml_datetime@0.6.8", "referenceType": "purl" } ], + "homepage": "https://github.com/toml-rs/toml", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "itertools", - "versionInfo": "0.13.0" + "name": "toml_datetime", + "versionInfo": "0.6.8" }, { - "SPDXID": "SPDXRef-Package-rsa-0.9.6", - "description": "Pure Rust RSA implementation", + "SPDXID": "SPDXRef-Package-tokio-1.40.0", + "description": "An event-driven, non-blocking I/O platform for writing asynchronous I/O\nbacked applications.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/rsa@0.9.6", + "referenceLocator": "pkg:cargo/tokio@1.40.0", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "rsa", - "versionInfo": "0.9.6" + "homepage": "https://tokio.rs", + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "tokio", + "versionInfo": "1.40.0" }, { - "SPDXID": "SPDXRef-Package-scopeguard-1.2.0", - "description": "A RAII scope guard that will run a given closure when it goes out of scope,\neven if the code between panics (assuming unwinding panic).\n\nDefines the macros `defer!`, `defer_on_unwind!`, `defer_on_success!` as\nshorthands for guards with one of the implemented strategies.\n", + "SPDXID": "SPDXRef-Package-primeorder-0.13.6", + "description": "Pure Rust implementation of complete addition formulas for prime order elliptic\ncurves (Renes-Costello-Batina 2015). Generic over field elements and curve\nequation coefficients\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/scopeguard@1.2.0", + "referenceLocator": "pkg:cargo/primeorder@0.13.6", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "scopeguard", - "versionInfo": "1.2.0" + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "primeorder", + "versionInfo": "0.13.6" }, { - "SPDXID": "SPDXRef-Package-bumpalo-3.16.0", - "description": "A fast bump allocation arena for Rust.", + "SPDXID": "SPDXRef-Package-tor-general-addr-0.24.0", + "description": "Generalized socket address type used by Tor", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/bumpalo@3.16.0", + "referenceLocator": "pkg:cargo/tor-general-addr@0.24.0", "referenceType": "purl" } ], + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "bumpalo", - "versionInfo": "3.16.0" + "name": "tor-general-addr", + "versionInfo": "0.24.0" }, { - "SPDXID": "SPDXRef-Package-bytes-1.7.1", - "description": "Types and traits for working with bytes", + "SPDXID": "SPDXRef-Package-tor-async-utils-0.24.0", + "description": "Async/futures helpers for use with Tor", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/bytes@1.7.1", + "referenceLocator": "pkg:cargo/tor-async-utils@0.24.0", "referenceType": "purl" } ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "bytes", - "versionInfo": "1.7.1" + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "tor-async-utils", + "versionInfo": "0.24.0" }, { - "SPDXID": "SPDXRef-Package-aes-0.8.4", - "description": "Pure Rust implementation of the Advanced Encryption Standard (a.k.a. Rijndael)", + "SPDXID": "SPDXRef-Package-idna-0.5.0", + "description": "IDNA (Internationalizing Domain Names in Applications) and Punycode.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/aes@0.8.4", + "referenceLocator": "pkg:cargo/idna@0.5.0", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "aes", - "versionInfo": "0.8.4" + "name": "idna", + "versionInfo": "0.5.0" }, { - "SPDXID": "SPDXRef-Package-time-core-0.1.2", - "description": "This crate is an implementation detail and should not be relied upon directly.", + "SPDXID": "SPDXRef-Package-log-0.4.22", + "description": "A lightweight logging facade for Rust\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/time-core@0.1.2", + "referenceLocator": "pkg:cargo/log@0.4.22", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "time-core", - "versionInfo": "0.1.2" + "name": "log", + "versionInfo": "0.4.22" }, { - "SPDXID": "SPDXRef-Package-tracing-attributes-0.1.27", - "description": "Procedural macro attributes for automatically instrumenting functions.\n", + "SPDXID": "SPDXRef-Package-schannel-0.1.23", + "description": "Schannel bindings for rust, allowing SSL/TLS (e.g. https) without openssl", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tracing-attributes@0.1.27", + "referenceLocator": "pkg:cargo/schannel@0.1.23", "referenceType": "purl" } ], - "homepage": "https://tokio.rs", "licenseConcluded": "MIT", "licenseDeclared": "MIT", - "name": "tracing-attributes", - "versionInfo": "0.1.27" + "name": "schannel", + "versionInfo": "0.1.23" }, { - "SPDXID": "SPDXRef-Package-zerocopy-derive-0.7.35", - "description": "Custom derive for traits from the zerocopy crate", + "SPDXID": "SPDXRef-Package-windows_x86_64_msvc-0.52.6", + "description": "Import lib for Windows", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/zerocopy-derive@0.7.35", + "referenceLocator": "pkg:cargo/windows_x86_64_msvc@0.52.6", "referenceType": "purl" } ], - "licenseConcluded": "BSD-2-Clause OR Apache-2.0 OR MIT", - "licenseDeclared": "BSD-2-Clause OR Apache-2.0 OR MIT", - "name": "zerocopy-derive", - "versionInfo": "0.7.35" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "windows_x86_64_msvc", + "versionInfo": "0.52.6" }, { - "SPDXID": "SPDXRef-Package-spki-0.7.3", - "description": "X.509 Subject Public Key Info (RFC5280) describing public keys as well as their\nassociated AlgorithmIdentifiers (i.e. OIDs)\n", + "SPDXID": "SPDXRef-Package-asn1-rs-0.6.2", + "description": "Parser/encoder for ASN.1 BER/DER data", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/spki@0.7.3", + "referenceLocator": "pkg:cargo/asn1-rs@0.6.2", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "spki", - "versionInfo": "0.7.3" + "homepage": "https://github.com/rusticata/asn1-rs", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "asn1-rs", + "versionInfo": "0.6.2" }, { - "SPDXID": "SPDXRef-Package-amplify_num-0.5.3", - "description": "Amplifying numeric types: big-sized and bit-sized integers", + "SPDXID": "SPDXRef-Package-tor-keymgr-0.24.0", + "description": "Key management for the Arti Tor implementation", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/amplify_num@0.5.3", + "referenceLocator": "pkg:cargo/tor-keymgr@0.24.0", "referenceType": "purl" } ], - "homepage": "https://github.com/rust-amplify", - "licenseConcluded": "Apache-2.0", - "licenseDeclared": "Apache-2.0", - "name": "amplify_num", - "versionInfo": "0.5.3" + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "tor-keymgr", + "versionInfo": "0.24.0" }, { - "SPDXID": "SPDXRef-Package-ascii-1.1.0", - "description": "ASCII-only equivalents to `char`, `str` and `String`.", + "SPDXID": "SPDXRef-Package-honk-rpc-0.3.0", + "description": "A library implementing an asynchrynous, bi-directional, dynamic, and BSON-based remote procedure call system", + "downloadLocation": "NONE", + "licenseConcluded": "BSD-3-Clause", + "licenseDeclared": "BSD-3-Clause", + "name": "honk-rpc", + "versionInfo": "0.3.0" + }, + { + "SPDXID": "SPDXRef-Package-unicode-bidi-0.3.15", + "description": "Implementation of the Unicode Bidirectional Algorithm", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/ascii@1.1.0", + "referenceLocator": "pkg:cargo/unicode-bidi@0.3.15", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "ascii", - "versionInfo": "1.1.0" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "unicode-bidi", + "versionInfo": "0.3.15" }, { - "SPDXID": "SPDXRef-Package-windows_aarch64_gnullvm-0.48.5", - "description": "Import lib for Windows", + "SPDXID": "SPDXRef-Package-atomic-0.6.0", + "description": "Generic Atomic wrapper type", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/windows_aarch64_gnullvm@0.48.5", + "referenceLocator": "pkg:cargo/atomic@0.6.0", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "windows_aarch64_gnullvm", - "versionInfo": "0.48.5" - }, - { - "SPDXID": "SPDXRef-Package-security-framework-sys-2.11.1", - "description": "Apple `Security.framework` low-level FFI bindings", - "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/security-framework-sys@2.11.1", - "referenceType": "purl" - } - ], - "homepage": "https://lib.rs/crates/security-framework-sys", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "security-framework-sys", - "versionInfo": "2.11.1" + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0/MIT", + "name": "atomic", + "versionInfo": "0.6.0" }, { - "SPDXID": "SPDXRef-Package-futures-channel-0.3.30", - "description": "Channels for asynchronous communication using futures-rs.\n", + "SPDXID": "SPDXRef-Package-futures-macro-0.3.30", + "description": "The futures-rs procedural macro implementations.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/futures-channel@0.3.30", + "referenceLocator": "pkg:cargo/futures-macro@0.3.30", "referenceType": "purl" } ], "homepage": "https://rust-lang.github.io/futures-rs", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "futures-channel", + "name": "futures-macro", "versionInfo": "0.3.30" }, { - "SPDXID": "SPDXRef-Package-writeable-0.5.5", - "description": "A more efficient alternative to fmt::Display", + "SPDXID": "SPDXRef-Package-strum-0.25.0", + "description": "Helpful macros for working with enums and strings", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/writeable@0.5.5", + "referenceLocator": "pkg:cargo/strum@0.25.0", "referenceType": "purl" } ], - "licenseConcluded": "Unicode-3.0", - "licenseDeclared": "Unicode-3.0", - "name": "writeable", - "versionInfo": "0.5.5" + "homepage": "https://github.com/Peternator7/strum", + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "strum", + "versionInfo": "0.25.0" }, { - "SPDXID": "SPDXRef-Package-tor-units-0.24.0", - "description": "Provides macros for types which are constrained within a range, ensuring invalid values are unrepresentable.", + "SPDXID": "SPDXRef-Package-rustc-demangle-0.1.24", + "description": "Rust compiler symbol demangling.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tor-units@0.24.0", + "referenceLocator": "pkg:cargo/rustc-demangle@0.1.24", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", + "homepage": "https://github.com/rust-lang/rustc-demangle", "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "tor-units", - "versionInfo": "0.24.0" + "licenseDeclared": "MIT/Apache-2.0", + "name": "rustc-demangle", + "versionInfo": "0.1.24" }, { - "SPDXID": "SPDXRef-Package-libredox-0.1.3", - "description": "Redox stable ABI", + "SPDXID": "SPDXRef-Package-windows-sys-0.52.0", + "description": "Rust for Windows", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/libredox@0.1.3", + "referenceLocator": "pkg:cargo/windows-sys@0.52.0", "referenceType": "purl" } ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "libredox", - "versionInfo": "0.1.3" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "windows-sys", + "versionInfo": "0.52.0" }, { - "SPDXID": "SPDXRef-Package-merlin-3.0.0", - "description": "Composable proof transcripts for public-coin arguments of knowledge", + "SPDXID": "SPDXRef-Package-windows_aarch64_gnullvm-0.48.5", + "description": "Import lib for Windows", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/merlin@3.0.0", + "referenceLocator": "pkg:cargo/windows_aarch64_gnullvm@0.48.5", "referenceType": "purl" } ], - "homepage": "https://docs.rs/merlin", - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "merlin", - "versionInfo": "3.0.0" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "windows_aarch64_gnullvm", + "versionInfo": "0.48.5" }, { - "SPDXID": "SPDXRef-Package-android_system_properties-0.1.5", - "description": "Minimal Android system properties wrapper", + "SPDXID": "SPDXRef-Package-windows_x86_64_msvc-0.48.5", + "description": "Import lib for Windows", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/android_system_properties@0.1.5", + "referenceLocator": "pkg:cargo/windows_x86_64_msvc@0.48.5", "referenceType": "purl" } ], - "homepage": "https://github.com/nical/android_system_properties", "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT/Apache-2.0", - "name": "android_system_properties", - "versionInfo": "0.1.5" + "licenseDeclared": "MIT OR Apache-2.0", + "name": "windows_x86_64_msvc", + "versionInfo": "0.48.5" }, { - "SPDXID": "SPDXRef-Package-byteorder-1.5.0", - "description": "Library for reading/writing numbers in big-endian and little-endian.", + "SPDXID": "SPDXRef-Package-phf_generator-0.11.2", + "description": "PHF generation logic", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/byteorder@1.5.0", + "referenceLocator": "pkg:cargo/phf_generator@0.11.2", "referenceType": "purl" } ], - "homepage": "https://github.com/BurntSushi/byteorder", - "licenseConcluded": "Unlicense OR MIT", - "licenseDeclared": "Unlicense OR MIT", - "name": "byteorder", - "versionInfo": "1.5.0" + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "phf_generator", + "versionInfo": "0.11.2" }, { - "SPDXID": "SPDXRef-Package-unicode-ident-1.0.12", - "description": "Determine whether characters have the XID_Start or XID_Continue properties according to Unicode Standard Annex #31", + "SPDXID": "SPDXRef-Package-libc-0.2.158", + "description": "Raw FFI bindings to platform libraries like libc.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/unicode-ident@1.0.12", + "referenceLocator": "pkg:cargo/libc@0.2.158", "referenceType": "purl" } ], - "licenseConcluded": "(MIT OR Apache-2.0) AND Unicode-DFS-2016", - "licenseDeclared": "(MIT OR Apache-2.0) AND Unicode-DFS-2016", - "name": "unicode-ident", - "versionInfo": "1.0.12" + "homepage": "https://github.com/rust-lang/libc", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "libc", + "versionInfo": "0.2.158" }, { - "SPDXID": "SPDXRef-Package-elliptic-curve-0.13.8", - "description": "General purpose Elliptic Curve Cryptography (ECC) support, including types\nand traits for representing various elliptic curve forms, scalars, points,\nand public/secret keys composed thereof.\n", + "SPDXID": "SPDXRef-Package-instant-0.1.13", + "description": "Unmaintained, consider using web-time instead - A partial replacement for std::time::Instant that works on WASM to.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/elliptic-curve@0.13.8", + "referenceLocator": "pkg:cargo/instant@0.1.13", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "elliptic-curve", - "versionInfo": "0.13.8" + "licenseConcluded": "BSD-3-Clause", + "licenseDeclared": "BSD-3-Clause", + "name": "instant", + "versionInfo": "0.1.13" }, { - "SPDXID": "SPDXRef-Package-tor-persist-0.24.0", - "description": "Persistent state for the Arti Tor implementation", + "SPDXID": "SPDXRef-Package-crossbeam-queue-0.3.11", + "description": "Concurrent queues", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tor-persist@0.24.0", + "referenceLocator": "pkg:cargo/crossbeam-queue@0.3.11", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", + "homepage": "https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-queue", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "tor-persist", - "versionInfo": "0.24.0" + "name": "crossbeam-queue", + "versionInfo": "0.3.11" }, { - "SPDXID": "SPDXRef-Package-serde_json-1.0.128", - "description": "A JSON serialization file format", + "SPDXID": "SPDXRef-Package-tempfile-3.12.0", + "description": "A library for managing temporary files and directories.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/serde_json@1.0.128", + "referenceLocator": "pkg:cargo/tempfile@3.12.0", "referenceType": "purl" } ], + "homepage": "https://stebalien.com/projects/tempfile-rs/", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "serde_json", - "versionInfo": "1.0.128" + "name": "tempfile", + "versionInfo": "3.12.0" }, { - "SPDXID": "SPDXRef-Package-downcast-rs-1.2.1", - "description": "Trait object downcasting support using only safe Rust. It supports type\nparameters, associated types, and type constraints.\n", + "SPDXID": "SPDXRef-Package-unicode-xid-0.2.6", + "description": "Determine whether characters have the XID_Start\nor XID_Continue properties according to\nUnicode Standard Annex #31.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/downcast-rs@1.2.1", + "referenceLocator": "pkg:cargo/unicode-xid@0.2.6", "referenceType": "purl" } ], + "homepage": "https://github.com/unicode-rs/unicode-xid", "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT/Apache-2.0", - "name": "downcast-rs", - "versionInfo": "1.2.1" + "licenseDeclared": "MIT OR Apache-2.0", + "name": "unicode-xid", + "versionInfo": "0.2.6" }, { - "SPDXID": "SPDXRef-Package-der-0.7.9", - "description": "Pure Rust embedded-friendly implementation of the Distinguished Encoding Rules\n(DER) for Abstract Syntax Notation One (ASN.1) as described in ITU X.690 with\nfull support for heapless no_std targets\n", + "SPDXID": "SPDXRef-Package-inotify-0.10.2", + "description": "Idiomatic wrapper for inotify", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/der@0.7.9", + "referenceLocator": "pkg:cargo/inotify@0.10.2", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "der", - "versionInfo": "0.7.9" + "licenseConcluded": "ISC", + "licenseDeclared": "ISC", + "name": "inotify", + "versionInfo": "0.10.2" }, { - "SPDXID": "SPDXRef-Package-wasm-bindgen-macro-0.2.93", - "description": "Definition of the `#[wasm_bindgen]` attribute, an internal dependency\n", + "SPDXID": "SPDXRef-Package-shellexpand-3.1.0", + "description": "Shell-like expansions in strings", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/wasm-bindgen-macro@0.2.93", + "referenceLocator": "pkg:cargo/shellexpand@3.1.0", "referenceType": "purl" } ], - "homepage": "https://rustwasm.github.io/wasm-bindgen/", "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "wasm-bindgen-macro", - "versionInfo": "0.2.93" + "licenseDeclared": "MIT/Apache-2.0", + "name": "shellexpand", + "versionInfo": "3.1.0" }, { - "SPDXID": "SPDXRef-Package-derive-deftly-macros-0.14.2", - "description": "Macros that implement the derive_deftly crate", + "SPDXID": "SPDXRef-Package-futures-task-0.3.30", + "description": "Tools for working with tasks.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/derive-deftly-macros@0.14.2", + "referenceLocator": "pkg:cargo/futures-task@0.3.30", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/Diziet/rust-derive-deftly", - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "derive-deftly-macros", - "versionInfo": "0.14.2" + "homepage": "https://rust-lang.github.io/futures-rs", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "futures-task", + "versionInfo": "0.3.30" }, { - "SPDXID": "SPDXRef-Package-sanitize-filename-0.5.0", - "description": "A simple filename sanitizer, based on Node's sanitize-filename", + "SPDXID": "SPDXRef-Package-once_cell-1.19.0", + "description": "Single assignment cells and lazy values.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/sanitize-filename@0.5.0", + "referenceLocator": "pkg:cargo/once_cell@1.19.0", "referenceType": "purl" } ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "sanitize-filename", - "versionInfo": "0.5.0" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "once_cell", + "versionInfo": "1.19.0" }, { - "SPDXID": "SPDXRef-Package-tor-error-0.24.0", - "description": "Provides the unified type-erased error type returned by many (esp. high-level) Tor APIs.", + "SPDXID": "SPDXRef-Package-rustversion-1.0.17", + "description": "Conditional compilation according to rustc compiler version", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tor-error@0.24.0", + "referenceLocator": "pkg:cargo/rustversion@1.0.17", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "tor-error", - "versionInfo": "0.24.0" + "name": "rustversion", + "versionInfo": "1.0.17" }, { - "SPDXID": "SPDXRef-Package-der-parser-9.0.0", - "description": "Parser/encoder for ASN.1 BER/DER data", + "SPDXID": "SPDXRef-Package-coarsetime-0.1.34", + "description": "Time and duration crate optimized for speed", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/der-parser@9.0.0", + "referenceLocator": "pkg:cargo/coarsetime@0.1.34", "referenceType": "purl" } ], - "homepage": "https://github.com/rusticata/der-parser", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT/Apache-2.0", - "name": "der-parser", - "versionInfo": "9.0.0" + "homepage": "https://github.com/jedisct1/rust-coarsetime", + "licenseConcluded": "ISC", + "licenseDeclared": "ISC", + "name": "coarsetime", + "versionInfo": "0.1.34" }, { - "SPDXID": "SPDXRef-Package-ed25519-2.2.3", - "description": "Edwards Digital Signature Algorithm (EdDSA) over Curve25519 (as specified in RFC 8032)\nsupport library providing signature type definitions and PKCS#8 private key\ndecoding/encoding support\n", + "SPDXID": "SPDXRef-Package-strsim-0.11.1", + "description": "Implementations of string similarity metrics. Includes Hamming, Levenshtein,\nOSA, Damerau-Levenshtein, Jaro, Jaro-Winkler, and Sørensen-Dice.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/ed25519@2.2.3", + "referenceLocator": "pkg:cargo/strsim@0.11.1", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "ed25519", - "versionInfo": "2.2.3" + "homepage": "https://github.com/rapidfuzz/strsim-rs", + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "strsim", + "versionInfo": "0.11.1" }, { - "SPDXID": "SPDXRef-Package-data-encoding-2.6.0", - "description": "Efficient and customizable data-encoding functions like base64, base32, and hex", + "SPDXID": "SPDXRef-Package-synstructure-0.13.1", + "description": "Helper methods and macros for custom derives", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/data-encoding@2.6.0", + "referenceLocator": "pkg:cargo/synstructure@0.13.1", "referenceType": "purl" } ], "licenseConcluded": "MIT", "licenseDeclared": "MIT", - "name": "data-encoding", - "versionInfo": "2.6.0" - }, - { - "SPDXID": "SPDXRef-Package-honk-rpc-0.3.0", - "description": "A library implementing an asynchrynous, bi-directional, dynamic, and BSON-based remote procedure call system", - "downloadLocation": "NONE", - "licenseConcluded": "BSD-3-Clause", - "licenseDeclared": "BSD-3-Clause", - "name": "honk-rpc", - "versionInfo": "0.3.0" + "name": "synstructure", + "versionInfo": "0.13.1" }, { - "SPDXID": "SPDXRef-Package-winapi-util-0.1.9", - "description": "A dumping ground for high level safe wrappers over windows-sys.", + "SPDXID": "SPDXRef-Package-cpufeatures-0.2.13", + "description": "Lightweight runtime CPU feature detection for aarch64, loongarch64, and x86/x86_64 targets, \nwith no_std support and support for mobile targets including Android and iOS\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/winapi-util@0.1.9", + "referenceLocator": "pkg:cargo/cpufeatures@0.2.13", "referenceType": "purl" } ], - "homepage": "https://github.com/BurntSushi/winapi-util", - "licenseConcluded": "Unlicense OR MIT", - "licenseDeclared": "Unlicense OR MIT", - "name": "winapi-util", - "versionInfo": "0.1.9" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "cpufeatures", + "versionInfo": "0.2.13" }, { - "SPDXID": "SPDXRef-Package-hashbrown-0.12.3", - "description": "A Rust port of Google's SwissTable hash map", + "SPDXID": "SPDXRef-Package-arrayvec-0.7.6", + "description": "A vector with fixed capacity, backed by an array (it can be stored on the stack too). Implements fixed capacity ArrayVec and ArrayString.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/hashbrown@0.12.3", + "referenceLocator": "pkg:cargo/arrayvec@0.7.6", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "hashbrown", - "versionInfo": "0.12.3" + "name": "arrayvec", + "versionInfo": "0.7.6" }, { - "SPDXID": "SPDXRef-Package-fallible-iterator-0.3.0", - "description": "Fallible iterator traits", + "SPDXID": "SPDXRef-Package-notify-types-1.0.0", + "description": "Types used by the notify crate", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/fallible-iterator@0.3.0", + "referenceLocator": "pkg:cargo/notify-types@1.0.0", "referenceType": "purl" } ], + "homepage": "https://github.com/notify-rs/notify", "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT/Apache-2.0", - "name": "fallible-iterator", - "versionInfo": "0.3.0" + "licenseDeclared": "MIT OR Apache-2.0", + "name": "notify-types", + "versionInfo": "1.0.0" }, { - "SPDXID": "SPDXRef-Package-equivalent-1.0.1", - "description": "Traits for key comparison in maps.", + "SPDXID": "SPDXRef-Package-humantime-serde-1.1.1", + "description": "Serde support for the `humantime` crate", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/equivalent@1.0.1", + "referenceLocator": "pkg:cargo/humantime-serde@1.1.1", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "equivalent", - "versionInfo": "1.0.1" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "humantime-serde", + "versionInfo": "1.1.1" }, { - "SPDXID": "SPDXRef-Package-siphasher-0.3.11", - "description": "SipHash-2-4, SipHash-1-3 and 128-bit variants in pure Rust", + "SPDXID": "SPDXRef-Package-figment-0.10.19", + "description": "A configuration library so con-free, it's unreal.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/siphasher@0.3.11", + "referenceLocator": "pkg:cargo/figment@0.10.19", "referenceType": "purl" } ], - "homepage": "https://docs.rs/siphasher", "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT/Apache-2.0", - "name": "siphasher", - "versionInfo": "0.3.11" + "licenseDeclared": "MIT OR Apache-2.0", + "name": "figment", + "versionInfo": "0.10.19" }, { - "SPDXID": "SPDXRef-Package-safelog-0.4.1", - "description": "Conditionally suppress confidential information from logs", + "SPDXID": "SPDXRef-Package-iana-time-zone-0.1.60", + "description": "get the IANA time zone for the current system", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/safelog@0.4.1", + "referenceLocator": "pkg:cargo/iana-time-zone@0.1.60", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "safelog", - "versionInfo": "0.4.1" + "name": "iana-time-zone", + "versionInfo": "0.1.60" }, { - "SPDXID": "SPDXRef-Package-inotify-sys-0.1.5", - "description": "inotify bindings for the Rust programming language", + "SPDXID": "SPDXRef-Package-backtrace-0.3.73", + "description": "A library to acquire a stack trace (backtrace) at runtime in a Rust program.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/inotify-sys@0.1.5", + "referenceLocator": "pkg:cargo/backtrace@0.3.73", "referenceType": "purl" } ], - "licenseConcluded": "ISC", - "licenseDeclared": "ISC", - "name": "inotify-sys", - "versionInfo": "0.1.5" + "homepage": "https://github.com/rust-lang/backtrace-rs", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "backtrace", + "versionInfo": "0.3.73" }, { - "SPDXID": "SPDXRef-Package-rustix-0.38.36", - "description": "Safe Rust bindings to POSIX/Unix/Linux/Winsock-like syscalls", - "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/rustix@0.38.36", - "referenceType": "purl" - } - ], - "licenseConcluded": "Apache-2.0 OR Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT", - "name": "rustix", - "versionInfo": "0.38.36" + "SPDXID": "SPDXRef-Package-cgosling-proc-macros-0.0.0", + "downloadLocation": "NONE", + "licenseConcluded": "NOASSERTION", + "name": "cgosling-proc-macros", + "versionInfo": "0.0.0" }, { - "SPDXID": "SPDXRef-Package-fiat-crypto-0.2.9", - "description": "Fiat-crypto generated Rust", + "SPDXID": "SPDXRef-Package-pin-project-internal-1.1.5", + "description": "Implementation detail of the `pin-project` crate.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/fiat-crypto@0.2.9", + "referenceLocator": "pkg:cargo/pin-project-internal@1.1.5", "referenceType": "purl" } ], - "homepage": "https://github.com/mit-plv/fiat-crypto", - "licenseConcluded": "MIT OR Apache-2.0 OR BSD-1-Clause", - "licenseDeclared": "MIT OR Apache-2.0 OR BSD-1-Clause", - "name": "fiat-crypto", - "versionInfo": "0.2.9" + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "pin-project-internal", + "versionInfo": "1.1.5" }, { - "SPDXID": "SPDXRef-Package-weak-table-0.3.2", - "description": "Weak hash maps and sets", + "SPDXID": "SPDXRef-Package-bstr-1.10.0", + "description": "A string type that is not required to be valid UTF-8.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/weak-table@0.3.2", + "referenceLocator": "pkg:cargo/bstr@1.10.0", "referenceType": "purl" } ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "weak-table", - "versionInfo": "0.3.2" + "homepage": "https://github.com/BurntSushi/bstr", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "bstr", + "versionInfo": "1.10.0" }, { - "SPDXID": "SPDXRef-Package-time-macros-0.2.18", - "description": " Procedural macros for the time crate.\n This crate is an implementation detail and should not be relied upon directly.\n", + "SPDXID": "SPDXRef-Package-home-0.5.9", + "description": "Shared definitions of home directories.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/time-macros@0.2.18", + "referenceLocator": "pkg:cargo/home@0.5.9", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "time-macros", - "versionInfo": "0.2.18" + "name": "home", + "versionInfo": "0.5.9" }, { - "SPDXID": "SPDXRef-Package-tinyvec_macros-0.1.1", - "description": "Some macros for tiny containers", + "SPDXID": "SPDXRef-Package-overload-0.1.1", + "description": "Provides a macro to simplify operator overloading.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tinyvec_macros@0.1.1", + "referenceLocator": "pkg:cargo/overload@0.1.1", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0 OR Zlib", - "licenseDeclared": "MIT OR Apache-2.0 OR Zlib", - "name": "tinyvec_macros", + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "overload", "versionInfo": "0.1.1" }, { - "SPDXID": "SPDXRef-Package-redox_users-0.4.6", - "description": "A Rust library to access Redox users and groups functionality", + "SPDXID": "SPDXRef-Package-darling_macro-0.20.10", + "description": "Internal support for a proc-macro library for reading attributes into structs when\nimplementing custom derives. Use https://crates.io/crates/darling in your code.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/redox_users@0.4.6", + "referenceLocator": "pkg:cargo/darling_macro@0.20.10", "referenceType": "purl" } ], "licenseConcluded": "MIT", "licenseDeclared": "MIT", - "name": "redox_users", - "versionInfo": "0.4.6" + "name": "darling_macro", + "versionInfo": "0.20.10" }, { - "SPDXID": "SPDXRef-Package-rand-0.8.5", - "description": "Random number generators and other randomness functionality.\n", + "SPDXID": "SPDXRef-Package-tor-hsclient-0.24.0", + "description": "Arti's implementation of an onion service client", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/rand@0.8.5", + "referenceLocator": "pkg:cargo/tor-hsclient@0.24.0", "referenceType": "purl" } ], - "homepage": "https://rust-random.github.io/book", + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "rand", - "versionInfo": "0.8.5" + "name": "tor-hsclient", + "versionInfo": "0.24.0" }, { - "SPDXID": "SPDXRef-Package-tokio-util-0.7.12", - "description": "Additional utilities for working with Tokio.\n", + "SPDXID": "SPDXRef-Package-scopeguard-1.2.0", + "description": "A RAII scope guard that will run a given closure when it goes out of scope,\neven if the code between panics (assuming unwinding panic).\n\nDefines the macros `defer!`, `defer_on_unwind!`, `defer_on_success!` as\nshorthands for guards with one of the implemented strategies.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tokio-util@0.7.12", + "referenceLocator": "pkg:cargo/scopeguard@1.2.0", "referenceType": "purl" } ], - "homepage": "https://tokio.rs", - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "tokio-util", - "versionInfo": "0.7.12" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "scopeguard", + "versionInfo": "1.2.0" }, { - "SPDXID": "SPDXRef-Package-funty-2.0.0", - "description": "Trait generalization over the primitive types", + "SPDXID": "SPDXRef-Package-smallvec-1.13.2", + "description": "'Small vector' optimization: store up to a small number of items on the stack", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/funty@2.0.0", + "referenceLocator": "pkg:cargo/smallvec@1.13.2", "referenceType": "purl" } ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "funty", - "versionInfo": "2.0.0" - }, + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "smallvec", + "versionInfo": "1.13.2" + }, { - "SPDXID": "SPDXRef-Package-pin-project-1.1.5", - "description": "A crate for safe and ergonomic pin-projection.\n", + "SPDXID": "SPDXRef-Package-derive-adhoc-0.7.3", + "description": "An ergonomic way to write derive() macros", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/pin-project@1.1.5", + "referenceLocator": "pkg:cargo/derive-adhoc@0.7.3", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "pin-project", - "versionInfo": "1.1.5" + "homepage": "https://gitlab.torproject.org/Diziet/rust-derive-adhoc", + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "derive-adhoc", + "versionInfo": "0.7.3" }, { - "SPDXID": "SPDXRef-Package-syn-2.0.77", - "description": "Parser for Rust source code", + "SPDXID": "SPDXRef-Package-slab-0.4.9", + "description": "Pre-allocated storage for a uniform data type", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/syn@2.0.77", + "referenceLocator": "pkg:cargo/slab@0.4.9", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "syn", - "versionInfo": "2.0.77" + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "slab", + "versionInfo": "0.4.9" }, { - "SPDXID": "SPDXRef-Package-lock_api-0.4.12", - "description": "Wrappers to create fully-featured Mutex and RwLock types. Compatible with no_std.", + "SPDXID": "SPDXRef-Package-tor-memquota-0.24.0", + "description": "Memory use tracking and quota utilities, used by Tor software", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/lock_api@0.4.12", + "referenceLocator": "pkg:cargo/tor-memquota@0.24.0", "referenceType": "purl" } ], + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "lock_api", - "versionInfo": "0.4.12" + "name": "tor-memquota", + "versionInfo": "0.24.0" }, { - "SPDXID": "SPDXRef-Package-num-integer-0.1.46", - "description": "Integer traits and functions", + "SPDXID": "SPDXRef-Package-toml_edit-0.19.15", + "description": "Yet another format-preserving TOML parser.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/num-integer@0.1.46", + "referenceLocator": "pkg:cargo/toml_edit@0.19.15", "referenceType": "purl" } ], - "homepage": "https://github.com/rust-num/num-integer", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "num-integer", - "versionInfo": "0.1.46" + "name": "toml_edit", + "versionInfo": "0.19.15" }, { - "SPDXID": "SPDXRef-Package-arrayvec-0.7.6", - "description": "A vector with fixed capacity, backed by an array (it can be stored on the stack too). Implements fixed capacity ArrayVec and ArrayString.", + "SPDXID": "SPDXRef-Package-ssh-cipher-0.2.0", + "description": "Pure Rust implementation of SSH symmetric encryption including support for the\nmodern aes128-gcm@openssh.com/aes256-gcm@openssh.com and\nchacha20-poly1305@openssh.com algorithms as well as legacy support for older\nciphers. Built on the pure Rust cryptography implementations maintained by the\nRustCrypto organization.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/arrayvec@0.7.6", + "referenceLocator": "pkg:cargo/ssh-cipher@0.2.0", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "arrayvec", - "versionInfo": "0.7.6" + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "ssh-cipher", + "versionInfo": "0.2.0" }, { - "SPDXID": "SPDXRef-Package-serde-value-0.7.0", - "description": "Serialization value trees", + "SPDXID": "SPDXRef-Package-thiserror-1.0.63", + "description": "derive(Error)", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/serde-value@0.7.0", + "referenceLocator": "pkg:cargo/thiserror@1.0.63", "referenceType": "purl" } ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "serde-value", - "versionInfo": "0.7.0" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "thiserror", + "versionInfo": "1.0.63" }, { - "SPDXID": "SPDXRef-Package-windows-sys-0.48.0", - "description": "Rust for Windows", + "SPDXID": "SPDXRef-Package-p384-0.13.0", + "description": "Pure Rust implementation of the NIST P-384 (a.k.a. secp384r1) elliptic curve\nas defined in SP 800-186 with support for ECDH, ECDSA signing/verification,\nand general purpose curve arithmetic support.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/windows-sys@0.48.0", + "referenceLocator": "pkg:cargo/p384@0.13.0", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "windows-sys", - "versionInfo": "0.48.0" + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "p384", + "versionInfo": "0.13.0" }, { - "SPDXID": "SPDXRef-Package-bitflags-2.6.0", - "description": "A macro to generate structures which behave like bitflags.\n", + "SPDXID": "SPDXRef-Package-winapi-0.3.9", + "description": "Raw FFI bindings for all of Windows API.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/bitflags@2.6.0", + "referenceLocator": "pkg:cargo/winapi@0.3.9", "referenceType": "purl" } ], - "homepage": "https://github.com/bitflags/bitflags", "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "bitflags", - "versionInfo": "2.6.0" + "licenseDeclared": "MIT/Apache-2.0", + "name": "winapi", + "versionInfo": "0.3.9" }, { - "SPDXID": "SPDXRef-Package-tor-config-0.24.0", - "description": "Low-level configuration for the Arti Tor implementation", + "SPDXID": "SPDXRef-Package-directories-5.0.1", + "description": "A tiny mid-level library that provides platform-specific standard locations of directories for config, cache and other data on Linux, Windows and macOS by leveraging the mechanisms defined by the XDG base/user directory specifications on Linux, the Known Folder API on Windows, and the Standard Directory guidelines on macOS.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tor-config@0.24.0", + "referenceLocator": "pkg:cargo/directories@5.0.1", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "tor-config", - "versionInfo": "0.24.0" + "name": "directories", + "versionInfo": "5.0.1" }, { - "SPDXID": "SPDXRef-Package-darling-0.14.4", - "description": "A proc-macro library for reading attributes into structs when\nimplementing custom derives.\n", + "SPDXID": "SPDXRef-Package-toml_edit-0.22.20", + "description": "Yet another format-preserving TOML parser.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/darling@0.14.4", + "referenceLocator": "pkg:cargo/toml_edit@0.22.20", "referenceType": "purl" } ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "darling", - "versionInfo": "0.14.4" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "toml_edit", + "versionInfo": "0.22.20" }, { - "SPDXID": "SPDXRef-Package-tokio-macros-2.4.0", - "description": "Tokio's proc macros.\n", + "SPDXID": "SPDXRef-Package-icu_locid_transform_data-1.5.0", + "description": "Data for the icu_locid_transform crate", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tokio-macros@2.4.0", + "referenceLocator": "pkg:cargo/icu_locid_transform_data@1.5.0", "referenceType": "purl" } ], - "homepage": "https://tokio.rs", - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "tokio-macros", - "versionInfo": "2.4.0" + "homepage": "https://icu4x.unicode.org", + "licenseConcluded": "Unicode-3.0", + "licenseDeclared": "Unicode-3.0", + "name": "icu_locid_transform_data", + "versionInfo": "1.5.0" }, { - "SPDXID": "SPDXRef-Package-dirs-sys-0.4.1", - "description": "System-level helper functions for the dirs and directories crates.", + "SPDXID": "SPDXRef-Package-zerofrom-0.1.4", + "description": "ZeroFrom trait for constructing", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/dirs-sys@0.4.1", + "referenceLocator": "pkg:cargo/zerofrom@0.1.4", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "dirs-sys", - "versionInfo": "0.4.1" + "licenseConcluded": "Unicode-3.0", + "licenseDeclared": "Unicode-3.0", + "name": "zerofrom", + "versionInfo": "0.1.4" }, { - "SPDXID": "SPDXRef-Package-ssh-key-0.6.6", - "description": "Pure Rust implementation of SSH key file format decoders/encoders as described\nin RFC4251/RFC4253 and OpenSSH key formats, as well as \"sshsig\" signatures and\ncertificates (including certificate validation and certificate authority support),\nwith further support for the `authorized_keys` and `known_hosts` file formats.\n", + "SPDXID": "SPDXRef-Package-tracing-attributes-0.1.27", + "description": "Procedural macro attributes for automatically instrumenting functions.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/ssh-key@0.6.6", + "referenceLocator": "pkg:cargo/tracing-attributes@0.1.27", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "ssh-key", - "versionInfo": "0.6.6" + "homepage": "https://tokio.rs", + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "tracing-attributes", + "versionInfo": "0.1.27" }, { - "SPDXID": "SPDXRef-Package-crossbeam-queue-0.3.11", - "description": "Concurrent queues", + "SPDXID": "SPDXRef-Package-tinyvec_macros-0.1.1", + "description": "Some macros for tiny containers", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/crossbeam-queue@0.3.11", + "referenceLocator": "pkg:cargo/tinyvec_macros@0.1.1", "referenceType": "purl" } ], - "homepage": "https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-queue", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "crossbeam-queue", - "versionInfo": "0.3.11" + "licenseConcluded": "MIT OR Apache-2.0 OR Zlib", + "licenseDeclared": "MIT OR Apache-2.0 OR Zlib", + "name": "tinyvec_macros", + "versionInfo": "0.1.1" }, { - "SPDXID": "SPDXRef-Package-spin-0.9.8", - "description": "Spin-based synchronization primitives", + "SPDXID": "SPDXRef-Package-wasi-0.11.0+wasi-snapshot-preview1", + "description": "Experimental WASI API bindings for Rust", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/spin@0.9.8", + "referenceLocator": "pkg:cargo/wasi@0.11.0+wasi-snapshot-preview1", "referenceType": "purl" } ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "spin", - "versionInfo": "0.9.8" + "licenseConcluded": "Apache-2.0 OR Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT", + "name": "wasi", + "versionInfo": "0.11.0+wasi-snapshot-preview1" }, { - "SPDXID": "SPDXRef-Package-fastrand-2.1.1", - "description": "A simple and fast random number generator", + "SPDXID": "SPDXRef-Package-tor-netdoc-0.24.0", + "description": "Network document formats used with the Tor protocols.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/fastrand@2.1.1", + "referenceLocator": "pkg:cargo/tor-netdoc@0.24.0", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "fastrand", - "versionInfo": "2.1.1" + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "tor-netdoc", + "versionInfo": "0.24.0" }, { - "SPDXID": "SPDXRef-Package-p521-0.13.3", - "description": "Pure Rust implementation of the NIST P-521 (a.k.a. secp521r1) elliptic curve\nas defined in SP 800-186\n", + "SPDXID": "SPDXRef-Package-crypto-bigint-0.5.5", + "description": "Pure Rust implementation of a big integer library which has been designed from\nthe ground-up for use in cryptographic applications. Provides constant-time,\nno_std-friendly implementations of modern formulas using const generics.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/p521@0.13.3", + "referenceLocator": "pkg:cargo/crypto-bigint@0.5.5", "referenceType": "purl" } ], "licenseConcluded": "Apache-2.0 OR MIT", "licenseDeclared": "Apache-2.0 OR MIT", - "name": "p521", - "versionInfo": "0.13.3" + "name": "crypto-bigint", + "versionInfo": "0.5.5" }, { - "SPDXID": "SPDXRef-Package-rustc-demangle-0.1.24", - "description": "Rust compiler symbol demangling.\n", + "SPDXID": "SPDXRef-Package-windows-sys-0.48.0", + "description": "Rust for Windows", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/rustc-demangle@0.1.24", + "referenceLocator": "pkg:cargo/windows-sys@0.48.0", "referenceType": "purl" } ], - "homepage": "https://github.com/rust-lang/rustc-demangle", "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT/Apache-2.0", - "name": "rustc-demangle", - "versionInfo": "0.1.24" + "licenseDeclared": "MIT OR Apache-2.0", + "name": "windows-sys", + "versionInfo": "0.48.0" }, { - "SPDXID": "SPDXRef-Package-wasm-bindgen-macro-support-0.2.93", - "description": "The part of the implementation of the `#[wasm_bindgen]` attribute that is not in the shared backend crate\n", + "SPDXID": "SPDXRef-Package-option-ext-0.2.0", + "description": "Extends `Option` with additional operations", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/wasm-bindgen-macro-support@0.2.93", + "referenceLocator": "pkg:cargo/option-ext@0.2.0", "referenceType": "purl" } ], - "homepage": "https://rustwasm.github.io/wasm-bindgen/", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "wasm-bindgen-macro-support", - "versionInfo": "0.2.93" + "homepage": "https://github.com/soc/option-ext", + "licenseConcluded": "MPL-2.0", + "licenseDeclared": "MPL-2.0", + "name": "option-ext", + "versionInfo": "0.2.0" }, { - "SPDXID": "SPDXRef-Package-tracing-test-0.2.5", - "description": "Helper functions and macros that allow for easier testing of crates that use `tracing`.\n", + "SPDXID": "SPDXRef-Package-mio-1.0.2", + "description": "Lightweight non-blocking I/O.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tracing-test@0.2.5", + "referenceLocator": "pkg:cargo/mio@1.0.2", "referenceType": "purl" } ], + "homepage": "https://github.com/tokio-rs/mio", "licenseConcluded": "MIT", "licenseDeclared": "MIT", - "name": "tracing-test", - "versionInfo": "0.2.5" + "name": "mio", + "versionInfo": "1.0.2" }, { - "SPDXID": "SPDXRef-Package-quote-1.0.37", - "description": "Quasi-quoting macro quote!(...)", + "SPDXID": "SPDXRef-Package-radium-0.7.0", + "description": "Portable interfaces for maybe-atomic types", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/quote@1.0.37", + "referenceLocator": "pkg:cargo/radium@0.7.0", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "quote", - "versionInfo": "1.0.37" + "homepage": "https://github.com/bitvecto-rs/radium", + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "radium", + "versionInfo": "0.7.0" }, { - "SPDXID": "SPDXRef-Package-toml_datetime-0.6.8", - "description": "A TOML-compatible datetime type", + "SPDXID": "SPDXRef-Package-foreign-types-0.3.2", + "description": "A framework for Rust wrappers over C APIs", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/toml_datetime@0.6.8", + "referenceLocator": "pkg:cargo/foreign-types@0.3.2", "referenceType": "purl" } ], - "homepage": "https://github.com/toml-rs/toml", "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "toml_datetime", - "versionInfo": "0.6.8" + "licenseDeclared": "MIT/Apache-2.0", + "name": "foreign-types", + "versionInfo": "0.3.2" }, { - "SPDXID": "SPDXRef-Package-tor-keymgr-0.24.0", - "description": "Key management for the Arti Tor implementation", + "SPDXID": "SPDXRef-Package-crypto-common-0.1.6", + "description": "Common cryptographic traits", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tor-keymgr@0.24.0", + "referenceLocator": "pkg:cargo/crypto-common@0.1.6", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "tor-keymgr", - "versionInfo": "0.24.0" + "name": "crypto-common", + "versionInfo": "0.1.6" }, { - "SPDXID": "SPDXRef-Package-windows_aarch64_gnullvm-0.52.6", - "description": "Import lib for Windows", + "SPDXID": "SPDXRef-Package-litemap-0.7.3", + "description": "A key-value Map implementation based on a flat, sorted Vec.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/windows_aarch64_gnullvm@0.52.6", + "referenceLocator": "pkg:cargo/litemap@0.7.3", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "windows_aarch64_gnullvm", - "versionInfo": "0.52.6" + "licenseConcluded": "Unicode-3.0", + "licenseDeclared": "Unicode-3.0", + "name": "litemap", + "versionInfo": "0.7.3" }, { - "SPDXID": "SPDXRef-Package-wasm-bindgen-shared-0.2.93", - "description": "Shared support between wasm-bindgen and wasm-bindgen cli, an internal\ndependency.\n", + "SPDXID": "SPDXRef-Package-hkdf-0.12.4", + "description": "HMAC-based Extract-and-Expand Key Derivation Function (HKDF)", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/wasm-bindgen-shared@0.2.93", + "referenceLocator": "pkg:cargo/hkdf@0.12.4", "referenceType": "purl" } ], - "homepage": "https://rustwasm.github.io/wasm-bindgen/", + "homepage": "https://github.com/RustCrypto/KDFs/", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "wasm-bindgen-shared", - "versionInfo": "0.2.93" + "name": "hkdf", + "versionInfo": "0.12.4" }, { - "SPDXID": "SPDXRef-Package-slab-0.4.9", - "description": "Pre-allocated storage for a uniform data type", + "SPDXID": "SPDXRef-Package-futures-executor-0.3.30", + "description": "Executors for asynchronous tasks based on the futures-rs library.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/slab@0.4.9", + "referenceLocator": "pkg:cargo/futures-executor@0.3.30", "referenceType": "purl" } ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "slab", - "versionInfo": "0.4.9" + "homepage": "https://rust-lang.github.io/futures-rs", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "futures-executor", + "versionInfo": "0.3.30" }, { - "SPDXID": "SPDXRef-Package-wyz-0.5.1", - "description": "myrrlyn’s utility collection", + "SPDXID": "SPDXRef-Package-time-core-0.1.2", + "description": "This crate is an implementation detail and should not be relied upon directly.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/wyz@0.5.1", + "referenceLocator": "pkg:cargo/time-core@0.1.2", "referenceType": "purl" } ], - "homepage": "https://myrrlyn.net/crates/wyz", - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "wyz", - "versionInfo": "0.5.1" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "time-core", + "versionInfo": "0.1.2" }, { - "SPDXID": "SPDXRef-Package-ahash-0.8.11", - "description": "A non-cryptographic hash function using AES-NI for high performance", + "SPDXID": "SPDXRef-Package-windows_aarch64_msvc-0.48.5", + "description": "Import lib for Windows", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/ahash@0.8.11", + "referenceLocator": "pkg:cargo/windows_aarch64_msvc@0.48.5", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "ahash", - "versionInfo": "0.8.11" + "name": "windows_aarch64_msvc", + "versionInfo": "0.48.5" }, { - "SPDXID": "SPDXRef-Package-tor-dirclient-0.24.0", - "description": "Downloads specific Tor network directory objects over the Tor network", + "SPDXID": "SPDXRef-Package-retry-error-0.6.0", + "description": "An error type for an operation that can fail more than once", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tor-dirclient@0.24.0", + "referenceLocator": "pkg:cargo/retry-error@0.6.0", "referenceType": "purl" } ], "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "tor-dirclient", - "versionInfo": "0.24.0" + "name": "retry-error", + "versionInfo": "0.6.0" }, { - "SPDXID": "SPDXRef-Package-serde_with-3.9.0", - "description": "Custom de/serialization functions for Rust's serde", + "SPDXID": "SPDXRef-Package-winnow-0.6.18", + "description": "A byte-oriented, zero-copy, parser combinators library", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/serde_with@3.9.0", + "referenceLocator": "pkg:cargo/winnow@0.6.18", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "serde_with", - "versionInfo": "3.9.0" + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "winnow", + "versionInfo": "0.6.18" }, { - "SPDXID": "SPDXRef-Package-filetime-0.2.25", - "description": "Platform-agnostic accessors of timestamps in File metadata\n", + "SPDXID": "SPDXRef-Package-zstd-safe-7.2.1", + "description": "Safe low-level bindings for the zstd compression library.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/filetime@0.2.25", + "referenceLocator": "pkg:cargo/zstd-safe@7.2.1", "referenceType": "purl" } ], - "homepage": "https://github.com/alexcrichton/filetime", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT/Apache-2.0", - "name": "filetime", - "versionInfo": "0.2.25" + "name": "zstd-safe", + "versionInfo": "7.2.1" }, { - "SPDXID": "SPDXRef-Package-rustversion-1.0.17", - "description": "Conditional compilation according to rustc compiler version", + "SPDXID": "SPDXRef-Package-dirs-sys-0.4.1", + "description": "System-level helper functions for the dirs and directories crates.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/rustversion@1.0.17", + "referenceLocator": "pkg:cargo/dirs-sys@0.4.1", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "rustversion", - "versionInfo": "1.0.17" + "name": "dirs-sys", + "versionInfo": "0.4.1" }, { - "SPDXID": "SPDXRef-Package-typed-index-collections-3.1.0", - "description": "Typed index version of Rust slice and Vec containers", + "SPDXID": "SPDXRef-Package-asynchronous-codec-0.7.0", + "description": "Utilities for encoding and decoding frames using `async/await`", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/typed-index-collections@3.1.0", + "referenceLocator": "pkg:cargo/asynchronous-codec@0.7.0", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "typed-index-collections", - "versionInfo": "3.1.0" + "homepage": "https://github.com/mxinden/asynchronous-codec", + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "asynchronous-codec", + "versionInfo": "0.7.0" }, { - "SPDXID": "SPDXRef-Package-which-4.4.2", - "description": "A Rust equivalent of Unix command \"which\". Locate installed executable in cross platforms.", + "SPDXID": "SPDXRef-Package-strum_macros-0.26.4", + "description": "Helpful macros for working with enums and strings", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/which@4.4.2", + "referenceLocator": "pkg:cargo/strum_macros@0.26.4", "referenceType": "purl" } ], + "homepage": "https://github.com/Peternator7/strum", "licenseConcluded": "MIT", "licenseDeclared": "MIT", - "name": "which", - "versionInfo": "4.4.2" + "name": "strum_macros", + "versionInfo": "0.26.4" }, { - "SPDXID": "SPDXRef-Package-tor-llcrypto-0.24.0", - "description": "Low level cryptography wrappers used by Tor", + "SPDXID": "SPDXRef-Package-core-foundation-0.9.4", + "description": "Bindings to Core Foundation for macOS", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tor-llcrypto@0.24.0", + "referenceLocator": "pkg:cargo/core-foundation@0.9.4", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", + "homepage": "https://github.com/servo/core-foundation-rs", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "tor-llcrypto", - "versionInfo": "0.24.0" + "name": "core-foundation", + "versionInfo": "0.9.4" }, { - "SPDXID": "SPDXRef-Package-convert_case-0.6.0", - "description": "Convert strings into any case", + "SPDXID": "SPDXRef-Package-async-compression-0.4.12", + "description": "Adaptors between compression crates and Rust's modern asynchronous IO types.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/convert_case@0.6.0", + "referenceLocator": "pkg:cargo/async-compression@0.4.12", "referenceType": "purl" } ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "convert_case", - "versionInfo": "0.6.0" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "async-compression", + "versionInfo": "0.4.12" }, { - "SPDXID": "SPDXRef-Package-data-encoding-macro-internal-0.1.13", - "description": "Internal library for data-encoding-macro", + "SPDXID": "SPDXRef-Package-tracing-test-macro-0.2.5", + "description": "A procedural macro that allow for easier testing of crates that use `tracing`.\n\nInternal crate, should only be used through the `tracing-test` crate.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/data-encoding-macro-internal@0.1.13", + "referenceLocator": "pkg:cargo/tracing-test-macro@0.2.5", "referenceType": "purl" } ], "licenseConcluded": "MIT", "licenseDeclared": "MIT", - "name": "data-encoding-macro-internal", - "versionInfo": "0.1.13" + "name": "tracing-test-macro", + "versionInfo": "0.2.5" }, { - "SPDXID": "SPDXRef-Package-futures-core-0.3.30", - "description": "The core traits and types in for the `futures` library.\n", + "SPDXID": "SPDXRef-Package-syn-2.0.77", + "description": "Parser for Rust source code", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/futures-core@0.3.30", + "referenceLocator": "pkg:cargo/syn@2.0.77", "referenceType": "purl" } ], - "homepage": "https://rust-lang.github.io/futures-rs", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "futures-core", - "versionInfo": "0.3.30" + "name": "syn", + "versionInfo": "2.0.77" }, { - "SPDXID": "SPDXRef-Package-regex-1.10.6", - "description": "An implementation of regular expressions for Rust. This implementation uses\nfinite automata and guarantees linear time matching on all inputs.\n", + "SPDXID": "SPDXRef-Package-digest-0.10.7", + "description": "Traits for cryptographic hash functions and message authentication codes", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/regex@1.10.6", + "referenceLocator": "pkg:cargo/digest@0.10.7", "referenceType": "purl" } ], - "homepage": "https://github.com/rust-lang/regex", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "regex", - "versionInfo": "1.10.6" + "name": "digest", + "versionInfo": "0.10.7" }, { - "SPDXID": "SPDXRef-Package-k12-0.3.0", - "description": "Pure Rust implementation of the KangarooTwelve hash function", - "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", + "SPDXID": "SPDXRef-Package-rustix-0.38.36", + "description": "Safe Rust bindings to POSIX/Unix/Linux/Winsock-like syscalls", + "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/k12@0.3.0", + "referenceLocator": "pkg:cargo/rustix@0.38.36", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "k12", - "versionInfo": "0.3.0" + "licenseConcluded": "Apache-2.0 OR Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT", + "name": "rustix", + "versionInfo": "0.38.36" }, { - "SPDXID": "SPDXRef-Package-object-0.36.4", - "description": "A unified interface for reading and writing object file formats.", + "SPDXID": "SPDXRef-Package-matchers-0.1.0", + "description": "Regex matching on character and byte streams.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/object@0.36.4", + "referenceLocator": "pkg:cargo/matchers@0.1.0", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "object", - "versionInfo": "0.36.4" + "homepage": "https://github.com/hawkw/matchers", + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "matchers", + "versionInfo": "0.1.0" }, { - "SPDXID": "SPDXRef-Package-tor-rtmock-0.24.0", - "description": "Testing mock support for tor-rtcomapt", + "SPDXID": "SPDXRef-Package-wasm-bindgen-macro-support-0.2.93", + "description": "The part of the implementation of the `#[wasm_bindgen]` attribute that is not in the shared backend crate\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tor-rtmock@0.24.0", + "referenceLocator": "pkg:cargo/wasm-bindgen-macro-support@0.2.93", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", + "homepage": "https://rustwasm.github.io/wasm-bindgen/", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "tor-rtmock", - "versionInfo": "0.24.0" + "name": "wasm-bindgen-macro-support", + "versionInfo": "0.2.93" }, { - "SPDXID": "SPDXRef-Package-icu_locid_transform-1.5.0", - "description": "API for Unicode Language and Locale Identifiers canonicalization", + "SPDXID": "SPDXRef-Package-serde_with_macros-3.9.0", + "description": "proc-macro library for serde_with", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/icu_locid_transform@1.5.0", + "referenceLocator": "pkg:cargo/serde_with_macros@3.9.0", "referenceType": "purl" } ], - "homepage": "https://icu4x.unicode.org", - "licenseConcluded": "Unicode-3.0", - "licenseDeclared": "Unicode-3.0", - "name": "icu_locid_transform", - "versionInfo": "1.5.0" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "serde_with_macros", + "versionInfo": "3.9.0" }, { - "SPDXID": "SPDXRef-Package-data-encoding-macro-0.1.15", - "description": "Macros for data-encoding", + "SPDXID": "SPDXRef-Package-p256-0.13.2", + "description": "Pure Rust implementation of the NIST P-256 (a.k.a. secp256r1, prime256v1)\nelliptic curve as defined in SP 800-186, with support for ECDH, ECDSA\nsigning/verification, and general purpose curve arithmetic\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/data-encoding-macro@0.1.15", + "referenceLocator": "pkg:cargo/p256@0.13.2", "referenceType": "purl" } ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "data-encoding-macro", - "versionInfo": "0.1.15" + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "p256", + "versionInfo": "0.13.2" }, { - "SPDXID": "SPDXRef-Package-utf16_iter-1.0.5", - "description": "Iterator by char over potentially-invalid UTF-16 in &[u16]", + "SPDXID": "SPDXRef-Package-foreign-types-shared-0.1.1", + "description": "An internal crate used by foreign-types", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/utf16_iter@1.0.5", + "referenceLocator": "pkg:cargo/foreign-types-shared@0.1.1", "referenceType": "purl" } ], - "homepage": "https://docs.rs/utf16_iter/", - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "utf16_iter", - "versionInfo": "1.0.5" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT/Apache-2.0", + "name": "foreign-types-shared", + "versionInfo": "0.1.1" }, { - "SPDXID": "SPDXRef-Package-walkdir-2.5.0", - "description": "Recursively walk a directory.", + "SPDXID": "SPDXRef-Package-ed25519-2.2.3", + "description": "Edwards Digital Signature Algorithm (EdDSA) over Curve25519 (as specified in RFC 8032)\nsupport library providing signature type definitions and PKCS#8 private key\ndecoding/encoding support\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/walkdir@2.5.0", + "referenceLocator": "pkg:cargo/ed25519@2.2.3", "referenceType": "purl" } ], - "homepage": "https://github.com/BurntSushi/walkdir", - "licenseConcluded": "Unlicense OR MIT", - "licenseDeclared": "Unlicense/MIT", - "name": "walkdir", - "versionInfo": "2.5.0" + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "ed25519", + "versionInfo": "2.2.3" }, { - "SPDXID": "SPDXRef-Package-powerfmt-0.2.0", - "description": " `powerfmt` is a library that provides utilities for formatting values. This crate makes it\n significantly easier to support filling to a minimum width with alignment, avoid heap\n allocation, and avoid repetitive calculations.\n", + "SPDXID": "SPDXRef-Package-windows_x86_64_gnu-0.52.6", + "description": "Import lib for Windows", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/powerfmt@0.2.0", + "referenceLocator": "pkg:cargo/windows_x86_64_gnu@0.52.6", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "powerfmt", - "versionInfo": "0.2.0" + "name": "windows_x86_64_gnu", + "versionInfo": "0.52.6" }, { - "SPDXID": "SPDXRef-Package-openssl-0.10.66", - "description": "OpenSSL bindings", + "SPDXID": "SPDXRef-Package-paste-1.0.15", + "description": "Macros for all your token pasting needs", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/openssl@0.10.66", + "referenceLocator": "pkg:cargo/paste@1.0.15", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0", - "licenseDeclared": "Apache-2.0", - "name": "openssl", - "versionInfo": "0.10.66" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "paste", + "versionInfo": "1.0.15" }, { - "SPDXID": "SPDXRef-Package-tor-relay-selection-0.24.0", - "description": "Logic to select Tor relays for specific purposes", + "SPDXID": "SPDXRef-Package-fslock-guard-0.2.0", + "description": "Wrapper around a lockfile with unlock-on-drop semantics", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tor-relay-selection@0.24.0", + "referenceLocator": "pkg:cargo/fslock-guard@0.2.0", "referenceType": "purl" } ], "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "tor-relay-selection", - "versionInfo": "0.24.0" + "name": "fslock-guard", + "versionInfo": "0.2.0" }, { - "SPDXID": "SPDXRef-Package-url-2.5.2", - "description": "URL library for Rust, based on the WHATWG URL Standard", + "SPDXID": "SPDXRef-Package-aho-corasick-1.1.3", + "description": "Fast multiple substring searching.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/url@2.5.2", + "referenceLocator": "pkg:cargo/aho-corasick@1.1.3", + "referenceType": "purl" + } + ], + "homepage": "https://github.com/BurntSushi/aho-corasick", + "licenseConcluded": "Unlicense OR MIT", + "licenseDeclared": "Unlicense OR MIT", + "name": "aho-corasick", + "versionInfo": "1.1.3" + }, + { + "SPDXID": "SPDXRef-Package-tor-rtmock-0.24.0", + "description": "Testing mock support for tor-rtcomapt", + "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceLocator": "pkg:cargo/tor-rtmock@0.24.0", "referenceType": "purl" } ], + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "url", - "versionInfo": "2.5.2" + "name": "tor-rtmock", + "versionInfo": "0.24.0" }, { - "SPDXID": "SPDXRef-Package-strsim-0.11.1", - "description": "Implementations of string similarity metrics. Includes Hamming, Levenshtein,\nOSA, Damerau-Levenshtein, Jaro, Jaro-Winkler, and Sørensen-Dice.\n", + "SPDXID": "SPDXRef-Package-deranged-0.3.11", + "description": "Ranged integers", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/strsim@0.11.1", + "referenceLocator": "pkg:cargo/deranged@0.3.11", "referenceType": "purl" } ], - "homepage": "https://github.com/rapidfuzz/strsim-rs", - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "strsim", - "versionInfo": "0.11.1" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "deranged", + "versionInfo": "0.3.11" }, { - "SPDXID": "SPDXRef-Package-regex-automata-0.1.10", - "description": "Automata construction and matching using regular expressions.", + "SPDXID": "SPDXRef-Package-byteorder-1.5.0", + "description": "Library for reading/writing numbers in big-endian and little-endian.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/regex-automata@0.1.10", + "referenceLocator": "pkg:cargo/byteorder@1.5.0", "referenceType": "purl" } ], - "homepage": "https://github.com/BurntSushi/regex-automata", + "homepage": "https://github.com/BurntSushi/byteorder", "licenseConcluded": "Unlicense OR MIT", - "licenseDeclared": "Unlicense/MIT", - "name": "regex-automata", - "versionInfo": "0.1.10" + "licenseDeclared": "Unlicense OR MIT", + "name": "byteorder", + "versionInfo": "1.5.0" }, { - "SPDXID": "SPDXRef-Package-libm-0.2.8", - "description": "libm in pure Rust", + "SPDXID": "SPDXRef-Package-gosling-0.3.0", + "description": "A library for developing fully anonymous, peer-to-peer, metadata-resistant applications using tor onion services", + "downloadLocation": "NONE", + "homepage": "https://blueprint-freespeech.github.io/gosling/index.xhtml", + "licenseConcluded": "BSD-3-Clause", + "licenseDeclared": "BSD-3-Clause", + "name": "gosling", + "versionInfo": "0.3.0" + }, + { + "SPDXID": "SPDXRef-Package-dirs-5.0.1", + "description": "A tiny low-level library that provides platform-specific standard locations of directories for config, cache and other data on Linux, Windows, macOS and Redox by leveraging the mechanisms defined by the XDG base/user directory specifications on Linux, the Known Folder API on Windows, and the Standard Directory guidelines on macOS.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/libm@0.2.8", + "referenceLocator": "pkg:cargo/dirs@5.0.1", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "libm", - "versionInfo": "0.2.8" + "name": "dirs", + "versionInfo": "5.0.1" }, { - "SPDXID": "SPDXRef-Package-ssh-encoding-0.2.0", - "description": "Pure Rust implementation of SSH data type decoders/encoders as described\nin RFC4251\n", + "SPDXID": "SPDXRef-Package-tor-socksproto-0.24.0", + "description": "Encode and decode the SOCKS protocol, as extended in Tor", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/ssh-encoding@0.2.0", + "referenceLocator": "pkg:cargo/tor-socksproto@0.24.0", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "ssh-encoding", - "versionInfo": "0.2.0" + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "tor-socksproto", + "versionInfo": "0.24.0" }, { - "SPDXID": "SPDXRef-Package-socks-0.3.4", - "description": "SOCKS proxy clients", + "SPDXID": "SPDXRef-Package-utf16_iter-1.0.5", + "description": "Iterator by char over potentially-invalid UTF-16 in &[u16]", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/socks@0.3.4", + "referenceLocator": "pkg:cargo/utf16_iter@1.0.5", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT/Apache-2.0", - "name": "socks", - "versionInfo": "0.3.4" + "homepage": "https://docs.rs/utf16_iter/", + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "utf16_iter", + "versionInfo": "1.0.5" }, { - "SPDXID": "SPDXRef-Package-itoa-1.0.11", - "description": "Fast integer primitive to string conversion", + "SPDXID": "SPDXRef-Package-futures-0.3.30", + "description": "An implementation of futures and streams featuring zero allocations,\ncomposability, and iterator-like interfaces.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/itoa@1.0.11", + "referenceLocator": "pkg:cargo/futures@0.3.30", "referenceType": "purl" } ], + "homepage": "https://rust-lang.github.io/futures-rs", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "itoa", - "versionInfo": "1.0.11" + "name": "futures", + "versionInfo": "0.3.30" }, { - "SPDXID": "SPDXRef-Package-tor-checkable-0.24.0", - "description": "Types to ensure that signed or time-bound data is validated before use", + "SPDXID": "SPDXRef-Package-yoke-0.7.4", + "description": "Abstraction allowing borrowed data to be carried along with the backing data it borrows from", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tor-checkable@0.24.0", + "referenceLocator": "pkg:cargo/yoke@0.7.4", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "tor-checkable", - "versionInfo": "0.24.0" + "licenseConcluded": "Unicode-3.0", + "licenseDeclared": "Unicode-3.0", + "name": "yoke", + "versionInfo": "0.7.4" }, { - "SPDXID": "SPDXRef-Package-derive_more-impl-1.0.0", - "description": "Internal implementation of `derive_more` crate", + "SPDXID": "SPDXRef-Package-sec1-0.7.3", + "description": "Pure Rust implementation of SEC1: Elliptic Curve Cryptography encoding formats\nincluding ASN.1 DER-serialized private keys as well as the\nElliptic-Curve-Point-to-Octet-String encoding\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/derive_more-impl@1.0.0", + "referenceLocator": "pkg:cargo/sec1@0.7.3", "referenceType": "purl" } ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "derive_more-impl", - "versionInfo": "1.0.0" + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "sec1", + "versionInfo": "0.7.3" }, { - "SPDXID": "SPDXRef-Package-caret-0.5.0", - "description": "Macros for declaring non-exhaustive C-style enumerations, with named members", + "SPDXID": "SPDXRef-Package-miniz_oxide-0.8.0", + "description": "DEFLATE compression and decompression library rewritten in Rust based on miniz", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/caret@0.5.0", + "referenceLocator": "pkg:cargo/miniz_oxide@0.8.0", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "caret", - "versionInfo": "0.5.0" - }, - { - "SPDXID": "SPDXRef-Package-gosling-0.3.0", - "description": "A library for developing fully anonymous, peer-to-peer, metadata-resistant applications using tor onion services", - "downloadLocation": "NONE", - "homepage": "https://blueprint-freespeech.github.io/gosling/index.xhtml", - "licenseConcluded": "BSD-3-Clause", - "licenseDeclared": "BSD-3-Clause", - "name": "gosling", - "versionInfo": "0.3.0" + "homepage": "https://github.com/Frommi/miniz_oxide/tree/master/miniz_oxide", + "licenseConcluded": "MIT OR Zlib OR Apache-2.0", + "licenseDeclared": "MIT OR Zlib OR Apache-2.0", + "name": "miniz_oxide", + "versionInfo": "0.8.0" }, { - "SPDXID": "SPDXRef-Package-regex-automata-0.4.7", - "description": "Automata construction and matching using regular expressions.", + "SPDXID": "SPDXRef-Package-tor-hsservice-0.24.0", + "description": "Arti's implementation of an onion service provider", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/regex-automata@0.4.7", + "referenceLocator": "pkg:cargo/tor-hsservice@0.24.0", "referenceType": "purl" } ], + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "regex-automata", - "versionInfo": "0.4.7" + "name": "tor-hsservice", + "versionInfo": "0.24.0" }, { - "SPDXID": "SPDXRef-Package-block-buffer-0.10.4", - "description": "Buffer type for block processing of data", + "SPDXID": "SPDXRef-Package-derive_builder_macro_fork_arti-0.11.2", + "description": "Rust macro to automatically implement the builder pattern for arbitrary structs.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/block-buffer@0.10.4", + "referenceLocator": "pkg:cargo/derive_builder_macro_fork_arti@0.11.2", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "block-buffer", - "versionInfo": "0.10.4" + "licenseDeclared": "MIT/Apache-2.0", + "name": "derive_builder_macro_fork_arti", + "versionInfo": "0.11.2" }, { - "SPDXID": "SPDXRef-Package-tor-hscrypto-0.24.0", - "description": "Basic onion service cryptography types used by Aerti", + "SPDXID": "SPDXRef-Package-wasm-bindgen-0.2.93", + "description": "Easy support for interacting between JS and Rust.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tor-hscrypto@0.24.0", + "referenceLocator": "pkg:cargo/wasm-bindgen@0.2.93", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", + "homepage": "https://rustwasm.github.io/", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "tor-hscrypto", - "versionInfo": "0.24.0" + "name": "wasm-bindgen", + "versionInfo": "0.2.93" }, { - "SPDXID": "SPDXRef-Package-core-foundation-0.9.4", - "description": "Bindings to Core Foundation for macOS", + "SPDXID": "SPDXRef-Package-walkdir-2.5.0", + "description": "Recursively walk a directory.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/core-foundation@0.9.4", + "referenceLocator": "pkg:cargo/walkdir@2.5.0", "referenceType": "purl" } ], - "homepage": "https://github.com/servo/core-foundation-rs", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "core-foundation", - "versionInfo": "0.9.4" + "homepage": "https://github.com/BurntSushi/walkdir", + "licenseConcluded": "Unlicense OR MIT", + "licenseDeclared": "Unlicense/MIT", + "name": "walkdir", + "versionInfo": "2.5.0" }, { - "SPDXID": "SPDXRef-Package-notify-types-1.0.0", - "description": "Types used by the notify crate", + "SPDXID": "SPDXRef-Package-tor-interface-0.4.0", + "description": "A library providing a Rust interface to interact with the legacy tor daemon", + "downloadLocation": "NONE", + "licenseConcluded": "BSD-3-Clause", + "licenseDeclared": "BSD-3-Clause", + "name": "tor-interface", + "versionInfo": "0.4.0" + }, + { + "SPDXID": "SPDXRef-Package-serde_ignored-0.1.10", + "description": "Find out about keys that are ignored when deserializing data", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/notify-types@1.0.0", + "referenceLocator": "pkg:cargo/serde_ignored@0.1.10", "referenceType": "purl" } ], - "homepage": "https://github.com/notify-rs/notify", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "notify-types", - "versionInfo": "1.0.0" + "name": "serde_ignored", + "versionInfo": "0.1.10" }, { - "SPDXID": "SPDXRef-Package-educe-0.4.23", - "description": "This crate provides procedural macros to help you implement Rust-built-in traits quickly.", + "SPDXID": "SPDXRef-Package-fslock-0.2.1", + "description": "A library to use files as locks", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/educe@0.4.23", + "referenceLocator": "pkg:cargo/fslock@0.2.1", "referenceType": "purl" } ], - "homepage": "https://magiclen.org/educe", "licenseConcluded": "MIT", "licenseDeclared": "MIT", - "name": "educe", - "versionInfo": "0.4.23" + "name": "fslock", + "versionInfo": "0.2.1" }, { - "SPDXID": "SPDXRef-Package-slotmap-1.0.7", - "description": "Slotmap data structure", + "SPDXID": "SPDXRef-Package-inventory-0.3.15", + "description": "Typed distributed plugin registration", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/slotmap@1.0.7", + "referenceLocator": "pkg:cargo/inventory@0.3.15", "referenceType": "purl" } ], - "licenseConcluded": "Zlib", - "licenseDeclared": "Zlib", - "name": "slotmap", - "versionInfo": "1.0.7" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "inventory", + "versionInfo": "0.3.15" }, { - "SPDXID": "SPDXRef-Package-form_urlencoded-1.2.1", - "description": "Parser and serializer for the application/x-www-form-urlencoded syntax, as used by HTML forms.", + "SPDXID": "SPDXRef-Package-tor-dirclient-0.24.0", + "description": "Downloads specific Tor network directory objects over the Tor network", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/form_urlencoded@1.2.1", + "referenceLocator": "pkg:cargo/tor-dirclient@0.24.0", "referenceType": "purl" } ], + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "form_urlencoded", - "versionInfo": "1.2.1" + "name": "tor-dirclient", + "versionInfo": "0.24.0" }, { - "SPDXID": "SPDXRef-Package-windows_x86_64_gnullvm-0.48.5", - "description": "Import lib for Windows", + "SPDXID": "SPDXRef-Package-data-encoding-2.6.0", + "description": "Efficient and customizable data-encoding functions like base64, base32, and hex", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/windows_x86_64_gnullvm@0.48.5", + "referenceLocator": "pkg:cargo/data-encoding@2.6.0", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "windows_x86_64_gnullvm", - "versionInfo": "0.48.5" + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "data-encoding", + "versionInfo": "2.6.0" }, { - "SPDXID": "SPDXRef-Package-sharded-slab-0.1.7", - "description": "A lock-free concurrent slab.\n", + "SPDXID": "SPDXRef-Package-winnow-0.5.40", + "description": "A byte-oriented, zero-copy, parser combinators library", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/sharded-slab@0.1.7", + "referenceLocator": "pkg:cargo/winnow@0.5.40", "referenceType": "purl" } ], - "homepage": "https://github.com/hawkw/sharded-slab", "licenseConcluded": "MIT", "licenseDeclared": "MIT", - "name": "sharded-slab", - "versionInfo": "0.1.7" + "name": "winnow", + "versionInfo": "0.5.40" }, { - "SPDXID": "SPDXRef-Package-percent-encoding-2.3.1", - "description": "Percent encoding and decoding", + "SPDXID": "SPDXRef-Package-futures-io-0.3.30", + "description": "The `AsyncRead`, `AsyncWrite`, `AsyncSeek`, and `AsyncBufRead` traits for the futures-rs library.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/percent-encoding@2.3.1", + "referenceLocator": "pkg:cargo/futures-io@0.3.30", "referenceType": "purl" } ], + "homepage": "https://rust-lang.github.io/futures-rs", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "percent-encoding", - "versionInfo": "2.3.1" + "name": "futures-io", + "versionInfo": "0.3.30" }, { - "SPDXID": "SPDXRef-Package-icu_properties_data-1.5.0", - "description": "Data for the icu_properties crate", + "SPDXID": "SPDXRef-Package-bumpalo-3.16.0", + "description": "A fast bump allocation arena for Rust.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/icu_properties_data@1.5.0", + "referenceLocator": "pkg:cargo/bumpalo@3.16.0", "referenceType": "purl" } ], - "homepage": "https://icu4x.unicode.org", - "licenseConcluded": "Unicode-3.0", - "licenseDeclared": "Unicode-3.0", - "name": "icu_properties_data", - "versionInfo": "1.5.0" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "bumpalo", + "versionInfo": "3.16.0" }, { - "SPDXID": "SPDXRef-Package-linux-raw-sys-0.4.14", - "description": "Generated bindings for Linux's userspace API", + "SPDXID": "SPDXRef-Package-heck-0.4.1", + "description": "heck is a case conversion library.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/linux-raw-sys@0.4.14", + "referenceLocator": "pkg:cargo/heck@0.4.1", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT", - "name": "linux-raw-sys", - "versionInfo": "0.4.14" + "homepage": "https://github.com/withoutboats/heck", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "heck", + "versionInfo": "0.4.1" }, { - "SPDXID": "SPDXRef-Package-fslock-guard-0.2.0", - "description": "Wrapper around a lockfile with unlock-on-drop semantics", + "SPDXID": "SPDXRef-Package-minimal-lexical-0.2.1", + "description": "Fast float parsing conversion routines.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/fslock-guard@0.2.0", + "referenceLocator": "pkg:cargo/minimal-lexical@0.2.1", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "fslock-guard", - "versionInfo": "0.2.0" + "licenseDeclared": "MIT/Apache-2.0", + "name": "minimal-lexical", + "versionInfo": "0.2.1" }, { - "SPDXID": "SPDXRef-Package-option-ext-0.2.0", - "description": "Extends `Option` with additional operations", + "SPDXID": "SPDXRef-Package-const-oid-0.9.6", + "description": "Const-friendly implementation of the ISO/IEC Object Identifier (OID) standard\nas defined in ITU X.660, with support for BER/DER encoding/decoding as well as\nheapless no_std (i.e. embedded) support\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/option-ext@0.2.0", + "referenceLocator": "pkg:cargo/const-oid@0.9.6", "referenceType": "purl" } ], - "homepage": "https://github.com/soc/option-ext", - "licenseConcluded": "MPL-2.0", - "licenseDeclared": "MPL-2.0", - "name": "option-ext", - "versionInfo": "0.2.0" + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "const-oid", + "versionInfo": "0.9.6" }, { - "SPDXID": "SPDXRef-Package-tor-config-path-0.24.0", - "description": "Low-level file path handling for configuration of the Arti Tor implementation", + "SPDXID": "SPDXRef-Package-zeroize_derive-1.4.2", + "description": "Custom derive support for zeroize", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tor-config-path@0.24.0", + "referenceLocator": "pkg:cargo/zeroize_derive@1.4.2", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "tor-config-path", - "versionInfo": "0.24.0" + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "zeroize_derive", + "versionInfo": "1.4.2" }, { - "SPDXID": "SPDXRef-Package-phf-0.11.2", - "description": "Runtime support for perfect hash function data structures", + "SPDXID": "SPDXRef-Package-sha1-0.10.6", + "description": "SHA-1 hash function", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/phf@0.11.2", + "referenceLocator": "pkg:cargo/sha1@0.10.6", "referenceType": "purl" } ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "phf", - "versionInfo": "0.11.2" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "sha1", + "versionInfo": "0.10.6" }, { - "SPDXID": "SPDXRef-Package-zstd-sys-2.0.13+zstd.1.5.6", - "description": "Low-level bindings for the zstd compression library.", + "SPDXID": "SPDXRef-Package-domain-0.10.0", + "description": "A DNS library for Rust.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/zstd-sys@2.0.13+zstd.1.5.6", + "referenceLocator": "pkg:cargo/domain@0.10.0", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT/Apache-2.0", - "name": "zstd-sys", - "versionInfo": "2.0.13+zstd.1.5.6" + "homepage": "https://github.com/nlnetlabs/domain/", + "licenseConcluded": "BSD-3-Clause", + "licenseDeclared": "BSD-3-Clause", + "name": "domain", + "versionInfo": "0.10.0" }, { - "SPDXID": "SPDXRef-Package-num-iter-0.1.45", - "description": "External iterators for generic mathematics", + "SPDXID": "SPDXRef-Package-serde_spanned-0.6.7", + "description": "Serde-compatible spanned Value", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/num-iter@0.1.45", + "referenceLocator": "pkg:cargo/serde_spanned@0.6.7", "referenceType": "purl" } ], - "homepage": "https://github.com/rust-num/num-iter", + "homepage": "https://github.com/toml-rs/toml", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "num-iter", - "versionInfo": "0.1.45" + "name": "serde_spanned", + "versionInfo": "0.6.7" }, { - "SPDXID": "SPDXRef-Package-native-tls-0.2.12", - "description": "A wrapper over a platform's native TLS implementation", + "SPDXID": "SPDXRef-Package-heck-0.5.0", + "description": "heck is a case conversion library.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/native-tls@0.2.12", + "referenceLocator": "pkg:cargo/heck@0.5.0", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "native-tls", - "versionInfo": "0.2.12" + "name": "heck", + "versionInfo": "0.5.0" }, { - "SPDXID": "SPDXRef-Package-lzma-sys-0.1.20", - "description": "Raw bindings to liblzma which contains an implementation of LZMA and xz stream\nencoding/decoding.\n\nHigh level Rust bindings are available in the `xz2` crate.\n", + "SPDXID": "SPDXRef-Package-hostname-validator-1.1.1", + "description": "Validate hostnames according to IETF RFC 1123", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/lzma-sys@0.1.20", + "referenceLocator": "pkg:cargo/hostname-validator@1.1.1", "referenceType": "purl" } ], - "homepage": "https://github.com/alexcrichton/xz2-rs", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT/Apache-2.0", - "name": "lzma-sys", - "versionInfo": "0.1.20" + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "hostname-validator", + "versionInfo": "1.1.1" }, { - "SPDXID": "SPDXRef-Package-tor-guardmgr-0.24.0", - "description": "Manage a set of guard relays for Tor network", + "SPDXID": "SPDXRef-Package-visibility-0.1.1", + "description": "Attribute to override the visibility of items (useful in conjunction with cfg_attr)", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tor-guardmgr@0.24.0", + "referenceLocator": "pkg:cargo/visibility@0.1.1", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "tor-guardmgr", - "versionInfo": "0.24.0" + "homepage": "https://crates.io/crates/visibility", + "licenseConcluded": "Zlib OR MIT OR Apache-2.0", + "licenseDeclared": "Zlib OR MIT OR Apache-2.0", + "name": "visibility", + "versionInfo": "0.1.1" }, { - "SPDXID": "SPDXRef-Package-signature-1.6.4", - "description": "Traits for cryptographic signature algorithms (e.g. ECDSA, Ed25519)", + "SPDXID": "SPDXRef-Package-os_str_bytes-6.6.1", + "description": "Convert between byte sequences and platform-native strings\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/signature@1.6.4", + "referenceLocator": "pkg:cargo/os_str_bytes@6.6.1", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "signature", - "versionInfo": "1.6.4" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "os_str_bytes", + "versionInfo": "6.6.1" }, { - "SPDXID": "SPDXRef-Package-pin-utils-0.1.0", - "description": "Utilities for pinning\n", + "SPDXID": "SPDXRef-Package-bitvec-1.0.1", + "description": "Addresses memory by bits, for packed collections and bitfields", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/pin-utils@0.1.0", + "referenceLocator": "pkg:cargo/bitvec@1.0.1", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "pin-utils", - "versionInfo": "0.1.0" + "homepage": "https://bitvecto-rs.github.io/bitvec", + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "bitvec", + "versionInfo": "1.0.1" }, { - "SPDXID": "SPDXRef-Package-icu_provider_macros-1.5.0", - "description": "Proc macros for ICU data providers", + "SPDXID": "SPDXRef-Package-spki-0.7.3", + "description": "X.509 Subject Public Key Info (RFC5280) describing public keys as well as their\nassociated AlgorithmIdentifiers (i.e. OIDs)\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/icu_provider_macros@1.5.0", + "referenceLocator": "pkg:cargo/spki@0.7.3", "referenceType": "purl" } ], - "homepage": "https://icu4x.unicode.org", - "licenseConcluded": "Unicode-3.0", - "licenseDeclared": "Unicode-3.0", - "name": "icu_provider_macros", - "versionInfo": "1.5.0" + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "spki", + "versionInfo": "0.7.3" }, { - "SPDXID": "SPDXRef-Package-winnow-0.6.18", - "description": "A byte-oriented, zero-copy, parser combinators library", + "SPDXID": "SPDXRef-Package-derive-deftly-0.14.2", + "description": "An ergonomic way to write derive() macros", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/winnow@0.6.18", + "referenceLocator": "pkg:cargo/derive-deftly@0.14.2", "referenceType": "purl" } ], + "homepage": "https://gitlab.torproject.org/Diziet/rust-derive-deftly", "licenseConcluded": "MIT", "licenseDeclared": "MIT", - "name": "winnow", - "versionInfo": "0.6.18" + "name": "derive-deftly", + "versionInfo": "0.14.2" }, { - "SPDXID": "SPDXRef-Package-tor-consdiff-0.24.0", - "description": "Handle the consensus-diff format used in the Tor directory protocol", + "SPDXID": "SPDXRef-Package-toml-0.8.19", + "description": "A native Rust encoder and decoder of TOML-formatted files and streams. Provides\nimplementations of the standard Serialize/Deserialize traits for TOML data to\nfacilitate deserializing and serializing Rust structures.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tor-consdiff@0.24.0", + "referenceLocator": "pkg:cargo/toml@0.8.19", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", + "homepage": "https://github.com/toml-rs/toml", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "tor-consdiff", - "versionInfo": "0.24.0" + "name": "toml", + "versionInfo": "0.8.19" }, { - "SPDXID": "SPDXRef-Package-async-compression-0.4.12", - "description": "Adaptors between compression crates and Rust's modern asynchronous IO types.\n", + "SPDXID": "SPDXRef-Package-pin-utils-0.1.0", + "description": "Utilities for pinning\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/async-compression@0.4.12", + "referenceLocator": "pkg:cargo/pin-utils@0.1.0", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "async-compression", - "versionInfo": "0.4.12" + "name": "pin-utils", + "versionInfo": "0.1.0" }, { - "SPDXID": "SPDXRef-Package-unicode-bidi-0.3.15", - "description": "Implementation of the Unicode Bidirectional Algorithm", + "SPDXID": "SPDXRef-Package-parking_lot_core-0.9.10", + "description": "An advanced API for creating custom synchronization primitives.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/unicode-bidi@0.3.15", + "referenceLocator": "pkg:cargo/parking_lot_core@0.9.10", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "unicode-bidi", - "versionInfo": "0.3.15" + "name": "parking_lot_core", + "versionInfo": "0.9.10" }, { - "SPDXID": "SPDXRef-Package-toml-0.8.19", - "description": "A native Rust encoder and decoder of TOML-formatted files and streams. Provides\nimplementations of the standard Serialize/Deserialize traits for TOML data to\nfacilitate deserializing and serializing Rust structures.\n", + "SPDXID": "SPDXRef-Package-rand-0.8.5", + "description": "Random number generators and other randomness functionality.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/toml@0.8.19", + "referenceLocator": "pkg:cargo/rand@0.8.5", "referenceType": "purl" } ], - "homepage": "https://github.com/toml-rs/toml", + "homepage": "https://rust-random.github.io/book", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "toml", - "versionInfo": "0.8.19" + "name": "rand", + "versionInfo": "0.8.5" }, { - "SPDXID": "SPDXRef-Package-foreign-types-0.3.2", - "description": "A framework for Rust wrappers over C APIs", + "SPDXID": "SPDXRef-Package-num-integer-0.1.46", + "description": "Integer traits and functions", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/foreign-types@0.3.2", + "referenceLocator": "pkg:cargo/num-integer@0.1.46", "referenceType": "purl" } ], + "homepage": "https://github.com/rust-num/num-integer", "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT/Apache-2.0", - "name": "foreign-types", - "versionInfo": "0.3.2" + "licenseDeclared": "MIT OR Apache-2.0", + "name": "num-integer", + "versionInfo": "0.1.46" }, { - "SPDXID": "SPDXRef-Package-proc-macro-crate-3.2.0", - "description": "Replacement for crate (macro_rules keyword) in proc-macros\n", + "SPDXID": "SPDXRef-Package-tracing-subscriber-0.3.18", + "description": "Utilities for implementing and composing `tracing` subscribers.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/proc-macro-crate@3.2.0", + "referenceLocator": "pkg:cargo/tracing-subscriber@0.3.18", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "proc-macro-crate", - "versionInfo": "3.2.0" + "homepage": "https://tokio.rs", + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "tracing-subscriber", + "versionInfo": "0.3.18" }, { - "SPDXID": "SPDXRef-Package-num-bigint-0.4.6", - "description": "Big integer implementation for Rust", + "SPDXID": "SPDXRef-Package-ssh-encoding-0.2.0", + "description": "Pure Rust implementation of SSH data type decoders/encoders as described\nin RFC4251\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/num-bigint@0.4.6", + "referenceLocator": "pkg:cargo/ssh-encoding@0.2.0", "referenceType": "purl" } ], - "homepage": "https://github.com/rust-num/num-bigint", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "num-bigint", - "versionInfo": "0.4.6" + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "ssh-encoding", + "versionInfo": "0.2.0" }, { - "SPDXID": "SPDXRef-Package-strum_macros-0.25.3", - "description": "Helpful macros for working with enums and strings", + "SPDXID": "SPDXRef-Package-js-sys-0.3.70", + "description": "Bindings for all JS global objects and functions in all JS environments like\nNode.js and browsers, built on `#[wasm_bindgen]` using the `wasm-bindgen` crate.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/strum_macros@0.25.3", + "referenceLocator": "pkg:cargo/js-sys@0.3.70", "referenceType": "purl" } ], - "homepage": "https://github.com/Peternator7/strum", - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "strum_macros", - "versionInfo": "0.25.3" + "homepage": "https://rustwasm.github.io/wasm-bindgen/", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "js-sys", + "versionInfo": "0.3.70" }, { - "SPDXID": "SPDXRef-Package-windows_x86_64_msvc-0.52.6", - "description": "Import lib for Windows", + "SPDXID": "SPDXRef-Package-windows-sys-0.59.0", + "description": "Rust for Windows", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/windows_x86_64_msvc@0.52.6", + "referenceLocator": "pkg:cargo/windows-sys@0.59.0", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "windows_x86_64_msvc", - "versionInfo": "0.52.6" + "name": "windows-sys", + "versionInfo": "0.59.0" }, { - "SPDXID": "SPDXRef-Package-unicode-normalization-0.1.23", - "description": "This crate provides functions for normalization of\nUnicode strings, including Canonical and Compatible\nDecomposition and Recomposition, as described in\nUnicode Standard Annex #15.\n", + "SPDXID": "SPDXRef-Package-hashbrown-0.12.3", + "description": "A Rust port of Google's SwissTable hash map", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/unicode-normalization@0.1.23", + "referenceLocator": "pkg:cargo/hashbrown@0.12.3", "referenceType": "purl" } ], - "homepage": "https://github.com/unicode-rs/unicode-normalization", "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT/Apache-2.0", - "name": "unicode-normalization", - "versionInfo": "0.1.23" + "licenseDeclared": "MIT OR Apache-2.0", + "name": "hashbrown", + "versionInfo": "0.12.3" }, { - "SPDXID": "SPDXRef-Package-winapi-0.3.9", - "description": "Raw FFI bindings for all of Windows API.", + "SPDXID": "SPDXRef-Package-nu-ansi-term-0.46.0", + "description": "Library for ANSI terminal colors and styles (bold, underline)", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/winapi@0.3.9", + "referenceLocator": "pkg:cargo/nu-ansi-term@0.46.0", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT/Apache-2.0", - "name": "winapi", - "versionInfo": "0.3.9" + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "nu-ansi-term", + "versionInfo": "0.46.0" + }, + { + "SPDXID": "SPDXRef-Package-tracing-log-0.2.0", + "description": "Provides compatibility between `tracing` and the `log` crate.\n", + "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceLocator": "pkg:cargo/tracing-log@0.2.0", + "referenceType": "purl" + } + ], + "homepage": "https://tokio.rs", + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "tracing-log", + "versionInfo": "0.2.0" + }, + { + "SPDXID": "SPDXRef-Package-pkcs1-0.7.5", + "description": "Pure Rust implementation of Public-Key Cryptography Standards (PKCS) #1:\nRSA Cryptography Specifications Version 2.2 (RFC 8017)\n", + "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceLocator": "pkg:cargo/pkcs1@0.7.5", + "referenceType": "purl" + } + ], + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "pkcs1", + "versionInfo": "0.7.5" + }, + { + "SPDXID": "SPDXRef-Package-concurrent-queue-2.5.0", + "description": "Concurrent multi-producer multi-consumer queue", + "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceLocator": "pkg:cargo/concurrent-queue@2.5.0", + "referenceType": "purl" + } + ], + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "concurrent-queue", + "versionInfo": "2.5.0" }, { "SPDXID": "SPDXRef-Package-cipher-0.4.4", @@ -5690,85 +5712,102 @@ "versionInfo": "0.4.4" }, { - "SPDXID": "SPDXRef-Package-by_address-1.2.1", - "description": "Wrapper for comparing and hashing pointers by address", + "SPDXID": "SPDXRef-Package-powerfmt-0.2.0", + "description": " `powerfmt` is a library that provides utilities for formatting values. This crate makes it\n significantly easier to support filling to a minimum width with alignment, avoid heap\n allocation, and avoid repetitive calculations.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/by_address@1.2.1", + "referenceLocator": "pkg:cargo/powerfmt@0.2.0", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "by_address", - "versionInfo": "1.2.1" + "name": "powerfmt", + "versionInfo": "0.2.0" }, { - "SPDXID": "SPDXRef-Package-tinyvec-1.8.0", - "description": "`tinyvec` provides 100% safe vec-like data structures.", + "SPDXID": "SPDXRef-Package-atomic-0.5.3", + "description": "Generic Atomic wrapper type", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tinyvec@1.8.0", + "referenceLocator": "pkg:cargo/atomic@0.5.3", "referenceType": "purl" } ], - "licenseConcluded": "Zlib OR Apache-2.0 OR MIT", - "licenseDeclared": "Zlib OR Apache-2.0 OR MIT", - "name": "tinyvec", - "versionInfo": "1.8.0" + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0/MIT", + "name": "atomic", + "versionInfo": "0.5.3" }, { - "SPDXID": "SPDXRef-Package-slotmap-careful-0.2.1", - "description": "Wrap the slotmap crate and prevent key reuse", + "SPDXID": "SPDXRef-Package-signal-hook-registry-1.4.2", + "description": "Backend crate for signal-hook", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/slotmap-careful@0.2.1", + "referenceLocator": "pkg:cargo/signal-hook-registry@1.4.2", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "slotmap-careful", - "versionInfo": "0.2.1" + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0/MIT", + "name": "signal-hook-registry", + "versionInfo": "1.4.2" }, { - "SPDXID": "SPDXRef-Package-crypto-bigint-0.5.5", - "description": "Pure Rust implementation of a big integer library which has been designed from\nthe ground-up for use in cryptographic applications. Provides constant-time,\nno_std-friendly implementations of modern formulas using const generics.\n", + "SPDXID": "SPDXRef-Package-ssh-key-0.6.6", + "description": "Pure Rust implementation of SSH key file format decoders/encoders as described\nin RFC4251/RFC4253 and OpenSSH key formats, as well as \"sshsig\" signatures and\ncertificates (including certificate validation and certificate authority support),\nwith further support for the `authorized_keys` and `known_hosts` file formats.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/crypto-bigint@0.5.5", + "referenceLocator": "pkg:cargo/ssh-key@0.6.6", "referenceType": "purl" } ], "licenseConcluded": "Apache-2.0 OR MIT", "licenseDeclared": "Apache-2.0 OR MIT", - "name": "crypto-bigint", - "versionInfo": "0.5.5" + "name": "ssh-key", + "versionInfo": "0.6.6" }, { - "SPDXID": "SPDXRef-Package-redox_syscall-0.5.3", - "description": "A Rust library to access raw Redox system calls", + "SPDXID": "SPDXRef-Package-unicode-normalization-0.1.23", + "description": "This crate provides functions for normalization of\nUnicode strings, including Canonical and Compatible\nDecomposition and Recomposition, as described in\nUnicode Standard Annex #15.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/redox_syscall@0.5.3", + "referenceLocator": "pkg:cargo/unicode-normalization@0.1.23", + "referenceType": "purl" + } + ], + "homepage": "https://github.com/unicode-rs/unicode-normalization", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT/Apache-2.0", + "name": "unicode-normalization", + "versionInfo": "0.1.23" + }, + { + "SPDXID": "SPDXRef-Package-tap-1.0.1", + "description": "Generic extensions for tapping values in Rust", + "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceLocator": "pkg:cargo/tap@1.0.1", "referenceType": "purl" } ], + "homepage": "https://github.com/myrrlyn/tap", "licenseConcluded": "MIT", "licenseDeclared": "MIT", - "name": "redox_syscall", - "versionInfo": "0.5.3" + "name": "tap", + "versionInfo": "1.0.1" }, { "SPDXID": "SPDXRef-Package-idna-1.0.2", @@ -5787,1433 +5826,1460 @@ "versionInfo": "1.0.2" }, { - "SPDXID": "SPDXRef-Package-growable-bloom-filter-2.1.0", - "description": "Scalable Bloom Filters with serde support", + "SPDXID": "SPDXRef-Package-caret-0.5.0", + "description": "Macros for declaring non-exhaustive C-style enumerations, with named members", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/growable-bloom-filter@2.1.0", + "referenceLocator": "pkg:cargo/caret@0.5.0", "referenceType": "purl" } ], - "homepage": "https://github.com/dpbriggs/growable-bloom-filters", - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "growable-bloom-filter", - "versionInfo": "2.1.0" + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "caret", + "versionInfo": "0.5.0" }, { - "SPDXID": "SPDXRef-Package-futures-io-0.3.30", - "description": "The `AsyncRead`, `AsyncWrite`, `AsyncSeek`, and `AsyncBufRead` traits for the futures-rs library.\n", + "SPDXID": "SPDXRef-Package-async-native-tls-0.5.0", + "description": "Native TLS using futures\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/futures-io@0.3.30", + "referenceLocator": "pkg:cargo/async-native-tls@0.5.0", "referenceType": "purl" } ], - "homepage": "https://rust-lang.github.io/futures-rs", + "homepage": "https://docs.rs/crate/async-native-tls/", "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "futures-io", - "versionInfo": "0.3.30" + "licenseDeclared": "MIT/Apache-2.0", + "name": "async-native-tls", + "versionInfo": "0.5.0" }, { - "SPDXID": "SPDXRef-Package-ecdsa-0.16.9", - "description": "Pure Rust implementation of the Elliptic Curve Digital Signature Algorithm\n(ECDSA) as specified in FIPS 186-4 (Digital Signature Standard), providing\nRFC6979 deterministic signatures as well as support for added entropy\n", + "SPDXID": "SPDXRef-Package-fs-mistrust-0.8.0", + "description": "Ensure that files can only be read or written by trusted users", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/ecdsa@0.16.9", + "referenceLocator": "pkg:cargo/fs-mistrust@0.8.0", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "ecdsa", - "versionInfo": "0.16.9" + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "fs-mistrust", + "versionInfo": "0.8.0" }, { - "SPDXID": "SPDXRef-Package-tor-log-ratelim-0.24.0", - "description": "Facility for rate-limiting log messages in Arti", + "SPDXID": "SPDXRef-Package-tor-consdiff-0.24.0", + "description": "Handle the consensus-diff format used in the Tor directory protocol", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tor-log-ratelim@0.24.0", + "referenceLocator": "pkg:cargo/tor-consdiff@0.24.0", "referenceType": "purl" } ], "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "tor-log-ratelim", + "name": "tor-consdiff", "versionInfo": "0.24.0" }, { - "SPDXID": "SPDXRef-Package-notify-7.0.0", - "description": "Cross-platform filesystem notification library", + "SPDXID": "SPDXRef-Package-linux-raw-sys-0.4.14", + "description": "Generated bindings for Linux's userspace API", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/notify@7.0.0", + "referenceLocator": "pkg:cargo/linux-raw-sys@0.4.14", "referenceType": "purl" } ], - "homepage": "https://github.com/notify-rs/notify", - "licenseConcluded": "CC0-1.0", - "licenseDeclared": "CC0-1.0", - "name": "notify", - "versionInfo": "7.0.0" + "licenseConcluded": "Apache-2.0 OR Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT", + "name": "linux-raw-sys", + "versionInfo": "0.4.14" }, { - "SPDXID": "SPDXRef-Package-amplify_derive-4.0.1", - "description": "Powerful derivation macros; part of the 'amplify' library", + "SPDXID": "SPDXRef-Package-strum-0.26.3", + "description": "Helpful macros for working with enums and strings", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/amplify_derive@4.0.1", + "referenceLocator": "pkg:cargo/strum@0.26.3", "referenceType": "purl" } ], - "homepage": "https://github.com/rust-amplify", - "licenseConcluded": "Apache-2.0", - "licenseDeclared": "Apache-2.0", - "name": "amplify_derive", - "versionInfo": "4.0.1" + "homepage": "https://github.com/Peternator7/strum", + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "strum", + "versionInfo": "0.26.3" }, { - "SPDXID": "SPDXRef-Package-utf8_iter-1.0.4", - "description": "Iterator by char over potentially-invalid UTF-8 in &[u8]", + "SPDXID": "SPDXRef-Package-uuid-1.10.0", + "description": "A library to generate and parse UUIDs.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/utf8_iter@1.0.4", + "referenceLocator": "pkg:cargo/uuid@1.10.0", "referenceType": "purl" } ], - "homepage": "https://docs.rs/utf8_iter/", + "homepage": "https://github.com/uuid-rs/uuid", "licenseConcluded": "Apache-2.0 OR MIT", "licenseDeclared": "Apache-2.0 OR MIT", - "name": "utf8_iter", - "versionInfo": "1.0.4" + "name": "uuid", + "versionInfo": "1.10.0" }, { - "SPDXID": "SPDXRef-Package-futures-util-0.3.30", - "description": "Common utilities and extension traits for the futures-rs library.\n", - "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", + "SPDXID": "SPDXRef-Package-syn-1.0.109", + "description": "Parser for Rust source code", + "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/futures-util@0.3.30", + "referenceLocator": "pkg:cargo/syn@1.0.109", "referenceType": "purl" } ], - "homepage": "https://rust-lang.github.io/futures-rs", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "futures-util", - "versionInfo": "0.3.30" + "name": "syn", + "versionInfo": "1.0.109" }, { - "SPDXID": "SPDXRef-Package-async-native-tls-0.5.0", - "description": "Native TLS using futures\n", + "SPDXID": "SPDXRef-Package-pem-rfc7468-0.7.0", + "description": "PEM Encoding (RFC 7468) for PKIX, PKCS, and CMS Structures, implementing a\nstrict subset of the original Privacy-Enhanced Mail encoding intended\nspecifically for use with cryptographic keys, certificates, and other messages.\nProvides a no_std-friendly, constant-time implementation suitable for use with\ncryptographic private keys.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/async-native-tls@0.5.0", + "referenceLocator": "pkg:cargo/pem-rfc7468@0.7.0", "referenceType": "purl" } ], - "homepage": "https://docs.rs/crate/async-native-tls/", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT/Apache-2.0", - "name": "async-native-tls", - "versionInfo": "0.5.0" + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "pem-rfc7468", + "versionInfo": "0.7.0" }, { - "SPDXID": "SPDXRef-Package-postage-0.5.0", - "description": "An async channel library", + "SPDXID": "SPDXRef-Package-which-4.4.2", + "description": "A Rust equivalent of Unix command \"which\". Locate installed executable in cross platforms.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/postage@0.5.0", + "referenceLocator": "pkg:cargo/which@4.4.2", "referenceType": "purl" } ], - "homepage": "https://github.com/austinjones/postage-rs", "licenseConcluded": "MIT", "licenseDeclared": "MIT", - "name": "postage", - "versionInfo": "0.5.0" + "name": "which", + "versionInfo": "4.4.2" }, { - "SPDXID": "SPDXRef-Package-heck-0.4.1", - "description": "heck is a case conversion library.", + "SPDXID": "SPDXRef-Package-crc32fast-1.4.2", + "description": "Fast, SIMD-accelerated CRC32 (IEEE) checksum computation", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/heck@0.4.1", + "referenceLocator": "pkg:cargo/crc32fast@1.4.2", "referenceType": "purl" } ], - "homepage": "https://github.com/withoutboats/heck", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "heck", - "versionInfo": "0.4.1" + "name": "crc32fast", + "versionInfo": "1.4.2" }, { - "SPDXID": "SPDXRef-Package-security-framework-2.11.1", - "description": "Security.framework bindings for macOS and iOS", + "SPDXID": "SPDXRef-Package-httpdate-1.0.3", + "description": "HTTP date parsing and formatting", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/security-framework@2.11.1", + "referenceLocator": "pkg:cargo/httpdate@1.0.3", "referenceType": "purl" } ], - "homepage": "https://lib.rs/crates/security_framework", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "security-framework", - "versionInfo": "2.11.1" + "name": "httpdate", + "versionInfo": "1.0.3" }, { - "SPDXID": "SPDXRef-Package-generic-array-0.14.7", - "description": "Generic types implementing functionality of arrays", + "SPDXID": "SPDXRef-Package-parking_lot-0.12.3", + "description": "More compact and efficient implementations of the standard synchronization primitives.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/generic-array@0.14.7", + "referenceLocator": "pkg:cargo/parking_lot@0.12.3", "referenceType": "purl" } ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "generic-array", - "versionInfo": "0.14.7" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "parking_lot", + "versionInfo": "0.12.3" }, { - "SPDXID": "SPDXRef-Package-iana-time-zone-haiku-0.1.2", - "description": "iana-time-zone support crate for Haiku OS", + "SPDXID": "SPDXRef-Package-tracing-test-0.2.5", + "description": "Helper functions and macros that allow for easier testing of crates that use `tracing`.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/iana-time-zone-haiku@0.1.2", + "referenceLocator": "pkg:cargo/tracing-test@0.2.5", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "iana-time-zone-haiku", - "versionInfo": "0.1.2" + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "tracing-test", + "versionInfo": "0.2.5" }, { - "SPDXID": "SPDXRef-Package-fnv-1.0.7", - "description": "Fowler–Noll–Vo hash function", + "SPDXID": "SPDXRef-Package-itertools-0.13.0", + "description": "Extra iterator adaptors, iterator methods, free functions, and macros.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/fnv@1.0.7", + "referenceLocator": "pkg:cargo/itertools@0.13.0", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 / MIT", - "name": "fnv", - "versionInfo": "1.0.7" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "itertools", + "versionInfo": "0.13.0" }, { - "SPDXID": "SPDXRef-Package-yoke-derive-0.7.4", - "description": "Custom derive for the yoke crate", + "SPDXID": "SPDXRef-Package-redox_users-0.4.6", + "description": "A Rust library to access Redox users and groups functionality", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/yoke-derive@0.7.4", + "referenceLocator": "pkg:cargo/redox_users@0.4.6", "referenceType": "purl" } ], - "licenseConcluded": "Unicode-3.0", - "licenseDeclared": "Unicode-3.0", - "name": "yoke-derive", - "versionInfo": "0.7.4" + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "redox_users", + "versionInfo": "0.4.6" }, { - "SPDXID": "SPDXRef-Package-tor-linkspec-0.24.0", - "description": "Parts of the Tor protocol that indicate specific relays on the network", + "SPDXID": "SPDXRef-Package-tor-error-0.24.0", + "description": "Provides the unified type-erased error type returned by many (esp. high-level) Tor APIs.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tor-linkspec@0.24.0", + "referenceLocator": "pkg:cargo/tor-error@0.24.0", "referenceType": "purl" } ], "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "tor-linkspec", + "name": "tor-error", "versionInfo": "0.24.0" }, { - "SPDXID": "SPDXRef-Package-base64-0.22.1", - "description": "encodes and decodes base64 as bytes or utf8", + "SPDXID": "SPDXRef-Package-displaydoc-0.2.5", + "description": "A derive macro for implementing the display Trait via a doc comment and string interpolation\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/base64@0.22.1", + "referenceLocator": "pkg:cargo/displaydoc@0.2.5", "referenceType": "purl" } ], + "homepage": "https://github.com/yaahc/displaydoc", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "base64", - "versionInfo": "0.22.1" + "name": "displaydoc", + "versionInfo": "0.2.5" }, { - "SPDXID": "SPDXRef-Package-base64-0.13.1", - "description": "encodes and decodes base64 as bytes or utf8", + "SPDXID": "SPDXRef-Package-either-1.13.0", + "description": "The enum `Either` with variants `Left` and `Right` is a general purpose sum type with two cases.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/base64@0.13.1", + "referenceLocator": "pkg:cargo/either@1.13.0", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT/Apache-2.0", - "name": "base64", - "versionInfo": "0.13.1" - }, - { - "SPDXID": "SPDXRef-Package-winnow-0.5.40", - "description": "A byte-oriented, zero-copy, parser combinators library", - "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/winnow@0.5.40", - "referenceType": "purl" - } - ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "winnow", - "versionInfo": "0.5.40" + "licenseDeclared": "MIT OR Apache-2.0", + "name": "either", + "versionInfo": "1.13.0" }, { - "SPDXID": "SPDXRef-Package-ssh-cipher-0.2.0", - "description": "Pure Rust implementation of SSH symmetric encryption including support for the\nmodern aes128-gcm@openssh.com/aes256-gcm@openssh.com and\nchacha20-poly1305@openssh.com algorithms as well as legacy support for older\nciphers. Built on the pure Rust cryptography implementations maintained by the\nRustCrypto organization.\n", + "SPDXID": "SPDXRef-Package-tor-basic-utils-0.24.0", + "description": "General helpers used by Tor", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/ssh-cipher@0.2.0", + "referenceLocator": "pkg:cargo/tor-basic-utils@0.24.0", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "ssh-cipher", - "versionInfo": "0.2.0" + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "tor-basic-utils", + "versionInfo": "0.24.0" }, { - "SPDXID": "SPDXRef-Package-overload-0.1.1", - "description": "Provides a macro to simplify operator overloading.", + "SPDXID": "SPDXRef-Package-serde-value-0.7.0", + "description": "Serialization value trees", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/overload@0.1.1", + "referenceLocator": "pkg:cargo/serde-value@0.7.0", "referenceType": "purl" } ], "licenseConcluded": "MIT", "licenseDeclared": "MIT", - "name": "overload", - "versionInfo": "0.1.1" + "name": "serde-value", + "versionInfo": "0.7.0" }, { - "SPDXID": "SPDXRef-Package-nom-7.1.3", - "description": "A byte-oriented, zero-copy, parser combinators library", + "SPDXID": "SPDXRef-Package-phf-0.11.2", + "description": "Runtime support for perfect hash function data structures", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/nom@7.1.3", + "referenceLocator": "pkg:cargo/phf@0.11.2", "referenceType": "purl" } ], "licenseConcluded": "MIT", "licenseDeclared": "MIT", - "name": "nom", - "versionInfo": "7.1.3" + "name": "phf", + "versionInfo": "0.11.2" }, { - "SPDXID": "SPDXRef-Package-p256-0.13.2", - "description": "Pure Rust implementation of the NIST P-256 (a.k.a. secp256r1, prime256v1)\nelliptic curve as defined in SP 800-186, with support for ECDH, ECDSA\nsigning/verification, and general purpose curve arithmetic\n", + "SPDXID": "SPDXRef-Package-windows_aarch64_msvc-0.52.6", + "description": "Import lib for Windows", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/p256@0.13.2", + "referenceLocator": "pkg:cargo/windows_aarch64_msvc@0.52.6", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "p256", - "versionInfo": "0.13.2" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "windows_aarch64_msvc", + "versionInfo": "0.52.6" }, { - "SPDXID": "SPDXRef-Package-icu_provider-1.5.0", - "description": "Trait and struct definitions for the ICU data provider", + "SPDXID": "SPDXRef-Package-socks-0.3.4", + "description": "SOCKS proxy clients", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/icu_provider@1.5.0", + "referenceLocator": "pkg:cargo/socks@0.3.4", "referenceType": "purl" } ], - "homepage": "https://icu4x.unicode.org", - "licenseConcluded": "Unicode-3.0", - "licenseDeclared": "Unicode-3.0", - "name": "icu_provider", - "versionInfo": "1.5.0" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT/Apache-2.0", + "name": "socks", + "versionInfo": "0.3.4" }, { - "SPDXID": "SPDXRef-Package-windows_x86_64_gnullvm-0.52.6", - "description": "Import lib for Windows", + "SPDXID": "SPDXRef-Package-generic-array-0.14.7", + "description": "Generic types implementing functionality of arrays", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/windows_x86_64_gnullvm@0.52.6", + "referenceLocator": "pkg:cargo/generic-array@0.14.7", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "windows_x86_64_gnullvm", - "versionInfo": "0.52.6" + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "generic-array", + "versionInfo": "0.14.7" }, { - "SPDXID": "SPDXRef-Package-darling_macro-0.14.4", - "description": "Internal support for a proc-macro library for reading attributes into structs when\nimplementing custom derives. Use https://crates.io/crates/darling in your code.\n", + "SPDXID": "SPDXRef-Package-merlin-3.0.0", + "description": "Composable proof transcripts for public-coin arguments of knowledge", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/darling_macro@0.14.4", + "referenceLocator": "pkg:cargo/merlin@3.0.0", "referenceType": "purl" } ], + "homepage": "https://docs.rs/merlin", "licenseConcluded": "MIT", "licenseDeclared": "MIT", - "name": "darling_macro", - "versionInfo": "0.14.4" + "name": "merlin", + "versionInfo": "3.0.0" }, { - "SPDXID": "SPDXRef-Package-futures-executor-0.3.30", - "description": "Executors for asynchronous tasks based on the futures-rs library.\n", + "SPDXID": "SPDXRef-Package-regex-automata-0.1.10", + "description": "Automata construction and matching using regular expressions.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/futures-executor@0.3.30", + "referenceLocator": "pkg:cargo/regex-automata@0.1.10", "referenceType": "purl" } ], - "homepage": "https://rust-lang.github.io/futures-rs", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "futures-executor", - "versionInfo": "0.3.30" + "homepage": "https://github.com/BurntSushi/regex-automata", + "licenseConcluded": "Unlicense OR MIT", + "licenseDeclared": "Unlicense/MIT", + "name": "regex-automata", + "versionInfo": "0.1.10" }, { - "SPDXID": "SPDXRef-Package-http-1.1.0", - "description": "A set of types for representing HTTP requests and responses.\n", + "SPDXID": "SPDXRef-Package-thread_local-1.1.8", + "description": "Per-object thread-local storage", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/http@1.1.0", + "referenceLocator": "pkg:cargo/thread_local@1.1.8", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "http", - "versionInfo": "1.1.0" + "name": "thread_local", + "versionInfo": "1.1.8" }, { - "SPDXID": "SPDXRef-Package-asn1-rs-derive-0.5.1", - "description": "Derive macros for the `asn1-rs` crate", + "SPDXID": "SPDXRef-Package-fallible-streaming-iterator-0.1.9", + "description": "Fallible streaming iteration", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/asn1-rs-derive@0.5.1", + "referenceLocator": "pkg:cargo/fallible-streaming-iterator@0.1.9", "referenceType": "purl" } ], - "homepage": "https://github.com/rusticata/asn1-rs", "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "asn1-rs-derive", - "versionInfo": "0.5.1" + "licenseDeclared": "MIT/Apache-2.0", + "name": "fallible-streaming-iterator", + "versionInfo": "0.1.9" }, { - "SPDXID": "SPDXRef-Package-same-file-1.0.6", - "description": "A simple crate for determining whether two file paths point to the same file.\n", + "SPDXID": "SPDXRef-Package-openssl-sys-0.9.103", + "description": "FFI bindings to OpenSSL", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/same-file@1.0.6", + "referenceLocator": "pkg:cargo/openssl-sys@0.9.103", "referenceType": "purl" } ], - "homepage": "https://github.com/BurntSushi/same-file", - "licenseConcluded": "Unlicense OR MIT", - "licenseDeclared": "Unlicense/MIT", - "name": "same-file", - "versionInfo": "1.0.6" + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "openssl-sys", + "versionInfo": "0.9.103" }, { - "SPDXID": "SPDXRef-Package-futures-task-0.3.30", - "description": "Tools for working with tasks.\n", + "SPDXID": "SPDXRef-Package-zstd-0.13.2", + "description": "Binding for the zstd compression library.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/futures-task@0.3.30", + "referenceLocator": "pkg:cargo/zstd@0.13.2", "referenceType": "purl" } ], - "homepage": "https://rust-lang.github.io/futures-rs", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "futures-task", - "versionInfo": "0.3.30" + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "zstd", + "versionInfo": "0.13.2" }, { - "SPDXID": "SPDXRef-Package-os_str_bytes-6.6.1", - "description": "Convert between byte sequences and platform-native strings\n", + "SPDXID": "SPDXRef-Package-serde_with-3.9.0", + "description": "Custom de/serialization functions for Rust's serde", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/os_str_bytes@6.6.1", + "referenceLocator": "pkg:cargo/serde_with@3.9.0", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "os_str_bytes", - "versionInfo": "6.6.1" + "name": "serde_with", + "versionInfo": "3.9.0" }, { - "SPDXID": "SPDXRef-Package-cgosling-0.3.1", - "downloadLocation": "NONE", - "licenseConcluded": "NOASSERTION", - "name": "cgosling", - "versionInfo": "0.3.1" + "SPDXID": "SPDXRef-Package-phf_macros-0.11.2", + "description": "Macros to generate types in the phf crate", + "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceLocator": "pkg:cargo/phf_macros@0.11.2", + "referenceType": "purl" + } + ], + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "phf_macros", + "versionInfo": "0.11.2" }, { - "SPDXID": "SPDXRef-Package-js-sys-0.3.70", - "description": "Bindings for all JS global objects and functions in all JS environments like\nNode.js and browsers, built on `#[wasm_bindgen]` using the `wasm-bindgen` crate.\n", + "SPDXID": "SPDXRef-Package-winapi-x86_64-pc-windows-gnu-0.4.0", + "description": "Import libraries for the x86_64-pc-windows-gnu target. Please don't use this crate directly, depend on winapi instead.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/js-sys@0.3.70", + "referenceLocator": "pkg:cargo/winapi-x86_64-pc-windows-gnu@0.4.0", "referenceType": "purl" } ], - "homepage": "https://rustwasm.github.io/wasm-bindgen/", "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "js-sys", - "versionInfo": "0.3.70" + "licenseDeclared": "MIT/Apache-2.0", + "name": "winapi-x86_64-pc-windows-gnu", + "versionInfo": "0.4.0" }, { - "SPDXID": "SPDXRef-Package-rand_core-0.6.4", - "description": "Core random number generator traits and tools for implementation.\n", + "SPDXID": "SPDXRef-Package-bytes-1.7.1", + "description": "Types and traits for working with bytes", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/rand_core@0.6.4", + "referenceLocator": "pkg:cargo/bytes@1.7.1", "referenceType": "purl" } ], - "homepage": "https://rust-random.github.io/book", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "rand_core", - "versionInfo": "0.6.4" + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "bytes", + "versionInfo": "1.7.1" }, { - "SPDXID": "SPDXRef-Package-retry-error-0.6.0", - "description": "An error type for an operation that can fail more than once", + "SPDXID": "SPDXRef-Package-flate2-1.0.33", + "description": "DEFLATE compression and decompression exposed as Read/BufRead/Write streams.\nSupports miniz_oxide and multiple zlib implementations. Supports zlib, gzip,\nand raw deflate streams.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/retry-error@0.6.0", + "referenceLocator": "pkg:cargo/flate2@1.0.33", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", + "homepage": "https://github.com/rust-lang/flate2-rs", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "retry-error", - "versionInfo": "0.6.0" + "name": "flate2", + "versionInfo": "1.0.33" }, { - "SPDXID": "SPDXRef-Package-tor-hsservice-0.24.0", - "description": "Arti's implementation of an onion service provider", + "SPDXID": "SPDXRef-Package-windows_i686_msvc-0.48.5", + "description": "Import lib for Windows", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tor-hsservice@0.24.0", + "referenceLocator": "pkg:cargo/windows_i686_msvc@0.48.5", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "tor-hsservice", - "versionInfo": "0.24.0" + "name": "windows_i686_msvc", + "versionInfo": "0.48.5" }, { - "SPDXID": "SPDXRef-Package-signature-2.2.0", - "description": "Traits for cryptographic signature algorithms (e.g. ECDSA, Ed25519)", + "SPDXID": "SPDXRef-Package-futures-util-0.3.30", + "description": "Common utilities and extension traits for the futures-rs library.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/signature@2.2.0", + "referenceLocator": "pkg:cargo/futures-util@0.3.30", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "signature", - "versionInfo": "2.2.0" + "homepage": "https://rust-lang.github.io/futures-rs", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "futures-util", + "versionInfo": "0.3.30" }, { - "SPDXID": "SPDXRef-Package-hkdf-0.12.4", - "description": "HMAC-based Extract-and-Expand Key Derivation Function (HKDF)", + "SPDXID": "SPDXRef-Package-ahash-0.8.11", + "description": "A non-cryptographic hash function using AES-NI for high performance", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/hkdf@0.12.4", + "referenceLocator": "pkg:cargo/ahash@0.8.11", "referenceType": "purl" } ], - "homepage": "https://github.com/RustCrypto/KDFs/", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "hkdf", - "versionInfo": "0.12.4" + "name": "ahash", + "versionInfo": "0.8.11" }, { - "SPDXID": "SPDXRef-Package-ctr-0.9.2", - "description": "CTR block modes of operation", + "SPDXID": "SPDXRef-Package-icu_properties_data-1.5.0", + "description": "Data for the icu_properties crate", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/ctr@0.9.2", + "referenceLocator": "pkg:cargo/icu_properties_data@1.5.0", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "ctr", - "versionInfo": "0.9.2" + "homepage": "https://icu4x.unicode.org", + "licenseConcluded": "Unicode-3.0", + "licenseDeclared": "Unicode-3.0", + "name": "icu_properties_data", + "versionInfo": "1.5.0" }, { - "SPDXID": "SPDXRef-Package-fallible-streaming-iterator-0.1.9", - "description": "Fallible streaming iteration", + "SPDXID": "SPDXRef-Package-void-1.0.2", + "description": "The uninhabited void type for use in statically impossible cases.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/fallible-streaming-iterator@0.1.9", + "referenceLocator": "pkg:cargo/void@1.0.2", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT/Apache-2.0", - "name": "fallible-streaming-iterator", - "versionInfo": "0.1.9" + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "void", + "versionInfo": "1.0.2" }, { - "SPDXID": "SPDXRef-Package-displaydoc-0.2.5", - "description": "A derive macro for implementing the display Trait via a doc comment and string interpolation\n", + "SPDXID": "SPDXRef-Package-darling_core-0.14.4", + "description": "Helper crate for proc-macro library for reading attributes into structs when\nimplementing custom derives. Use https://crates.io/crates/darling in your code.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/displaydoc@0.2.5", + "referenceLocator": "pkg:cargo/darling_core@0.14.4", "referenceType": "purl" } ], - "homepage": "https://github.com/yaahc/displaydoc", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "displaydoc", - "versionInfo": "0.2.5" + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "darling_core", + "versionInfo": "0.14.4" }, { - "SPDXID": "SPDXRef-Package-dirs-5.0.1", - "description": "A tiny low-level library that provides platform-specific standard locations of directories for config, cache and other data on Linux, Windows, macOS and Redox by leveraging the mechanisms defined by the XDG base/user directory specifications on Linux, the Known Folder API on Windows, and the Standard Directory guidelines on macOS.", + "SPDXID": "SPDXRef-Package-memmap2-0.9.4", + "description": "Cross-platform Rust API for memory-mapped file IO", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/dirs@5.0.1", + "referenceLocator": "pkg:cargo/memmap2@0.9.4", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "dirs", - "versionInfo": "5.0.1" + "name": "memmap2", + "versionInfo": "0.9.4" }, { - "SPDXID": "SPDXRef-Package-phf_generator-0.11.2", - "description": "PHF generation logic", + "SPDXID": "SPDXRef-Package-gimli-0.29.0", + "description": "A library for reading and writing the DWARF debugging format.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/phf_generator@0.11.2", + "referenceLocator": "pkg:cargo/gimli@0.29.0", "referenceType": "purl" } ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "phf_generator", - "versionInfo": "0.11.2" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "gimli", + "versionInfo": "0.29.0" }, { - "SPDXID": "SPDXRef-Package-fluid-let-1.0.0", - "description": "Dynamically scoped variables", + "SPDXID": "SPDXRef-Package-octseq-0.5.1", + "description": "Abstractions for types representing octet sequences.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/fluid-let@1.0.0", + "referenceLocator": "pkg:cargo/octseq@0.5.1", "referenceType": "purl" } ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "fluid-let", - "versionInfo": "1.0.0" + "homepage": "https://github.com/NLnetLabs/octets/", + "licenseConcluded": "BSD-3-Clause", + "licenseDeclared": "BSD-3-Clause", + "name": "octseq", + "versionInfo": "0.5.1" }, { - "SPDXID": "SPDXRef-Package-atomic-0.6.0", - "description": "Generic Atomic wrapper type", + "SPDXID": "SPDXRef-Package-wasix-0.12.21", + "description": "WASIX API bindings for Rust", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/atomic@0.6.0", + "referenceLocator": "pkg:cargo/wasix@0.12.21", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0/MIT", - "name": "atomic", - "versionInfo": "0.6.0" + "licenseConcluded": "Apache-2.0 OR Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT", + "name": "wasix", + "versionInfo": "0.12.21" }, { - "SPDXID": "SPDXRef-Package-tracing-subscriber-0.3.18", - "description": "Utilities for implementing and composing `tracing` subscribers.\n", + "SPDXID": "SPDXRef-Package-pin-project-1.1.5", + "description": "A crate for safe and ergonomic pin-projection.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tracing-subscriber@0.3.18", + "referenceLocator": "pkg:cargo/pin-project@1.1.5", "referenceType": "purl" } ], - "homepage": "https://tokio.rs", - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "tracing-subscriber", - "versionInfo": "0.3.18" + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "pin-project", + "versionInfo": "1.1.5" }, { - "SPDXID": "SPDXRef-Package-tracing-core-0.1.32", - "description": "Core primitives for application-level tracing.\n", + "SPDXID": "SPDXRef-Package-tor-proto-0.24.0", + "description": "Asynchronous client-side implementation of the central Tor network protocols", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tracing-core@0.1.32", + "referenceLocator": "pkg:cargo/tor-proto@0.24.0", "referenceType": "purl" } ], - "homepage": "https://tokio.rs", - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "tracing-core", - "versionInfo": "0.1.32" + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "tor-proto", + "versionInfo": "0.24.0" }, { - "SPDXID": "SPDXRef-Package-uncased-0.9.10", - "description": "Case-preserving, ASCII case-insensitive, no_std string types.", + "SPDXID": "SPDXRef-Package-num_enum-0.7.3", + "description": "Procedural macros to make inter-operation between primitives and enums easier.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/uncased@0.9.10", + "referenceLocator": "pkg:cargo/num_enum@0.7.3", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "uncased", - "versionInfo": "0.9.10" + "licenseConcluded": "BSD-3-Clause OR MIT OR Apache-2.0", + "licenseDeclared": "BSD-3-Clause OR MIT OR Apache-2.0", + "name": "num_enum", + "versionInfo": "0.7.3" }, { - "SPDXID": "SPDXRef-Package-inotify-0.10.2", - "description": "Idiomatic wrapper for inotify", + "SPDXID": "SPDXRef-Package-strsim-0.10.0", + "description": "Implementations of string similarity metrics. Includes Hamming, Levenshtein,\nOSA, Damerau-Levenshtein, Jaro, Jaro-Winkler, and Sørensen-Dice.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/inotify@0.10.2", + "referenceLocator": "pkg:cargo/strsim@0.10.0", "referenceType": "purl" } ], - "licenseConcluded": "ISC", - "licenseDeclared": "ISC", - "name": "inotify", - "versionInfo": "0.10.2" + "homepage": "https://github.com/dguo/strsim-rs", + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "strsim", + "versionInfo": "0.10.0" }, { - "SPDXID": "SPDXRef-Package-log-0.4.22", - "description": "A lightweight logging facade for Rust\n", + "SPDXID": "SPDXRef-Package-redox_syscall-0.5.3", + "description": "A Rust library to access raw Redox system calls", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/log@0.4.22", + "referenceLocator": "pkg:cargo/redox_syscall@0.5.3", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "log", - "versionInfo": "0.4.22" + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "redox_syscall", + "versionInfo": "0.5.3" }, { - "SPDXID": "SPDXRef-Package-fslock-arti-fork-0.2.0", - "description": "A library to use files as locks, forked for use in Arti.", + "SPDXID": "SPDXRef-Package-amplify_num-0.5.3", + "description": "Amplifying numeric types: big-sized and bit-sized integers", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/fslock-arti-fork@0.2.0", + "referenceLocator": "pkg:cargo/amplify_num@0.5.3", "referenceType": "purl" } ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "fslock-arti-fork", - "versionInfo": "0.2.0" + "homepage": "https://github.com/rust-amplify", + "licenseConcluded": "Apache-2.0", + "licenseDeclared": "Apache-2.0", + "name": "amplify_num", + "versionInfo": "0.5.3" }, { - "SPDXID": "SPDXRef-Package-indexmap-1.9.3", - "description": "A hash table with consistent order and fast iteration.", + "SPDXID": "SPDXRef-Package-icu_provider-1.5.0", + "description": "Trait and struct definitions for the ICU data provider", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/indexmap@1.9.3", + "referenceLocator": "pkg:cargo/icu_provider@1.5.0", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "indexmap", - "versionInfo": "1.9.3" + "homepage": "https://icu4x.unicode.org", + "licenseConcluded": "Unicode-3.0", + "licenseDeclared": "Unicode-3.0", + "name": "icu_provider", + "versionInfo": "1.5.0" }, { - "SPDXID": "SPDXRef-Package-atomic-0.5.3", - "description": "Generic Atomic wrapper type", + "SPDXID": "SPDXRef-Package-parking-2.2.0", + "description": "Thread parking and unparking", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/atomic@0.5.3", + "referenceLocator": "pkg:cargo/parking@2.2.0", "referenceType": "purl" } ], + "homepage": "https://github.com/smol-rs/parking", "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0/MIT", - "name": "atomic", - "versionInfo": "0.5.3" + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "parking", + "versionInfo": "2.2.0" }, { - "SPDXID": "SPDXRef-Package-derive-adhoc-macros-0.7.3", - "description": "Macros that implement the derive_adhoc crate", + "SPDXID": "SPDXRef-Package-tracing-0.1.40", + "description": "Application-level tracing for Rust.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/derive-adhoc-macros@0.7.3", + "referenceLocator": "pkg:cargo/tracing@0.1.40", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/Diziet/rust-derive-adhoc", + "homepage": "https://tokio.rs", "licenseConcluded": "MIT", "licenseDeclared": "MIT", - "name": "derive-adhoc-macros", - "versionInfo": "0.7.3" + "name": "tracing", + "versionInfo": "0.1.40" }, { - "SPDXID": "SPDXRef-Package-cfg-if-1.0.0", - "description": "A macro to ergonomically define an item depending on a large number of #[cfg]\nparameters. Structured like an if-else chain, the first matching branch is the\nitem that gets emitted.\n", + "SPDXID": "SPDXRef-Package-fnv-1.0.7", + "description": "Fowler–Noll–Vo hash function", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/cfg-if@1.0.0", + "referenceLocator": "pkg:cargo/fnv@1.0.7", "referenceType": "purl" } ], - "homepage": "https://github.com/alexcrichton/cfg-if", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT/Apache-2.0", - "name": "cfg-if", - "versionInfo": "1.0.0" + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 / MIT", + "name": "fnv", + "versionInfo": "1.0.7" }, { - "SPDXID": "SPDXRef-Package-wasm-bindgen-0.2.93", - "description": "Easy support for interacting between JS and Rust.\n", + "SPDXID": "SPDXRef-Package-windows_x86_64_gnu-0.48.5", + "description": "Import lib for Windows", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/wasm-bindgen@0.2.93", + "referenceLocator": "pkg:cargo/windows_x86_64_gnu@0.48.5", "referenceType": "purl" } ], - "homepage": "https://rustwasm.github.io/", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "wasm-bindgen", - "versionInfo": "0.2.93" + "name": "windows_x86_64_gnu", + "versionInfo": "0.48.5" }, { - "SPDXID": "SPDXRef-Package-humantime-2.1.0", - "description": " A parser and formatter for std::time::{Duration, SystemTime}\n", + "SPDXID": "SPDXRef-Package-tor-persist-0.24.0", + "description": "Persistent state for the Arti Tor implementation", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/humantime@2.1.0", + "referenceLocator": "pkg:cargo/tor-persist@0.24.0", "referenceType": "purl" } ], - "homepage": "https://github.com/tailhook/humantime", + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT/Apache-2.0", - "name": "humantime", - "versionInfo": "2.1.0" + "licenseDeclared": "MIT OR Apache-2.0", + "name": "tor-persist", + "versionInfo": "0.24.0" }, { - "SPDXID": "SPDXRef-Package-typenum-1.17.0", - "description": "Typenum is a Rust library for type-level numbers evaluated at\n compile time. It currently supports bits, unsigned integers, and signed\n integers. It also provides a type-level array of type-level numbers, but its\n implementation is incomplete.", + "SPDXID": "SPDXRef-Package-base64-0.13.1", + "description": "encodes and decodes base64 as bytes or utf8", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/typenum@1.17.0", + "referenceLocator": "pkg:cargo/base64@0.13.1", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "typenum", - "versionInfo": "1.17.0" + "licenseDeclared": "MIT/Apache-2.0", + "name": "base64", + "versionInfo": "0.13.1" }, { - "SPDXID": "SPDXRef-Package-bson-2.11.0", - "description": "Encoding and decoding support for BSON in Rust", + "SPDXID": "SPDXRef-Package-fallible-iterator-0.3.0", + "description": "Fallible iterator traits", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/bson@2.11.0", + "referenceLocator": "pkg:cargo/fallible-iterator@0.3.0", "referenceType": "purl" } ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "bson", - "versionInfo": "2.11.0" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT/Apache-2.0", + "name": "fallible-iterator", + "versionInfo": "0.3.0" }, { - "SPDXID": "SPDXRef-Package-hex-0.4.3", - "description": "Encoding and decoding data into/from hexadecimal representation.", + "SPDXID": "SPDXRef-Package-ryu-1.0.18", + "description": "Fast floating point to string conversion", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/hex@0.4.3", + "referenceLocator": "pkg:cargo/ryu@1.0.18", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "hex", - "versionInfo": "0.4.3" + "licenseConcluded": "Apache-2.0 OR BSL-1.0", + "licenseDeclared": "Apache-2.0 OR BSL-1.0", + "name": "ryu", + "versionInfo": "1.0.18" }, { - "SPDXID": "SPDXRef-Package-darling_macro-0.20.10", - "description": "Internal support for a proc-macro library for reading attributes into structs when\nimplementing custom derives. Use https://crates.io/crates/darling in your code.\n", + "SPDXID": "SPDXRef-Package-growable-bloom-filter-2.1.0", + "description": "Scalable Bloom Filters with serde support", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/darling_macro@0.20.10", + "referenceLocator": "pkg:cargo/growable-bloom-filter@2.1.0", "referenceType": "purl" } ], + "homepage": "https://github.com/dpbriggs/growable-bloom-filters", "licenseConcluded": "MIT", "licenseDeclared": "MIT", - "name": "darling_macro", - "versionInfo": "0.20.10" + "name": "growable-bloom-filter", + "versionInfo": "2.1.0" }, { - "SPDXID": "SPDXRef-Package-thread_local-1.1.8", - "description": "Per-object thread-local storage", + "SPDXID": "SPDXRef-Package-icu_locid_transform-1.5.0", + "description": "API for Unicode Language and Locale Identifiers canonicalization", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/thread_local@1.1.8", + "referenceLocator": "pkg:cargo/icu_locid_transform@1.5.0", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "thread_local", - "versionInfo": "1.1.8" + "homepage": "https://icu4x.unicode.org", + "licenseConcluded": "Unicode-3.0", + "licenseDeclared": "Unicode-3.0", + "name": "icu_locid_transform", + "versionInfo": "1.5.0" }, { - "SPDXID": "SPDXRef-Package-tor-netdir-0.24.0", - "description": "Types to represent and use a Tor network directory", + "SPDXID": "SPDXRef-Package-zerofrom-derive-0.1.4", + "description": "Custom derive for the zerofrom crate", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tor-netdir@0.24.0", + "referenceLocator": "pkg:cargo/zerofrom-derive@0.1.4", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "tor-netdir", - "versionInfo": "0.24.0" + "licenseConcluded": "Unicode-3.0", + "licenseDeclared": "Unicode-3.0", + "name": "zerofrom-derive", + "versionInfo": "0.1.4" }, { - "SPDXID": "SPDXRef-Package-zstd-0.13.2", - "description": "Binding for the zstd compression library.", + "SPDXID": "SPDXRef-Package-xxhash-rust-0.8.12", + "description": "Implementation of xxhash", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/zstd@0.13.2", + "referenceLocator": "pkg:cargo/xxhash-rust@0.8.12", "referenceType": "purl" } ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "zstd", - "versionInfo": "0.13.2" + "licenseConcluded": "BSL-1.0", + "licenseDeclared": "BSL-1.0", + "name": "xxhash-rust", + "versionInfo": "0.8.12" }, { - "SPDXID": "SPDXRef-Package-tor-circmgr-0.24.0", - "description": "Manage a set of anonymous circuits over the Tor network", + "SPDXID": "SPDXRef-Package-android-tzdata-0.1.1", + "description": "Parser for the Android-specific tzdata file", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tor-circmgr@0.24.0", + "referenceLocator": "pkg:cargo/android-tzdata@0.1.1", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "tor-circmgr", - "versionInfo": "0.24.0" + "name": "android-tzdata", + "versionInfo": "0.1.1" }, { - "SPDXID": "SPDXRef-Package-windows-targets-0.52.6", - "description": "Import libs for Windows", + "SPDXID": "SPDXRef-Package-tinystr-0.7.6", + "description": "A small ASCII-only bounded length string representation.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/windows-targets@0.52.6", + "referenceLocator": "pkg:cargo/tinystr@0.7.6", + "referenceType": "purl" + } + ], + "licenseConcluded": "Unicode-3.0", + "licenseDeclared": "Unicode-3.0", + "name": "tinystr", + "versionInfo": "0.7.6" + }, + { + "SPDXID": "SPDXRef-Package-url-2.5.2", + "description": "URL library for Rust, based on the WHATWG URL Standard", + "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceLocator": "pkg:cargo/url@2.5.2", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "windows-targets", - "versionInfo": "0.52.6" + "name": "url", + "versionInfo": "2.5.2" }, { - "SPDXID": "SPDXRef-Package-num-bigint-dig-0.8.4", - "description": "Big integer implementation for Rust", + "SPDXID": "SPDXRef-Package-unicode-ident-1.0.12", + "description": "Determine whether characters have the XID_Start or XID_Continue properties according to Unicode Standard Annex #31", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/num-bigint-dig@0.8.4", + "referenceLocator": "pkg:cargo/unicode-ident@1.0.12", "referenceType": "purl" } ], - "homepage": "https://github.com/dignifiedquire/num-bigint", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT/Apache-2.0", - "name": "num-bigint-dig", - "versionInfo": "0.8.4" + "licenseConcluded": "(MIT OR Apache-2.0) AND Unicode-DFS-2016", + "licenseDeclared": "(MIT OR Apache-2.0) AND Unicode-DFS-2016", + "name": "unicode-ident", + "versionInfo": "1.0.12" }, { - "SPDXID": "SPDXRef-Package-proc-macro-crate-1.3.1", - "description": "Replacement for crate (macro_rules keyword) in proc-macros\n", + "SPDXID": "SPDXRef-Package-tor-dirmgr-0.24.0", + "description": "Bootstrap and update an accurate Tor network directory", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/proc-macro-crate@1.3.1", + "referenceLocator": "pkg:cargo/tor-dirmgr@0.24.0", "referenceType": "purl" } ], + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "proc-macro-crate", - "versionInfo": "1.3.1" + "name": "tor-dirmgr", + "versionInfo": "0.24.0" }, { - "SPDXID": "SPDXRef-Package-synstructure-0.13.1", - "description": "Helper methods and macros for custom derives", + "SPDXID": "SPDXRef-Package-yoke-derive-0.7.4", + "description": "Custom derive for the yoke crate", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/synstructure@0.13.1", + "referenceLocator": "pkg:cargo/yoke-derive@0.7.4", "referenceType": "purl" } ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "synstructure", - "versionInfo": "0.13.1" + "licenseConcluded": "Unicode-3.0", + "licenseDeclared": "Unicode-3.0", + "name": "yoke-derive", + "versionInfo": "0.7.4" }, { - "SPDXID": "SPDXRef-Package-core-foundation-sys-0.8.7", - "description": "Bindings to Core Foundation for macOS", + "SPDXID": "SPDXRef-Package-time-macros-0.2.18", + "description": " Procedural macros for the time crate.\n This crate is an implementation detail and should not be relied upon directly.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/core-foundation-sys@0.8.7", + "referenceLocator": "pkg:cargo/time-macros@0.2.18", "referenceType": "purl" } ], - "homepage": "https://github.com/servo/core-foundation-rs", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "core-foundation-sys", - "versionInfo": "0.8.7" + "name": "time-macros", + "versionInfo": "0.2.18" }, { - "SPDXID": "SPDXRef-Package-base16ct-0.2.0", - "description": "Pure Rust implementation of Base16 a.k.a hexadecimal (RFC 4648) which avoids\nany usages of data-dependent branches/LUTs and thereby provides portable\n\"best effort\" constant-time operation and embedded-friendly no_std support\n", + "SPDXID": "SPDXRef-Package-nom-7.1.3", + "description": "A byte-oriented, zero-copy, parser combinators library", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/base16ct@0.2.0", + "referenceLocator": "pkg:cargo/nom@7.1.3", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "base16ct", - "versionInfo": "0.2.0" + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "nom", + "versionInfo": "7.1.3" }, { - "SPDXID": "SPDXRef-Package-zerocopy-0.7.35", - "description": "Utilities for zero-copy parsing and serialization", + "SPDXID": "SPDXRef-Package-icu_normalizer_data-1.5.0", + "description": "Data for the icu_normalizer crate", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/zerocopy@0.7.35", + "referenceLocator": "pkg:cargo/icu_normalizer_data@1.5.0", "referenceType": "purl" } ], - "licenseConcluded": "BSD-2-Clause OR Apache-2.0 OR MIT", - "licenseDeclared": "BSD-2-Clause OR Apache-2.0 OR MIT", - "name": "zerocopy", - "versionInfo": "0.7.35" + "homepage": "https://icu4x.unicode.org", + "licenseConcluded": "Unicode-3.0", + "licenseDeclared": "Unicode-3.0", + "name": "icu_normalizer_data", + "versionInfo": "1.5.0" }, { - "SPDXID": "SPDXRef-Package-octseq-0.5.1", - "description": "Abstractions for types representing octet sequences.", + "SPDXID": "SPDXRef-Package-tokio-util-0.7.12", + "description": "Additional utilities for working with Tokio.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/octseq@0.5.1", + "referenceLocator": "pkg:cargo/tokio-util@0.7.12", "referenceType": "purl" } ], - "homepage": "https://github.com/NLnetLabs/octets/", - "licenseConcluded": "BSD-3-Clause", - "licenseDeclared": "BSD-3-Clause", - "name": "octseq", - "versionInfo": "0.5.1" + "homepage": "https://tokio.rs", + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "tokio-util", + "versionInfo": "0.7.12" }, { - "SPDXID": "SPDXRef-Package-tor-proto-0.24.0", - "description": "Asynchronous client-side implementation of the central Tor network protocols", + "SPDXID": "SPDXRef-Package-bitflags-2.6.0", + "description": "A macro to generate structures which behave like bitflags.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tor-proto@0.24.0", + "referenceLocator": "pkg:cargo/bitflags@2.6.0", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", + "homepage": "https://github.com/bitflags/bitflags", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "tor-proto", - "versionInfo": "0.24.0" + "name": "bitflags", + "versionInfo": "2.6.0" }, { - "SPDXID": "SPDXRef-Package-openssl-sys-0.9.103", - "description": "FFI bindings to OpenSSL", + "SPDXID": "SPDXRef-Package-curve25519-dalek-4.1.3", + "description": "A pure-Rust implementation of group operations on ristretto255 and Curve25519", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/openssl-sys@0.9.103", + "referenceLocator": "pkg:cargo/curve25519-dalek@4.1.3", "referenceType": "purl" } ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "openssl-sys", - "versionInfo": "0.9.103" + "homepage": "https://github.com/dalek-cryptography/curve25519-dalek", + "licenseConcluded": "BSD-3-Clause", + "licenseDeclared": "BSD-3-Clause", + "name": "curve25519-dalek", + "versionInfo": "4.1.3" }, { - "SPDXID": "SPDXRef-Package-cookie-factory-0.3.3", - "description": "nom inspired serialization library", + "SPDXID": "SPDXRef-Package-zerovec-0.10.4", + "description": "Zero-copy vector backed by a byte array", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/cookie-factory@0.3.3", + "referenceLocator": "pkg:cargo/zerovec@0.10.4", "referenceType": "purl" } ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "cookie-factory", - "versionInfo": "0.3.3" - }, - { - "SPDXID": "SPDXRef-Package-tor-interface-0.4.0", - "description": "A library providing a Rust interface to interact with the legacy tor daemon", - "downloadLocation": "NONE", - "licenseConcluded": "BSD-3-Clause", - "licenseDeclared": "BSD-3-Clause", - "name": "tor-interface", - "versionInfo": "0.4.0" + "licenseConcluded": "Unicode-3.0", + "licenseDeclared": "Unicode-3.0", + "name": "zerovec", + "versionInfo": "0.10.4" }, { - "SPDXID": "SPDXRef-Package-matchers-0.1.0", - "description": "Regex matching on character and byte streams.\n", + "SPDXID": "SPDXRef-Package-derive_more-1.0.0", + "description": "Adds #[derive(x)] macros for more traits", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/matchers@0.1.0", + "referenceLocator": "pkg:cargo/derive_more@1.0.0", "referenceType": "purl" } ], - "homepage": "https://github.com/hawkw/matchers", "licenseConcluded": "MIT", "licenseDeclared": "MIT", - "name": "matchers", - "versionInfo": "0.1.0" + "name": "derive_more", + "versionInfo": "1.0.0" }, { - "SPDXID": "SPDXRef-Package-dyn-clone-1.0.17", - "description": "Clone trait that is object-safe", + "SPDXID": "SPDXRef-Package-bounded-vec-deque-0.1.1", + "description": "A double-ended queue|ringbuffer with an upper bound on its length.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/dyn-clone@1.0.17", + "referenceLocator": "pkg:cargo/bounded-vec-deque@0.1.1", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "dyn-clone", - "versionInfo": "1.0.17" + "licenseConcluded": "GPL-3.0-or-later OR BSD-3-Clause", + "licenseDeclared": "GPL-3.0+ OR BSD-3-Clause", + "name": "bounded-vec-deque", + "versionInfo": "0.1.1" }, { - "SPDXID": "SPDXRef-Package-httpdate-1.0.3", - "description": "HTTP date parsing and formatting", + "SPDXID": "SPDXRef-Package-utf8_iter-1.0.4", + "description": "Iterator by char over potentially-invalid UTF-8 in &[u8]", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/httpdate@1.0.3", + "referenceLocator": "pkg:cargo/utf8_iter@1.0.4", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "httpdate", - "versionInfo": "1.0.3" + "homepage": "https://docs.rs/utf8_iter/", + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "utf8_iter", + "versionInfo": "1.0.4" }, { - "SPDXID": "SPDXRef-Package-regex-syntax-0.8.4", - "description": "A regular expression parser.", + "SPDXID": "SPDXRef-Package-http-1.1.0", + "description": "A set of types for representing HTTP requests and responses.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/regex-syntax@0.8.4", + "referenceLocator": "pkg:cargo/http@1.1.0", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "regex-syntax", - "versionInfo": "0.8.4" + "name": "http", + "versionInfo": "1.1.0" }, { - "SPDXID": "SPDXRef-Package-windows_i686_msvc-0.52.6", - "description": "Import lib for Windows", + "SPDXID": "SPDXRef-Package-blanket-0.3.0", + "description": "A simple macro to derive blanket implementations for your traits.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/windows_i686_msvc@0.52.6", + "referenceLocator": "pkg:cargo/blanket@0.3.0", + "referenceType": "purl" + } + ], + "homepage": "https://github.com/althonos/blanket", + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "blanket", + "versionInfo": "0.3.0" + }, + { + "SPDXID": "SPDXRef-Package-group-0.13.0", + "description": "Elliptic curve group traits and utilities", + "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceLocator": "pkg:cargo/group@0.13.0", + "referenceType": "purl" + } + ], + "homepage": "https://github.com/zkcrypto/group", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT/Apache-2.0", + "name": "group", + "versionInfo": "0.13.0" + }, + { + "SPDXID": "SPDXRef-Package-dyn-clone-1.0.17", + "description": "Clone trait that is object-safe", + "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceLocator": "pkg:cargo/dyn-clone@1.0.17", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "windows_i686_msvc", - "versionInfo": "0.52.6" + "name": "dyn-clone", + "versionInfo": "1.0.17" }, { - "SPDXID": "SPDXRef-Package-tor-cell-0.24.0", - "description": "Encode and decode Tor cells and messages", + "SPDXID": "SPDXRef-Package-windows-targets-0.52.6", + "description": "Import libs for Windows", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tor-cell@0.24.0", + "referenceLocator": "pkg:cargo/windows-targets@0.52.6", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "tor-cell", - "versionInfo": "0.24.0" + "name": "windows-targets", + "versionInfo": "0.52.6" }, { - "SPDXID": "SPDXRef-Package-instant-0.1.13", - "description": "Unmaintained, consider using web-time instead - A partial replacement for std::time::Instant that works on WASM to.", + "SPDXID": "SPDXRef-Package-writeable-0.5.5", + "description": "A more efficient alternative to fmt::Display", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/instant@0.1.13", + "referenceLocator": "pkg:cargo/writeable@0.5.5", "referenceType": "purl" } ], - "licenseConcluded": "BSD-3-Clause", - "licenseDeclared": "BSD-3-Clause", - "name": "instant", - "versionInfo": "0.1.13" + "licenseConcluded": "Unicode-3.0", + "licenseDeclared": "Unicode-3.0", + "name": "writeable", + "versionInfo": "0.5.5" }, { - "SPDXID": "SPDXRef-Package-kqueue-1.0.8", - "description": "kqueue interface for BSDs", + "SPDXID": "SPDXRef-Package-pin-project-lite-0.2.14", + "description": "A lightweight version of pin-project written with declarative macros.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/kqueue@1.0.8", + "referenceLocator": "pkg:cargo/pin-project-lite@0.2.14", "referenceType": "purl" } ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "kqueue", - "versionInfo": "1.0.8" + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "pin-project-lite", + "versionInfo": "0.2.14" }, { - "SPDXID": "SPDXRef-Package-hashbrown-0.14.5", - "description": "A Rust port of Google's SwissTable hash map", + "SPDXID": "SPDXRef-Package-indexmap-1.9.3", + "description": "A hash table with consistent order and fast iteration.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/hashbrown@0.14.5", + "referenceLocator": "pkg:cargo/indexmap@1.9.3", "referenceType": "purl" } ], - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "hashbrown", - "versionInfo": "0.14.5" + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "indexmap", + "versionInfo": "1.9.3" }, { "SPDXID": "SPDXRef-Package-rusticata-macros-4.1.0", @@ -7233,2112 +7299,1986 @@ "versionInfo": "4.1.0" }, { - "SPDXID": "SPDXRef-Package-static_assertions-1.1.0", - "description": "Compile-time assertions to ensure that invariants are met.", + "SPDXID": "SPDXRef-Package-priority-queue-2.1.0", + "description": "A Priority Queue implemented as a heap with a function to efficiently change the priority of an item.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/static_assertions@1.1.0", + "referenceLocator": "pkg:cargo/priority-queue@2.1.0", "referenceType": "purl" } ], - "homepage": "https://github.com/nvzqz/static-assertions-rs", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "static_assertions", - "versionInfo": "1.1.0" + "licenseConcluded": "LGPL-3.0-or-later OR MPL-2.0", + "licenseDeclared": "LGPL-3.0-or-later OR MPL-2.0", + "name": "priority-queue", + "versionInfo": "2.1.0" }, { - "SPDXID": "SPDXRef-Package-bstr-1.10.0", - "description": "A string type that is not required to be valid UTF-8.", + "SPDXID": "SPDXRef-Package-regex-syntax-0.6.29", + "description": "A regular expression parser.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/bstr@1.10.0", + "referenceLocator": "pkg:cargo/regex-syntax@0.6.29", "referenceType": "purl" } ], - "homepage": "https://github.com/BurntSushi/bstr", + "homepage": "https://github.com/rust-lang/regex", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "bstr", - "versionInfo": "1.10.0" + "name": "regex-syntax", + "versionInfo": "0.6.29" }, { - "SPDXID": "SPDXRef-Package-visibility-0.1.1", - "description": "Attribute to override the visibility of items (useful in conjunction with cfg_attr)", + "SPDXID": "SPDXRef-Package-base64ct-1.6.0", + "description": "Pure Rust implementation of Base64 (RFC 4648) which avoids any usages of\ndata-dependent branches/LUTs and thereby provides portable \"best effort\"\nconstant-time operation and embedded-friendly no_std support\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/visibility@0.1.1", + "referenceLocator": "pkg:cargo/base64ct@1.6.0", "referenceType": "purl" } ], - "homepage": "https://crates.io/crates/visibility", - "licenseConcluded": "Zlib OR MIT OR Apache-2.0", - "licenseDeclared": "Zlib OR MIT OR Apache-2.0", - "name": "visibility", - "versionInfo": "0.1.1" + "licenseConcluded": "Apache-2.0 OR MIT", + "licenseDeclared": "Apache-2.0 OR MIT", + "name": "base64ct", + "versionInfo": "1.6.0" }, { - "SPDXID": "SPDXRef-Package-concurrent-queue-2.5.0", - "description": "Concurrent multi-producer multi-consumer queue", + "SPDXID": "SPDXRef-Package-arti-client-0.24.0", + "description": "Library for connecting to the Tor network as an anonymous client", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/concurrent-queue@2.5.0", + "referenceLocator": "pkg:cargo/arti-client@0.24.0", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "concurrent-queue", - "versionInfo": "2.5.0" + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "arti-client", + "versionInfo": "0.24.0" }, { - "SPDXID": "SPDXRef-Package-futures-macro-0.3.30", - "description": "The futures-rs procedural macro implementations.\n", + "SPDXID": "SPDXRef-Package-icu_normalizer-1.5.0", + "description": "API for normalizing text into Unicode Normalization Forms", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/futures-macro@0.3.30", + "referenceLocator": "pkg:cargo/icu_normalizer@1.5.0", "referenceType": "purl" } ], - "homepage": "https://rust-lang.github.io/futures-rs", - "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "futures-macro", - "versionInfo": "0.3.30" + "homepage": "https://icu4x.unicode.org", + "licenseConcluded": "Unicode-3.0", + "licenseDeclared": "Unicode-3.0", + "name": "icu_normalizer", + "versionInfo": "1.5.0" }, { - "SPDXID": "SPDXRef-Package-thiserror-1.0.63", - "description": "derive(Error)", + "SPDXID": "SPDXRef-Package-serde_derive-1.0.209", + "description": "Macros 1.1 implementation of #[derive(Serialize, Deserialize)]", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/thiserror@1.0.63", + "referenceLocator": "pkg:cargo/serde_derive@1.0.209", "referenceType": "purl" } ], + "homepage": "https://serde.rs", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "thiserror", - "versionInfo": "1.0.63" + "name": "serde_derive", + "versionInfo": "1.0.209" }, { - "SPDXID": "SPDXRef-Package-tor-general-addr-0.24.0", - "description": "Generalized socket address type used by Tor", + "SPDXID": "SPDXRef-Package-ident_case-1.0.1", + "description": "Utility for applying case rules to Rust identifiers.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/tor-general-addr@0.24.0", + "referenceLocator": "pkg:cargo/ident_case@1.0.1", "referenceType": "purl" } ], - "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT OR Apache-2.0", - "name": "tor-general-addr", - "versionInfo": "0.24.0" + "licenseDeclared": "MIT/Apache-2.0", + "name": "ident_case", + "versionInfo": "1.0.1" }, { - "SPDXID": "SPDXRef-Package-ordered-float-2.10.1", - "description": "Wrappers for total ordering on floats", + "SPDXID": "SPDXRef-Package-bytemuck-1.18.0", + "description": "A crate for mucking around with piles of bytes.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/ordered-float@2.10.1", + "referenceLocator": "pkg:cargo/bytemuck@1.18.0", "referenceType": "purl" } ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "ordered-float", - "versionInfo": "2.10.1" + "licenseConcluded": "Zlib OR Apache-2.0 OR MIT", + "licenseDeclared": "Zlib OR Apache-2.0 OR MIT", + "name": "bytemuck", + "versionInfo": "1.18.0" }, { - "SPDXID": "SPDXRef-Package-icu_collections-1.5.0", - "description": "Collection of API for use in ICU libraries.", + "SPDXID": "SPDXRef-Package-amplify-4.7.0", + "description": "Amplifying Rust language capabilities: multiple generic trait implementations, type wrappers, derive macros", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/icu_collections@1.5.0", + "referenceLocator": "pkg:cargo/amplify@4.7.0", "referenceType": "purl" } ], - "homepage": "https://icu4x.unicode.org", - "licenseConcluded": "Unicode-3.0", - "licenseDeclared": "Unicode-3.0", - "name": "icu_collections", - "versionInfo": "1.5.0" + "homepage": "https://github.com/rust-amplify", + "licenseConcluded": "MIT", + "licenseDeclared": "MIT", + "name": "amplify", + "versionInfo": "4.7.0" }, { - "SPDXID": "SPDXRef-Package-const-oid-0.9.6", - "description": "Const-friendly implementation of the ISO/IEC Object Identifier (OID) standard\nas defined in ITU X.660, with support for BER/DER encoding/decoding as well as\nheapless no_std (i.e. embedded) support\n", + "SPDXID": "SPDXRef-Package-base64-0.22.1", + "description": "encodes and decodes base64 as bytes or utf8", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/const-oid@0.9.6", + "referenceLocator": "pkg:cargo/base64@0.22.1", "referenceType": "purl" } ], - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "const-oid", - "versionInfo": "0.9.6" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "base64", + "versionInfo": "0.22.1" }, { - "SPDXID": "SPDXRef-Package-bitvec-1.0.1", - "description": "Addresses memory by bits, for packed collections and bitfields", + "SPDXID": "SPDXRef-Package-stable_deref_trait-1.2.0", + "description": "An unsafe marker trait for types like Box and Rc that dereference to a stable address even when moved, and hence can be used with libraries such as owning_ref and rental.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/bitvec@1.0.1", + "referenceLocator": "pkg:cargo/stable_deref_trait@1.2.0", "referenceType": "purl" } ], - "homepage": "https://bitvecto-rs.github.io/bitvec", - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "bitvec", - "versionInfo": "1.0.1" + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT/Apache-2.0", + "name": "stable_deref_trait", + "versionInfo": "1.2.0" }, { - "SPDXID": "SPDXRef-Package-derive_builder_fork_arti-0.11.2", - "description": "Rust macro to automatically implement the builder pattern for arbitrary structs.", + "SPDXID": "SPDXRef-Package-httparse-1.9.4", + "description": "A tiny, safe, speedy, zero-copy HTTP/1.x parser.", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/derive_builder_fork_arti@0.11.2", + "referenceLocator": "pkg:cargo/httparse@1.9.4", "referenceType": "purl" } ], "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT/Apache-2.0", - "name": "derive_builder_fork_arti", - "versionInfo": "0.11.2" - }, - { - "SPDXID": "SPDXRef-Package-adler2-2.0.0", - "description": "A simple clean-room implementation of the Adler-32 checksum", - "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/adler2@2.0.0", - "referenceType": "purl" - } - ], - "licenseConcluded": "0BSD OR MIT OR Apache-2.0", - "licenseDeclared": "0BSD OR MIT OR Apache-2.0", - "name": "adler2", - "versionInfo": "2.0.0" + "licenseDeclared": "MIT OR Apache-2.0", + "name": "httparse", + "versionInfo": "1.9.4" }, { - "SPDXID": "SPDXRef-Package-rfc6979-0.4.0", - "description": "Pure Rust implementation of RFC6979: Deterministic Usage of the\nDigital Signature Algorithm (DSA) and Elliptic Curve Digital Signature Algorithm (ECDSA)\n", + "SPDXID": "SPDXRef-Package-pkcs8-0.10.2", + "description": "Pure Rust implementation of Public-Key Cryptography Standards (PKCS) #8:\nPrivate-Key Information Syntax Specification (RFC 5208), with additional\nsupport for PKCS#8v2 asymmetric key packages (RFC 5958)\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/rfc6979@0.4.0", + "referenceLocator": "pkg:cargo/pkcs8@0.10.2", "referenceType": "purl" } ], "licenseConcluded": "Apache-2.0 OR MIT", "licenseDeclared": "Apache-2.0 OR MIT", - "name": "rfc6979", - "versionInfo": "0.4.0" + "name": "pkcs8", + "versionInfo": "0.10.2" }, { - "SPDXID": "SPDXRef-Package-pkcs1-0.7.5", - "description": "Pure Rust implementation of Public-Key Cryptography Standards (PKCS) #1:\nRSA Cryptography Specifications Version 2.2 (RFC 8017)\n", + "SPDXID": "SPDXRef-Package-ecdsa-0.16.9", + "description": "Pure Rust implementation of the Elliptic Curve Digital Signature Algorithm\n(ECDSA) as specified in FIPS 186-4 (Digital Signature Standard), providing\nRFC6979 deterministic signatures as well as support for added entropy\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/pkcs1@0.7.5", + "referenceLocator": "pkg:cargo/ecdsa@0.16.9", "referenceType": "purl" } ], "licenseConcluded": "Apache-2.0 OR MIT", "licenseDeclared": "Apache-2.0 OR MIT", - "name": "pkcs1", - "versionInfo": "0.7.5" - }, - { - "SPDXID": "SPDXRef-Package-blanket-0.3.0", - "description": "A simple macro to derive blanket implementations for your traits.", - "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/blanket@0.3.0", - "referenceType": "purl" - } - ], - "homepage": "https://github.com/althonos/blanket", - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "blanket", - "versionInfo": "0.3.0" + "name": "ecdsa", + "versionInfo": "0.16.9" }, { - "SPDXID": "SPDXRef-Package-anyhow-1.0.86", - "description": "Flexible concrete Error type built on std::error::Error", + "SPDXID": "SPDXRef-Package-time-0.3.36", + "description": "Date and time library. Fully interoperable with the standard library. Mostly compatible with #![no_std].", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/anyhow@1.0.86", + "referenceLocator": "pkg:cargo/time@0.3.36", "referenceType": "purl" } ], + "homepage": "https://time-rs.github.io", "licenseConcluded": "MIT OR Apache-2.0", "licenseDeclared": "MIT OR Apache-2.0", - "name": "anyhow", - "versionInfo": "1.0.86" - }, - { - "SPDXID": "SPDXRef-Package-sec1-0.7.3", - "description": "Pure Rust implementation of SEC1: Elliptic Curve Cryptography encoding formats\nincluding ASN.1 DER-serialized private keys as well as the\nElliptic-Curve-Point-to-Octet-String encoding\n", - "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/sec1@0.7.3", - "referenceType": "purl" - } - ], - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "sec1", - "versionInfo": "0.7.3" - }, - { - "SPDXID": "SPDXRef-Package-darling_core-0.20.10", - "description": "Helper crate for proc-macro library for reading attributes into structs when\nimplementing custom derives. Use https://crates.io/crates/darling in your code.\n", - "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", - "externalRefs": [ - { - "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/darling_core@0.20.10", - "referenceType": "purl" - } - ], - "licenseConcluded": "MIT", - "licenseDeclared": "MIT", - "name": "darling_core", - "versionInfo": "0.20.10" + "name": "time", + "versionInfo": "0.3.36" }, { - "SPDXID": "SPDXRef-Package-bitflags-1.3.2", - "description": "A macro to generate structures which behave like bitflags.\n", + "SPDXID": "SPDXRef-Package-futures-core-0.3.30", + "description": "The core traits and types in for the `futures` library.\n", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/bitflags@1.3.2", + "referenceLocator": "pkg:cargo/futures-core@0.3.30", "referenceType": "purl" } ], - "homepage": "https://github.com/bitflags/bitflags", + "homepage": "https://rust-lang.github.io/futures-rs", "licenseConcluded": "MIT OR Apache-2.0", - "licenseDeclared": "MIT/Apache-2.0", - "name": "bitflags", - "versionInfo": "1.3.2" + "licenseDeclared": "MIT OR Apache-2.0", + "name": "futures-core", + "versionInfo": "0.3.30" }, { - "SPDXID": "SPDXRef-Package-parking-2.2.0", - "description": "Thread parking and unparking", + "SPDXID": "SPDXRef-Package-tor-checkable-0.24.0", + "description": "Types to ensure that signed or time-bound data is validated before use", "downloadLocation": "registry+https://github.com/rust-lang/crates.io-index", "externalRefs": [ { "referenceCategory": "PACKAGE-MANAGER", - "referenceLocator": "pkg:cargo/parking@2.2.0", + "referenceLocator": "pkg:cargo/tor-checkable@0.24.0", "referenceType": "purl" } ], - "homepage": "https://github.com/smol-rs/parking", - "licenseConcluded": "Apache-2.0 OR MIT", - "licenseDeclared": "Apache-2.0 OR MIT", - "name": "parking", - "versionInfo": "2.2.0" + "homepage": "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home", + "licenseConcluded": "MIT OR Apache-2.0", + "licenseDeclared": "MIT OR Apache-2.0", + "name": "tor-checkable", + "versionInfo": "0.24.0" } ], "relationships": [ { - "relatedSpdxElement": "SPDXRef-Package-tor-rtcompat-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tor-config-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-error-0.24.0" + "spdxElementId": "SPDXRef-Package-blanket-0.3.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-keymgr-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-ascii-1.1.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" + "spdxElementId": "SPDXRef-Package-amplify-4.7.0" }, { - "relatedSpdxElement": "SPDXRef-Package-itertools-0.13.0", + "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-units-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-linkspec-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-nom-7.1.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" + "spdxElementId": "SPDXRef-Package-asn1-rs-0.6.2" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-keymgr-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-serde_with-3.9.0" }, { - "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", + "relatedSpdxElement": "SPDXRef-Package-der-0.7.9", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-bytes-0.24.0" + "spdxElementId": "SPDXRef-Package-pkcs8-0.10.2" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_builder_fork_arti-0.11.2", + "relatedSpdxElement": "SPDXRef-Package-tor-proto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-fs-mistrust-0.8.0" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-getrandom-0.2.15", + "relatedSpdxElement": "SPDXRef-Package-instant-0.1.13", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-redox_users-0.4.6" + "spdxElementId": "SPDXRef-Package-notify-types-1.0.0" }, { - "relatedSpdxElement": "SPDXRef-Package-base64ct-1.6.0", + "relatedSpdxElement": "SPDXRef-Package-futures-macro-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-futures-util-0.3.30" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-config-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-derive_builder_fork_arti-0.11.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-elliptic-curve-0.13.8", + "relatedSpdxElement": "SPDXRef-Package-mio-1.0.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-p384-0.13.0" + "spdxElementId": "SPDXRef-Package-notify-7.0.0" }, { - "relatedSpdxElement": "SPDXRef-Package-paste-1.0.15", + "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-error-0.24.0" + "spdxElementId": "SPDXRef-Package-zerocopy-derive-0.7.35" }, { - "relatedSpdxElement": "SPDXRef-Package-fluid-let-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-getrandom-0.2.15", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-safelog-0.4.1" + "spdxElementId": "SPDXRef-Package-redox_users-0.4.6" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-memquota-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-either-1.13.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-itertools-0.11.0" }, { - "relatedSpdxElement": "SPDXRef-Package-inotify-sys-0.1.5", + "relatedSpdxElement": "SPDXRef-Package-tor-basic-utils-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-inotify-0.10.2" + "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-units-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-ordered-float-2.10.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" + "spdxElementId": "SPDXRef-Package-serde-value-0.7.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-cell-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" + "spdxElementId": "SPDXRef-Package-pin-project-internal-1.1.5" }, { - "relatedSpdxElement": "SPDXRef-Package-bytes-1.7.1", + "relatedSpdxElement": "SPDXRef-Package-smallvec-1.13.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-basic-utils-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-toml_datetime-0.6.8", + "relatedSpdxElement": "SPDXRef-Package-tor-linkspec-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-toml_edit-0.19.15" + "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-fslock-0.2.1", + "relatedSpdxElement": "SPDXRef-Package-serde_with_macros-3.9.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" - }, - { - "relatedSpdxElement": "SPDXRef-Package-tor-interface-0.4.0", - "relationshipType": "GENERATED_FROM", - "spdxElementId": "SPDXRef-File-tor_interface" + "spdxElementId": "SPDXRef-Package-serde_with-3.9.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-config-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tor-log-ratelim-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", + "relatedSpdxElement": "SPDXRef-Package-tor-relay-selection-0.24.0", "relationshipType": "DEPENDS_ON", "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-icu_locid-1.5.0", - "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_locid_transform-1.5.0" - }, - { - "relatedSpdxElement": "SPDXRef-Package-figment-0.10.19", - "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" - }, - { - "relatedSpdxElement": "SPDXRef-Package-windows-targets-0.52.6", - "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-chrono-0.4.38" - }, - { - "relatedSpdxElement": "SPDXRef-Package-tor-memquota-0.24.0", - "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" - }, - { - "relatedSpdxElement": "SPDXRef-Package-tor-proto-0.24.0", - "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" - }, - { - "relatedSpdxElement": "SPDXRef-Package-oneshot-fused-workaround-0.2.0", - "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-async-utils-0.24.0" - }, - { - "relatedSpdxElement": "SPDXRef-Package-tracing-subscriber-0.3.18", + "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tracing-test-0.2.5" + "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" }, { "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tokio-macros-2.4.0" - }, - { - "relatedSpdxElement": "SPDXRef-Package-tor-basic-utils-0.24.0", - "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" - }, - { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", - "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-log-ratelim-0.24.0" - }, - { - "relatedSpdxElement": "SPDXRef-Package-phf_generator-0.11.2", - "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-phf_macros-0.11.2" - }, - { - "relatedSpdxElement": "SPDXRef-Package-icu_normalizer-1.5.0", - "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-idna-1.0.2" + "spdxElementId": "SPDXRef-Package-openssl-macros-0.1.1" }, { - "relatedSpdxElement": "SPDXRef-Package-zstd-0.13.2", + "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-async-compression-0.4.12" + "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-libredox-0.1.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" + "spdxElementId": "SPDXRef-Package-redox_users-0.4.6" }, { - "relatedSpdxElement": "SPDXRef-Package-itertools-0.13.0", + "relatedSpdxElement": "SPDXRef-Package-tor-dirmgr-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" + "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-chrono-0.4.38" - }, - { - "relatedSpdxElement": "SPDXRef-Package-paste-1.0.15", - "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" - }, - { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", - "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" - }, - { - "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", - "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-curve25519-dalek-4.1.3" + "spdxElementId": "SPDXRef-Package-fs-mistrust-0.8.0" }, { - "relatedSpdxElement": "SPDXRef-Package-shellexpand-3.1.0", + "relatedSpdxElement": "SPDXRef-Package-strum_macros-0.26.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-config-path-0.24.0" + "spdxElementId": "SPDXRef-Package-strum-0.26.3" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-rtcompat-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-windows-sys-0.52.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" + "spdxElementId": "SPDXRef-Package-tokio-1.40.0" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-memchr-2.7.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-serde_spanned-0.6.7" + "spdxElementId": "SPDXRef-Package-regex-automata-0.4.7" }, { - "relatedSpdxElement": "SPDXRef-Package-displaydoc-0.2.5", + "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-der-parser-9.0.0" + "spdxElementId": "SPDXRef-Package-tor-cert-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-hscrypto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-either-1.13.0", + "relatedSpdxElement": "SPDXRef-Package-humantime-2.1.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-which-4.4.2" + "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-serde_derive-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-tor-guardmgr-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-serde-1.0.209" + "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-protover-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tor-cert-0.24.0", "relationshipType": "DEPENDS_ON", "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-1.0.109", - "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-darling_core-0.14.4" - }, - { - "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", - "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-rtcompat-0.24.0" - }, - { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-tor-consdiff-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-thiserror-impl-1.0.63" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", + "relatedSpdxElement": "SPDXRef-Package-oneshot-fused-workaround-0.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-walkdir-2.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-toml-0.8.19", + "relatedSpdxElement": "SPDXRef-Package-regex-1.10.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" + "spdxElementId": "SPDXRef-Package-tracing-subscriber-0.3.18" }, { - "relatedSpdxElement": "SPDXRef-Package-directories-5.0.1", + "relatedSpdxElement": "SPDXRef-Package-subtle-2.6.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" + "spdxElementId": "SPDXRef-Package-group-0.13.0" }, { - "relatedSpdxElement": "SPDXRef-Package-windows-sys-0.52.0", + "relatedSpdxElement": "SPDXRef-Package-base16ct-0.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-notify-7.0.0" + "spdxElementId": "SPDXRef-Package-p521-0.13.3" }, { - "relatedSpdxElement": "SPDXRef-Package-byteorder-1.5.0", + "relatedSpdxElement": "SPDXRef-Package-rusqlite-0.32.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-merlin-3.0.0" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-task-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-futures-0.3.30" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-either-1.13.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-darling_core-0.14.4" + "spdxElementId": "SPDXRef-Package-which-4.4.2" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-serde-value-0.7.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-rtcompat-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-der-0.7.9", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-slotmap-1.0.7" + "spdxElementId": "SPDXRef-Package-ecdsa-0.16.9" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-crypto-bigint-0.5.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-blanket-0.3.0" + "spdxElementId": "SPDXRef-Package-elliptic-curve-0.13.8" }, { - "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", + "relatedSpdxElement": "SPDXRef-Package-async-trait-0.1.82", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-mio-1.0.2" + "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-coarsetime-0.1.34", + "relatedSpdxElement": "SPDXRef-Package-group-0.13.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-rtcompat-0.24.0" + "spdxElementId": "SPDXRef-Package-elliptic-curve-0.13.8" }, { - "relatedSpdxElement": "SPDXRef-Package-safelog-0.4.1", + "relatedSpdxElement": "SPDXRef-Package-smallvec-1.13.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-cell-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" + "spdxElementId": "SPDXRef-Package-indexmap-2.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-itertools-0.13.0", + "relatedSpdxElement": "SPDXRef-Package-rand_core-0.6.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-indexmap-2.5.0", + "relatedSpdxElement": "SPDXRef-Package-tor-config-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-priority-queue-2.1.0" + "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-smallvec-1.13.2", + "relatedSpdxElement": "SPDXRef-Package-lazy_static-1.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tracing-subscriber-0.3.18" + "spdxElementId": "SPDXRef-Package-sharded-slab-0.1.7" }, { - "relatedSpdxElement": "SPDXRef-Package-log-0.4.22", + "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tracing-log-0.2.0" + "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-netdoc-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-darling_core-0.20.10" }, { - "relatedSpdxElement": "SPDXRef-Package-sanitize-filename-0.5.0", + "relatedSpdxElement": "SPDXRef-Package-paste-1.0.15", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" + "spdxElementId": "SPDXRef-Package-cgosling-0.3.1" }, { - "relatedSpdxElement": "SPDXRef-Package-bitflags-2.6.0", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-rusqlite-0.32.1" + "spdxElementId": "SPDXRef-Package-gosling-0.3.0" }, { - "relatedSpdxElement": "SPDXRef-Package-rfc6979-0.4.0", + "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ecdsa-0.16.9" + "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-signal-hook-registry-1.4.2", + "relatedSpdxElement": "SPDXRef-Package-either-1.13.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tokio-1.40.0" + "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-base16ct-0.2.0", + "relatedSpdxElement": "SPDXRef-Package-generic-array-0.14.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-elliptic-curve-0.13.8" + "spdxElementId": "SPDXRef-Package-block-buffer-0.10.4" }, { - "relatedSpdxElement": "SPDXRef-Package-atomic-0.6.0", + "relatedSpdxElement": "SPDXRef-Package-oneshot-fused-workaround-0.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-figment-0.10.19" + "spdxElementId": "SPDXRef-Package-tor-async-utils-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", + "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-consdiff-0.24.0" + "spdxElementId": "SPDXRef-Package-serde_with_macros-3.9.0" }, { - "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", + "relatedSpdxElement": "SPDXRef-Package-fallible-iterator-0.3.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-security-framework-sys-2.11.1" + "spdxElementId": "SPDXRef-Package-rusqlite-0.32.1" }, { - "relatedSpdxElement": "SPDXRef-Package-sha2-0.10.8", + "relatedSpdxElement": "SPDXRef-Package-tor-async-utils-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-p521-0.13.3" + "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-guardmgr-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-strsim-0.10.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" + "spdxElementId": "SPDXRef-Package-darling_core-0.14.4" }, { - "relatedSpdxElement": "SPDXRef-Package-merlin-3.0.0", + "relatedSpdxElement": "SPDXRef-Package-windows_i686_msvc-0.48.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ed25519-dalek-2.1.1" + "spdxElementId": "SPDXRef-Package-windows-targets-0.48.5" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-general-addr-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tokio-1.40.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-rtcompat-0.24.0" + "spdxElementId": "SPDXRef-Package-async_executors-0.7.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tap-1.0.1", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-wyz-0.5.1" + "spdxElementId": "SPDXRef-Package-phf_macros-0.11.2" }, { - "relatedSpdxElement": "SPDXRef-Package-const-oid-0.9.6", + "relatedSpdxElement": "SPDXRef-Package-tor-netdoc-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-digest-0.10.7" + "spdxElementId": "SPDXRef-Package-tor-relay-selection-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-foreign-types-0.3.2", + "relatedSpdxElement": "SPDXRef-Package-crossbeam-queue-0.3.11", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-openssl-0.10.66" + "spdxElementId": "SPDXRef-Package-postage-0.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-config-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-log-ratelim-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-displaydoc-0.2.5", + "relatedSpdxElement": "SPDXRef-Package-socket2-0.5.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_locid-1.5.0" + "spdxElementId": "SPDXRef-Package-tokio-1.40.0" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-darling_core-0.20.10" + "spdxElementId": "SPDXRef-Package-educe-0.4.23" }, { - "relatedSpdxElement": "SPDXRef-Package-toml_edit-0.22.20", + "relatedSpdxElement": "SPDXRef-Package-cipher-0.4.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-proc-macro-crate-3.2.0" + "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", + "relatedSpdxElement": "SPDXRef-Package-tor-linkspec-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-signature-2.2.0" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-cgosling-proc-macros-0.0.0" + "spdxElementId": "SPDXRef-Package-wasm-bindgen-backend-0.2.93" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-proto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-regex-syntax-0.8.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" + "spdxElementId": "SPDXRef-Package-regex-automata-0.4.7" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_builder_macro_fork_arti-0.11.2", + "relatedSpdxElement": "SPDXRef-Package-derive_builder_fork_arti-0.11.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-derive_builder_fork_arti-0.11.2" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-dirs-5.0.1", + "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-fs-mistrust-0.8.0" + "spdxElementId": "SPDXRef-Package-openssl-0.10.66" }, { - "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", + "relatedSpdxElement": "SPDXRef-Package-tor-netdir-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-relay-selection-0.24.0" + "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-winapi-0.3.9", + "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-nu-ansi-term-0.46.0" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_builder_fork_arti-0.11.2", + "relatedSpdxElement": "SPDXRef-Package-generic-array-0.14.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" + "spdxElementId": "SPDXRef-Package-elliptic-curve-0.13.8" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-key-forge-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-async-utils-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-object-0.36.4", + "relatedSpdxElement": "SPDXRef-Package-syn-1.0.109", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-backtrace-0.3.73" + "spdxElementId": "SPDXRef-Package-derive_builder_core_fork_arti-0.11.2" }, { - "relatedSpdxElement": "SPDXRef-Package-rustc-demangle-0.1.24", + "relatedSpdxElement": "SPDXRef-Package-tor-netdir-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-backtrace-0.3.73" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-static_assertions-1.1.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" }, { - "relatedSpdxElement": "SPDXRef-Package-serde_with-3.9.0", + "relatedSpdxElement": "SPDXRef-Package-windows_x86_64_gnu-0.48.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-windows-targets-0.48.5" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-basic-utils-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-windows-sys-0.59.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-winapi-util-0.1.9" }, { - "relatedSpdxElement": "SPDXRef-Package-itertools-0.13.0", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" + "spdxElementId": "SPDXRef-Package-ed25519-dalek-2.1.1" }, { - "relatedSpdxElement": "SPDXRef-Package-hashbrown-0.12.3", + "relatedSpdxElement": "SPDXRef-Package-tor-rtcompat-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-indexmap-1.9.3" + "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", + "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-parking_lot_core-0.9.10" }, { - "relatedSpdxElement": "SPDXRef-Package-blanket-0.3.0", + "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-async_executors-0.7.0" + "spdxElementId": "SPDXRef-Package-signal-hook-registry-1.4.2" }, { - "relatedSpdxElement": "SPDXRef-Package-itertools-0.11.0", + "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-derive-adhoc-macros-0.7.3" + "spdxElementId": "SPDXRef-Package-num-bigint-dig-0.8.4" }, { - "relatedSpdxElement": "SPDXRef-Package-crypto-bigint-0.5.5", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-elliptic-curve-0.13.8" + "spdxElementId": "SPDXRef-Package-async-trait-0.1.82" }, { - "relatedSpdxElement": "SPDXRef-Package-derive-adhoc-0.7.3", + "relatedSpdxElement": "SPDXRef-Package-indexmap-2.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-pwd-grp-0.1.1" + "spdxElementId": "SPDXRef-Package-derive-deftly-macros-0.14.2" }, { - "relatedSpdxElement": "SPDXRef-Package-base64ct-1.6.0", + "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" + "spdxElementId": "SPDXRef-Package-lzma-sys-0.1.20" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-persist-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-windows-targets-0.48.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-windows-sys-0.48.0" }, { - "relatedSpdxElement": "SPDXRef-Package-scopeguard-1.2.0", + "relatedSpdxElement": "SPDXRef-Package-async-trait-0.1.82", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-lock_api-0.4.12" + "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-keymgr-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-strum-0.26.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" + "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-tor-rtcompat-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-log-ratelim-0.24.0" }, { "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-safelog-0.4.1" + "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-rtcompat-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-safelog-0.4.1", + "relatedSpdxElement": "SPDXRef-Package-strum-0.26.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" + "spdxElementId": "SPDXRef-Package-derive_more-impl-1.0.0" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-tor-async-utils-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-displaydoc-0.2.5" + "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", + "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-curve25519-dalek-derive-0.1.1" + "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-android_system_properties-0.1.5", + "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-iana-time-zone-0.1.60" + "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-core-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-async-trait-0.1.82", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-async_executors-0.7.0" + "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-itoa-1.0.11", + "relatedSpdxElement": "SPDXRef-Package-httpdate-1.0.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-serde_json-1.0.128" + "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tokio-1.40.0", + "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-cgosling-0.3.1" + "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-tor-proto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-wasm-bindgen-macro-0.2.93" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-config-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-zerocopy-0.7.35", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-ahash-0.8.11" }, { - "relatedSpdxElement": "SPDXRef-Package-oneshot-fused-workaround-0.2.0", + "relatedSpdxElement": "SPDXRef-Package-safelog-0.4.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-socksproto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-dyn-clone-1.0.17", + "relatedSpdxElement": "SPDXRef-Package-itertools-0.13.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-bitflags-2.6.0", + "relatedSpdxElement": "SPDXRef-Package-openssl-sys-0.9.103", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-security-framework-2.11.1" + "spdxElementId": "SPDXRef-Package-openssl-0.10.66" }, { - "relatedSpdxElement": "SPDXRef-Package-downcast-rs-1.2.1", + "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-bytes-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-displaydoc-0.2.5", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_properties-1.5.1" + "spdxElementId": "SPDXRef-Package-wasm-bindgen-macro-support-0.2.93" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-futures-channel-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-synstructure-0.13.1" + "spdxElementId": "SPDXRef-Package-futures-0.3.30" }, { - "relatedSpdxElement": "SPDXRef-Package-static_assertions-1.1.0", + "relatedSpdxElement": "SPDXRef-Package-signature-2.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-postage-0.5.0" + "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", + "relatedSpdxElement": "SPDXRef-Package-foreign-types-0.3.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" + "spdxElementId": "SPDXRef-Package-openssl-0.10.66" }, { - "relatedSpdxElement": "SPDXRef-Package-memchr-2.7.4", + "relatedSpdxElement": "SPDXRef-Package-cpufeatures-0.2.13", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-async-compression-0.4.12" + "spdxElementId": "SPDXRef-Package-curve25519-dalek-4.1.3" }, { - "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", + "relatedSpdxElement": "SPDXRef-Package-errno-0.3.9", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" + "spdxElementId": "SPDXRef-Package-rustix-0.38.36" }, { - "relatedSpdxElement": "SPDXRef-Package-hex-0.4.3", + "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-strum_macros-0.25.3" }, { - "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", + "relatedSpdxElement": "SPDXRef-Package-visibility-0.1.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-pwd-grp-0.1.1" + "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-notify-types-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-getrandom-0.2.15", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-notify-7.0.0" + "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-caret-0.5.0", + "relatedSpdxElement": "SPDXRef-Package-darling_core-0.20.10", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-socksproto-0.24.0" + "spdxElementId": "SPDXRef-Package-darling_macro-0.20.10" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-zerocopy-derive-0.7.35" + "spdxElementId": "SPDXRef-Package-pin-project-internal-1.1.5" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-educe-0.4.23" + "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-either-1.13.0", + "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-cert-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-sink-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-displaydoc-0.2.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-futures-util-0.3.30" + "spdxElementId": "SPDXRef-Package-tinystr-0.7.6" }, { - "relatedSpdxElement": "SPDXRef-Package-ahash-0.8.11", + "relatedSpdxElement": "SPDXRef-Package-windows_aarch64_gnullvm-0.52.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-hashbrown-0.14.5" + "spdxElementId": "SPDXRef-Package-windows-targets-0.52.6" }, { - "relatedSpdxElement": "SPDXRef-Package-safelog-0.4.1", + "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-xz2-0.1.7", + "relatedSpdxElement": "SPDXRef-Package-tor-config-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-async-compression-0.4.12" + "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-curve25519-dalek-4.1.3", + "relatedSpdxElement": "SPDXRef-Package-sha1-0.10.6", "relationshipType": "DEPENDS_ON", "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-bitflags-2.6.0", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-redox_syscall-0.5.3" + "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" }, { - "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", + "relatedSpdxElement": "SPDXRef-Package-paste-1.0.15", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" + "spdxElementId": "SPDXRef-Package-slotmap-careful-0.2.1" }, { - "relatedSpdxElement": "SPDXRef-Package-generic-array-0.14.7", + "relatedSpdxElement": "SPDXRef-Package-thread_local-1.1.8", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-sec1-0.7.3" + "spdxElementId": "SPDXRef-Package-tracing-subscriber-0.3.18" }, { - "relatedSpdxElement": "SPDXRef-Package-uncased-0.9.10", + "relatedSpdxElement": "SPDXRef-Package-sanitize-filename-0.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-figment-0.10.19" + "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-1.0.109", + "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-educe-0.4.23" + "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-asn1-rs-0.6.2", + "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-der-parser-9.0.0" + "spdxElementId": "SPDXRef-Package-curve25519-dalek-derive-0.1.1" }, { - "relatedSpdxElement": "SPDXRef-Package-equivalent-1.0.1", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-indexmap-2.5.0" + "spdxElementId": "SPDXRef-Package-chrono-0.4.38" }, { - "relatedSpdxElement": "SPDXRef-Package-synstructure-0.13.1", + "relatedSpdxElement": "SPDXRef-Package-tor-hscrypto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-zerofrom-derive-0.1.4" + "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-primeorder-0.13.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-p384-0.13.0" }, { - "relatedSpdxElement": "SPDXRef-Package-base64ct-1.6.0", + "relatedSpdxElement": "SPDXRef-Package-tor-config-0.24.0", + "relationshipType": "DEPENDS_ON", + "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" + }, + { + "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", "relationshipType": "DEPENDS_ON", "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-basic-utils-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-displaydoc-0.2.5", + "relationshipType": "DEPENDS_ON", + "spdxElementId": "SPDXRef-Package-icu_locid_transform-1.5.0" + }, + { + "relatedSpdxElement": "SPDXRef-Package-base64ct-1.6.0", "relationshipType": "DEPENDS_ON", "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-windows_i686_gnu-0.52.6", + "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-windows-targets-0.52.6" + "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tempfile-3.12.0", + "relatedSpdxElement": "SPDXRef-Package-windows-sys-0.52.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-native-tls-0.2.12" + "spdxElementId": "SPDXRef-Package-notify-7.0.0" }, { - "relatedSpdxElement": "SPDXRef-Package-postage-0.5.0", + "relatedSpdxElement": "SPDXRef-Package-fs-mistrust-0.8.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-sha2-0.10.8", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-pin-project-internal-1.1.5" }, { - "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", + "relatedSpdxElement": "SPDXRef-Package-tor-units-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-safelog-0.4.1" + "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", + "relatedSpdxElement": "SPDXRef-Package-paste-1.0.15", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-pin-project-lite-0.2.14", + "relatedSpdxElement": "SPDXRef-Package-tor-persist-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tokio-util-0.7.12" + "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-itertools-0.13.0", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-derive-deftly-macros-0.14.2" + "spdxElementId": "SPDXRef-Package-tor-cert-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-base64ct-1.6.0", + "relatedSpdxElement": "SPDXRef-Package-generic-array-0.14.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" + "spdxElementId": "SPDXRef-Package-inout-0.1.3" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-bytes-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-native-tls-0.2.12", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-async-native-tls-0.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", "relationshipType": "DEPENDS_ON", "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-heck-0.4.1", + "relatedSpdxElement": "SPDXRef-Package-tor-basic-utils-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-strum_macros-0.25.3" + "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-bson-2.11.0", + "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-honk-rpc-0.3.0" + "spdxElementId": "SPDXRef-Package-parking_lot_core-0.9.10" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-cert-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-key-forge-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-bitflags-1.3.2", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-inotify-0.10.2" + "spdxElementId": "SPDXRef-Package-zerofrom-derive-0.1.4" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_builder_fork_arti-0.11.2", + "relatedSpdxElement": "SPDXRef-Package-tor-cell-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + }, + { + "relatedSpdxElement": "SPDXRef-Package-memchr-2.7.4", + "relationshipType": "DEPENDS_ON", + "spdxElementId": "SPDXRef-Package-futures-util-0.3.30" }, { - "relatedSpdxElement": "SPDXRef-Package-amplify-4.7.0", + "relatedSpdxElement": "SPDXRef-Package-rand_core-0.6.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-icu_normalizer_data-1.5.0", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_normalizer-1.5.0" + "spdxElementId": "SPDXRef-Package-tor-general-addr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-filetime-0.2.25" + "spdxElementId": "SPDXRef-Package-phf_generator-0.11.2" }, { - "relatedSpdxElement": "SPDXRef-Package-num_enum_derive-0.7.3", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-num_enum-0.7.3" + "spdxElementId": "SPDXRef-Package-tracing-attributes-0.1.27" }, { - "relatedSpdxElement": "SPDXRef-Package-rand_core-0.6.4", + "relatedSpdxElement": "SPDXRef-Package-humantime-2.1.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ff-0.13.0" + "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-honk-rpc-0.3.0", - "relationshipType": "GENERATED_FROM", - "spdxElementId": "SPDXRef-File-honk_rpc" + "relatedSpdxElement": "SPDXRef-Package-bytes-1.7.1", + "relationshipType": "DEPENDS_ON", + "spdxElementId": "SPDXRef-Package-asynchronous-codec-0.7.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-basic-utils-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-derive_builder_fork_arti-0.11.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-fs-mistrust-0.8.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-base64-0.13.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" + "spdxElementId": "SPDXRef-Package-bson-2.11.0" }, { - "relatedSpdxElement": "SPDXRef-Package-radium-0.7.0", + "relatedSpdxElement": "SPDXRef-Package-der-0.7.9", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-bitvec-1.0.1" + "spdxElementId": "SPDXRef-Package-pkcs1-0.7.5" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-sink-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-data-encoding-2.6.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-asynchronous-codec-0.7.0" + "spdxElementId": "SPDXRef-Package-data-encoding-macro-0.1.15" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-interface-0.4.0", + "relatedSpdxElement": "SPDXRef-Package-strum-0.26.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-gosling-0.3.0" + "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-windows-sys-0.59.0", + "relatedSpdxElement": "SPDXRef-Package-icu_properties-1.5.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tempfile-3.12.0" + "spdxElementId": "SPDXRef-Package-idna-1.0.2" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-tor-protover-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-basic-utils-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-minimal-lexical-0.2.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-nom-7.1.3" }, { - "relatedSpdxElement": "SPDXRef-Package-ff-0.13.0", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-elliptic-curve-0.13.8" + "spdxElementId": "SPDXRef-Package-tokio-macros-2.4.0" }, { - "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", + "relatedSpdxElement": "SPDXRef-Package-winapi-util-0.1.9", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" + "spdxElementId": "SPDXRef-Package-walkdir-2.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-amplify-4.7.0", + "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" + "spdxElementId": "SPDXRef-Package-safelog-0.4.1" }, { - "relatedSpdxElement": "SPDXRef-Package-const-oid-0.9.6", + "relatedSpdxElement": "SPDXRef-Package-log-0.4.22", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-rsa-0.9.6" + "spdxElementId": "SPDXRef-Package-notify-7.0.0" }, { - "relatedSpdxElement": "SPDXRef-Package-fs-mistrust-0.8.0", + "relatedSpdxElement": "SPDXRef-Package-scopeguard-1.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-lock_api-0.4.12" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-hscrypto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-openssl-0.10.66" }, { - "relatedSpdxElement": "SPDXRef-Package-zerovec-0.10.4", + "relatedSpdxElement": "SPDXRef-Package-wasix-0.12.21", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_locid_transform-1.5.0" + "spdxElementId": "SPDXRef-Package-coarsetime-0.1.34" }, { - "relatedSpdxElement": "SPDXRef-Package-sha2-0.10.8", + "relatedSpdxElement": "SPDXRef-Package-asynchronous-codec-0.7.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ssh-key-0.6.6" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-lzma-sys-0.1.20", + "relatedSpdxElement": "SPDXRef-Package-tokio-1.40.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-xz2-0.1.7" + "spdxElementId": "SPDXRef-Package-gosling-0.3.0" }, { - "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", + "relatedSpdxElement": "SPDXRef-Package-indexmap-2.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-error-0.24.0" + "spdxElementId": "SPDXRef-Package-toml_edit-0.19.15" }, { - "relatedSpdxElement": "SPDXRef-Package-time-0.3.36", + "relatedSpdxElement": "SPDXRef-Package-tokio-1.40.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-bson-2.11.0" + "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" }, { - "relatedSpdxElement": "SPDXRef-Package-oneshot-fused-workaround-0.2.0", + "relatedSpdxElement": "SPDXRef-Package-serde_spanned-0.6.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-toml_edit-0.22.20" }, { - "relatedSpdxElement": "SPDXRef-Package-safelog-0.4.1", + "relatedSpdxElement": "SPDXRef-Package-tokio-util-0.7.12", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-tor-interface-0.4.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-deranged-0.3.11" + "spdxElementId": "SPDXRef-Package-gosling-0.3.0" }, { - "relatedSpdxElement": "SPDXRef-Package-hmac-0.12.1", + "relatedSpdxElement": "SPDXRef-Package-generic-array-0.14.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-rfc6979-0.4.0" + "spdxElementId": "SPDXRef-Package-crypto-common-0.1.6" }, { - "relatedSpdxElement": "SPDXRef-Package-paste-1.0.15", + "relatedSpdxElement": "SPDXRef-Package-heck-0.4.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" + "spdxElementId": "SPDXRef-Package-derive-adhoc-0.7.3" }, { - "relatedSpdxElement": "SPDXRef-Package-serde_derive-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-bitflags-2.6.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-serde_with-3.9.0" + "spdxElementId": "SPDXRef-Package-rustix-0.38.36" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-bson-2.11.0" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" + "spdxElementId": "SPDXRef-Package-phf_macros-0.11.2" }, { - "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-cgosling-proc-macros-0.0.0" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-darling-0.14.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-key-forge-0.24.0" + "spdxElementId": "SPDXRef-Package-derive_builder_core_fork_arti-0.11.2" }, { - "relatedSpdxElement": "SPDXRef-Package-bstr-1.10.0", + "relatedSpdxElement": "SPDXRef-Package-tor-linkspec-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-shellexpand-3.1.0" + "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-octseq-0.5.1", + "relatedSpdxElement": "SPDXRef-Package-time-0.3.36", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-domain-0.10.0" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-windows-sys-0.52.0", + "relatedSpdxElement": "SPDXRef-Package-rsa-0.9.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-home-0.5.9" + "spdxElementId": "SPDXRef-Package-ssh-key-0.6.6" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-units-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-rand_core-0.6.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" + "spdxElementId": "SPDXRef-Package-elliptic-curve-0.13.8" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-core-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-notify-7.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tokio-util-0.7.12" + "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-rtcompat-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tor-basic-utils-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-bumpalo-3.16.0", + "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-wasm-bindgen-backend-0.2.93" + "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-zerovec-0.10.4", + "relatedSpdxElement": "SPDXRef-Package-hashlink-0.9.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_normalizer-1.5.0" + "spdxElementId": "SPDXRef-Package-rusqlite-0.32.1" }, { - "relatedSpdxElement": "SPDXRef-Package-indexmap-2.5.0", + "relatedSpdxElement": "SPDXRef-Package-writeable-0.5.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-serde_json-1.0.128" + "spdxElementId": "SPDXRef-Package-icu_locid-1.5.0" }, { "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-num_enum_derive-0.7.3" + "spdxElementId": "SPDXRef-Package-strum_macros-0.26.4" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-util-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-asynchronous-codec-0.7.0" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-proto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-wasm-bindgen-0.2.93", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-amplify_num-0.5.3" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-keymgr-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" + "spdxElementId": "SPDXRef-Package-inotify-sys-0.1.5" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_builder_fork_arti-0.11.2", + "relatedSpdxElement": "SPDXRef-Package-ecdsa-0.16.9", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-p256-0.13.2" }, { - "relatedSpdxElement": "SPDXRef-Package-subtle-2.6.1", + "relatedSpdxElement": "SPDXRef-Package-tinystr-0.7.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-curve25519-dalek-4.1.3" + "spdxElementId": "SPDXRef-Package-icu_provider-1.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-humantime-2.1.0", + "relatedSpdxElement": "SPDXRef-Package-tap-1.0.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-checkable-0.24.0" + "spdxElementId": "SPDXRef-Package-bitvec-1.0.1" }, { - "relatedSpdxElement": "SPDXRef-Package-async-trait-0.1.82", + "relatedSpdxElement": "SPDXRef-Package-fs-mistrust-0.8.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-nom-7.1.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-der-parser-9.0.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-hscrypto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-kqueue-sys-1.0.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" + "spdxElementId": "SPDXRef-Package-kqueue-1.0.8" }, { - "relatedSpdxElement": "SPDXRef-Package-hex-0.4.3", + "relatedSpdxElement": "SPDXRef-Package-coarsetime-0.1.34", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", + "relatedSpdxElement": "SPDXRef-Package-tor-persist-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-derive-deftly-macros-0.14.2" + "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-downcast-rs-1.2.1", + "relatedSpdxElement": "SPDXRef-Package-idna-1.0.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-async-utils-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-powerfmt-0.2.0", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-time-0.3.36" + "spdxElementId": "SPDXRef-Package-syn-2.0.77" }, { - "relatedSpdxElement": "SPDXRef-Package-displaydoc-0.2.5", + "relatedSpdxElement": "SPDXRef-Package-tor-general-addr-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_locid_transform-1.5.0" + "spdxElementId": "SPDXRef-Package-tor-rtcompat-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-icu_locid_transform_data-1.5.0", + "relatedSpdxElement": "SPDXRef-Package-elliptic-curve-0.13.8", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_locid_transform-1.5.0" + "spdxElementId": "SPDXRef-Package-primeorder-0.13.6" }, { - "relatedSpdxElement": "SPDXRef-Package-signature-1.6.4", + "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" + "spdxElementId": "SPDXRef-Package-tor-bytes-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-ssh-encoding-0.2.0", + "relatedSpdxElement": "SPDXRef-Package-syn-1.0.109", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ssh-key-0.6.6" + "spdxElementId": "SPDXRef-Package-darling_macro-0.14.4" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", + "relatedSpdxElement": "SPDXRef-Package-hermit-abi-0.3.9", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-zerocopy-derive-0.7.35" + "spdxElementId": "SPDXRef-Package-mio-1.0.2" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-strum-0.26.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-log-ratelim-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-error-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-windows_i686_gnullvm-0.52.6", + "relatedSpdxElement": "SPDXRef-Package-scopeguard-1.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-windows-targets-0.52.6" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-concurrent-queue-2.5.0", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-event-listener-5.3.1" + "spdxElementId": "SPDXRef-Package-fs-mistrust-0.8.0" }, { - "relatedSpdxElement": "SPDXRef-Package-yoke-0.7.4", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_collections-1.5.0" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-zeroize_derive-1.4.2", + "relatedSpdxElement": "SPDXRef-Package-humantime-2.1.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-zeroize-1.8.1" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-postage-0.5.0", + "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-lazy_static-1.5.0", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-num-bigint-dig-0.8.4" + "spdxElementId": "SPDXRef-Package-darling_macro-0.14.4" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-linkspec-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-wasm-bindgen-macro-support-0.2.93" }, { - "relatedSpdxElement": "SPDXRef-Package-libredox-0.1.3", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-redox_users-0.4.6" + "spdxElementId": "SPDXRef-Package-derive-adhoc-macros-0.7.3" }, { - "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", + "relatedSpdxElement": "SPDXRef-Package-dyn-clone-1.0.17", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-coarsetime-0.1.34" + "spdxElementId": "SPDXRef-Package-tor-rtcompat-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-unicode-ident-1.0.12", + "relatedSpdxElement": "SPDXRef-Package-mio-1.0.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-syn-1.0.109" + "spdxElementId": "SPDXRef-Package-tokio-1.40.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tinyvec_macros-0.1.1", + "relatedSpdxElement": "SPDXRef-Package-futures-task-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tinyvec-1.8.0" + "spdxElementId": "SPDXRef-Package-futures-0.3.30" }, { - "relatedSpdxElement": "SPDXRef-Package-retry-error-0.6.0", + "relatedSpdxElement": "SPDXRef-Package-regex-automata-0.4.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" + "spdxElementId": "SPDXRef-Package-regex-1.10.6" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-async-utils-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-object-0.36.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-backtrace-0.3.73" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-config-path-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" + "spdxElementId": "SPDXRef-Package-asn1-rs-derive-0.5.1" }, { - "relatedSpdxElement": "SPDXRef-Package-lazy_static-1.5.0", + "relatedSpdxElement": "SPDXRef-Package-security-framework-sys-2.11.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-sharded-slab-0.1.7" + "spdxElementId": "SPDXRef-Package-native-tls-0.2.12" }, { - "relatedSpdxElement": "SPDXRef-Package-bitflags-1.3.2", + "relatedSpdxElement": "SPDXRef-Package-syn-1.0.109", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-kqueue-sys-1.0.4" + "spdxElementId": "SPDXRef-Package-amplify_syn-2.0.1" }, { - "relatedSpdxElement": "SPDXRef-Package-darling_core-0.20.10", + "relatedSpdxElement": "SPDXRef-Package-curve25519-dalek-derive-0.1.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-darling_macro-0.20.10" + "spdxElementId": "SPDXRef-Package-curve25519-dalek-4.1.3" }, { - "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", + "relatedSpdxElement": "SPDXRef-Package-tor-protover-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-rsa-0.9.6" + "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-netdoc-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-zerovec-0.10.4", + "relatedSpdxElement": "SPDXRef-Package-tor-protover-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_provider-1.5.0" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-zerocopy-0.7.35", + "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ahash-0.8.11" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-pin-project-1.1.5", + "relatedSpdxElement": "SPDXRef-Package-caret-0.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-postage-0.5.0" + "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-tor-keymgr-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-spki-0.7.3", + "relatedSpdxElement": "SPDXRef-Package-tor-interface-0.4.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-rsa-0.9.6" + "spdxElementId": "SPDXRef-Package-cgosling-0.3.1" }, { - "relatedSpdxElement": "SPDXRef-Package-memchr-2.7.4", + "relatedSpdxElement": "SPDXRef-Package-num-conv-0.1.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-os_str_bytes-6.6.1" + "spdxElementId": "SPDXRef-Package-time-macros-0.2.18" }, { - "relatedSpdxElement": "SPDXRef-Package-signature-2.2.0", + "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", + "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-curve25519-dalek-derive-0.1.1" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-overload-0.1.1", + "relatedSpdxElement": "SPDXRef-Package-subtle-2.6.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-nu-ansi-term-0.46.0" + "spdxElementId": "SPDXRef-Package-tor-socksproto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-derive-deftly-macros-0.14.2", + "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-derive-deftly-0.14.2" + "spdxElementId": "SPDXRef-Package-fslock-0.2.1" }, { - "relatedSpdxElement": "SPDXRef-Package-utf16_iter-1.0.5", + "relatedSpdxElement": "SPDXRef-Package-tor-basic-utils-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_normalizer-1.5.0" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", + "relatedSpdxElement": "SPDXRef-Package-pkcs8-0.10.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-num-bigint-dig-0.8.4" + "spdxElementId": "SPDXRef-Package-sec1-0.7.3" }, { - "relatedSpdxElement": "SPDXRef-Package-safelog-0.4.1", + "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" + "spdxElementId": "SPDXRef-Package-asn1-rs-impl-0.2.0" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-itertools-0.13.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-zerofrom-derive-0.1.4" + "spdxElementId": "SPDXRef-Package-derive-deftly-macros-0.14.2" }, { - "relatedSpdxElement": "SPDXRef-Package-windows_x86_64_gnu-0.48.5", + "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-windows-targets-0.48.5" + "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", + "relatedSpdxElement": "SPDXRef-Package-wasm-bindgen-0.2.93", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-asn1-rs-impl-0.2.0" + "spdxElementId": "SPDXRef-Package-getrandom-0.2.15" }, { - "relatedSpdxElement": "SPDXRef-Package-signature-2.2.0", + "relatedSpdxElement": "SPDXRef-Package-ecdsa-0.16.9", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-checkable-0.24.0" + "spdxElementId": "SPDXRef-Package-p521-0.13.3" }, { - "relatedSpdxElement": "SPDXRef-Package-elliptic-curve-0.13.8", + "relatedSpdxElement": "SPDXRef-Package-serde_with-3.9.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-p521-0.13.3" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tracing-attributes-0.1.27", + "relatedSpdxElement": "SPDXRef-Package-itoa-1.0.11", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tracing-0.1.40" + "spdxElementId": "SPDXRef-Package-serde_json-1.0.128" }, { - "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", + "relatedSpdxElement": "SPDXRef-Package-heck-0.5.0", "relationshipType": "DEPENDS_ON", "spdxElementId": "SPDXRef-Package-derive-deftly-macros-0.14.2" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-memquota-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tor-bytes-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", + "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-zerovec-derive-0.10.3" + "spdxElementId": "SPDXRef-Package-errno-0.3.9" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" + "spdxElementId": "SPDXRef-Package-darling_macro-0.20.10" }, { - "relatedSpdxElement": "SPDXRef-Package-zerovec-0.10.4", + "relatedSpdxElement": "SPDXRef-Package-num_enum_derive-0.7.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_locid-1.5.0" + "spdxElementId": "SPDXRef-Package-num_enum-0.7.3" }, { - "relatedSpdxElement": "SPDXRef-Package-miniz_oxide-0.7.4", + "relatedSpdxElement": "SPDXRef-Package-oneshot-fused-workaround-0.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-backtrace-0.3.73" + "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-cipher-0.4.4", + "relatedSpdxElement": "SPDXRef-Package-humantime-2.1.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ctr-0.9.2" + "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-aho-corasick-1.1.3", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-regex-1.10.6" + "spdxElementId": "SPDXRef-Package-enum-ordinalize-3.1.15" }, { - "relatedSpdxElement": "SPDXRef-Package-elliptic-curve-0.13.8", + "relatedSpdxElement": "SPDXRef-Package-native-tls-0.2.12", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-primeorder-0.13.6" + "spdxElementId": "SPDXRef-Package-tor-rtcompat-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-num_enum-0.6.1", + "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-gosling-0.3.0" + "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-smallvec-1.13.2", + "relatedSpdxElement": "SPDXRef-Package-bstr-1.10.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-idna-1.0.2" + "spdxElementId": "SPDXRef-Package-shellexpand-3.1.0" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-pin-project-1.1.5", "relationshipType": "DEPENDS_ON", "spdxElementId": "SPDXRef-Package-tor-rtcompat-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-amplify_syn-2.0.1" + "spdxElementId": "SPDXRef-Package-tor-config-path-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-visibility-0.1.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-utf8_iter-1.0.4", + "relatedSpdxElement": "SPDXRef-Package-subtle-2.6.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-idna-1.0.2" + "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-fnv-1.0.7", + "relatedSpdxElement": "SPDXRef-Package-static_assertions-1.1.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-darling_core-0.14.4" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-zstd-safe-7.2.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-num_enum_derive-0.6.1" + "spdxElementId": "SPDXRef-Package-async-compression-0.4.12" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", + "relatedSpdxElement": "SPDXRef-Package-zstd-0.13.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-asn1-rs-derive-0.5.1" + "spdxElementId": "SPDXRef-Package-async-compression-0.4.12" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-rtcompat-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tor-basic-utils-0.24.0", "relationshipType": "DEPENDS_ON", "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", + "relatedSpdxElement": "SPDXRef-Package-zerovec-0.10.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" + "spdxElementId": "SPDXRef-Package-icu_normalizer-1.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-generic-array-0.14.7", + "relatedSpdxElement": "SPDXRef-Package-tor-config-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-crypto-bigint-0.5.5" + "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-ecdsa-0.16.9", + "relatedSpdxElement": "SPDXRef-Package-crypto-common-0.1.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-p521-0.13.3" + "spdxElementId": "SPDXRef-Package-cipher-0.4.4" }, { - "relatedSpdxElement": "SPDXRef-Package-safelog-0.4.1", + "relatedSpdxElement": "SPDXRef-Package-radium-0.7.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-bitvec-1.0.1" }, { - "relatedSpdxElement": "SPDXRef-Package-bitflags-2.6.0", + "relatedSpdxElement": "SPDXRef-Package-strsim-0.11.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-notify-7.0.0" + "spdxElementId": "SPDXRef-Package-darling_core-0.20.10" }, { - "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", + "relatedSpdxElement": "SPDXRef-Package-tor-hscrypto-0.24.0", "relationshipType": "DEPENDS_ON", "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-amplify-4.7.0", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-yoke-0.7.4" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-1.0.109", + "relatedSpdxElement": "SPDXRef-Package-tor-rtcompat-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-darling_macro-0.14.4" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", + "relatedSpdxElement": "SPDXRef-Package-proc-macro-crate-3.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-darling_macro-0.20.10" + "spdxElementId": "SPDXRef-Package-num_enum_derive-0.7.3" }, { - "relatedSpdxElement": "SPDXRef-Package-winapi-0.3.9", + "relatedSpdxElement": "SPDXRef-Package-zerofrom-0.1.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-socks-0.3.4" + "spdxElementId": "SPDXRef-Package-icu_provider-1.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-x25519-dalek-2.0.1", + "relatedSpdxElement": "SPDXRef-Package-windows_x86_64_gnullvm-0.48.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-windows-targets-0.48.5" }, { - "relatedSpdxElement": "SPDXRef-Package-num-integer-0.1.46", + "relatedSpdxElement": "SPDXRef-Package-smallvec-1.13.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-num-iter-0.1.45" + "spdxElementId": "SPDXRef-Package-icu_normalizer-1.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-channel-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-futures-0.3.30" + "spdxElementId": "SPDXRef-Package-tempfile-3.12.0" }, { - "relatedSpdxElement": "SPDXRef-Package-notify-7.0.0", + "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" + "spdxElementId": "SPDXRef-Package-rustix-0.38.36" }, { - "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tempfile-3.12.0" + "spdxElementId": "SPDXRef-Package-k12-0.3.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-config-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tor-bytes-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" + "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-heck-0.4.1", + "relatedSpdxElement": "SPDXRef-Package-valuable-0.1.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-derive-adhoc-0.7.3" + "spdxElementId": "SPDXRef-Package-tracing-core-0.1.32" }, { - "relatedSpdxElement": "SPDXRef-Package-http-1.1.0", + "relatedSpdxElement": "SPDXRef-Package-tor-bytes-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-sha2-0.10.8", + "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-p384-0.13.0" + "spdxElementId": "SPDXRef-Package-merlin-3.0.0" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-derive_builder_fork_arti-0.11.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-syn-2.0.77" + "spdxElementId": "SPDXRef-Package-tor-cert-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-indexmap-2.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" + "spdxElementId": "SPDXRef-Package-toml_edit-0.22.20" }, { - "relatedSpdxElement": "SPDXRef-Package-postage-0.5.0", + "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-cipher-0.4.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-syn-1.0.109" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", + "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-derive-adhoc-macros-0.7.3" + "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-spki-0.7.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-async-utils-0.24.0" + "spdxElementId": "SPDXRef-Package-pkcs8-0.10.2" }, { - "relatedSpdxElement": "SPDXRef-Package-bytes-1.7.1", + "relatedSpdxElement": "SPDXRef-Package-core-foundation-sys-0.8.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-bytes-0.24.0" + "spdxElementId": "SPDXRef-Package-core-foundation-0.9.4" }, { - "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", + "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-elliptic-curve-0.13.8" + "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-wasi-0.11.0+wasi-snapshot-preview1", + "relatedSpdxElement": "SPDXRef-Package-tor-linkspec-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-getrandom-0.2.15" + "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-basic-utils-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-wyz-0.5.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" + "spdxElementId": "SPDXRef-Package-bitvec-1.0.1" }, { - "relatedSpdxElement": "SPDXRef-Package-caret-0.5.0", + "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-async-utils-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-async-trait-0.1.82", + "relatedSpdxElement": "SPDXRef-Package-icu_provider-1.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-rtcompat-0.24.0" + "spdxElementId": "SPDXRef-Package-icu_normalizer-1.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-itoa-1.0.11", + "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-time-0.3.36" + "spdxElementId": "SPDXRef-Package-thiserror-impl-1.0.63" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-general-addr-0.24.0" + "spdxElementId": "SPDXRef-Package-thiserror-impl-1.0.63" }, { - "relatedSpdxElement": "SPDXRef-Package-synstructure-0.13.1", + "relatedSpdxElement": "SPDXRef-Package-tor-memquota-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-yoke-derive-0.7.4" + "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tracing-core-0.1.32", + "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tracing-log-0.2.0" + "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", + "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tracing-core-0.1.32" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-smallvec-1.13.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-curve25519-dalek-derive-0.1.1" + "spdxElementId": "SPDXRef-Package-parking_lot_core-0.9.10" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-netdir-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-slab-0.4.9", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" + "spdxElementId": "SPDXRef-Package-futures-util-0.3.30" }, { - "relatedSpdxElement": "SPDXRef-Package-toml-0.8.19", + "relatedSpdxElement": "SPDXRef-Package-num-traits-0.2.19", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-figment-0.10.19" + "spdxElementId": "SPDXRef-Package-der-parser-9.0.0" }, { "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-derive-adhoc-macros-0.7.3" + "spdxElementId": "SPDXRef-Package-amplify_syn-2.0.1" }, { - "relatedSpdxElement": "SPDXRef-Package-strum-0.26.3", + "relatedSpdxElement": "SPDXRef-Package-wasm-bindgen-0.2.93", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-js-sys-0.3.70" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tor-config-0.24.0", "relationshipType": "DEPENDS_ON", "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-fs-mistrust-0.8.0", + "relatedSpdxElement": "SPDXRef-Package-tor-basic-utils-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-hex-0.4.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-consdiff-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-byteorder-1.5.0", + "relatedSpdxElement": "SPDXRef-Package-windows-sys-0.59.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-zerocopy-0.7.35" + "spdxElementId": "SPDXRef-Package-tempfile-3.12.0" }, { - "relatedSpdxElement": "SPDXRef-Package-typed-index-collections-3.1.0", + "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-cert-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-linkspec-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tor-persist-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" + }, + { + "relatedSpdxElement": "SPDXRef-Package-xxhash-rust-0.8.12", + "relationshipType": "DEPENDS_ON", + "spdxElementId": "SPDXRef-Package-growable-bloom-filter-2.1.0" }, { "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-libredox-0.1.3" + "spdxElementId": "SPDXRef-Package-socks-0.3.4" }, { "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", @@ -9346,119 +9286,129 @@ "spdxElementId": "SPDXRef-Package-tracing-log-0.2.0" }, { - "relatedSpdxElement": "SPDXRef-Package-unicode-ident-1.0.12", + "relatedSpdxElement": "SPDXRef-Package-const-oid-0.9.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-syn-2.0.77" + "spdxElementId": "SPDXRef-Package-digest-0.10.7" }, { - "relatedSpdxElement": "SPDXRef-Package-tokio-1.40.0", + "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tokio-stream-0.1.16" + "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-async-native-tls-0.5.0", + "relatedSpdxElement": "SPDXRef-Package-coarsetime-0.1.34", "relationshipType": "DEPENDS_ON", "spdxElementId": "SPDXRef-Package-tor-rtcompat-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-sha1-0.10.6", + "relatedSpdxElement": "SPDXRef-Package-p384-0.13.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-ssh-key-0.6.6" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-basic-utils-0.24.0" + "spdxElementId": "SPDXRef-Package-synstructure-0.13.1" }, { - "relatedSpdxElement": "SPDXRef-Package-libm-0.2.8", + "relatedSpdxElement": "SPDXRef-Package-tor-dirclient-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-num-bigint-dig-0.8.4" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-schannel-0.1.23", + "relatedSpdxElement": "SPDXRef-Package-data-encoding-macro-internal-0.1.13", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-native-tls-0.2.12" + "spdxElementId": "SPDXRef-Package-data-encoding-macro-0.1.15" }, { - "relatedSpdxElement": "SPDXRef-Package-percent-encoding-2.3.1", + "relatedSpdxElement": "SPDXRef-Package-displaydoc-0.2.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-form_urlencoded-1.2.1" + "spdxElementId": "SPDXRef-Package-icu_collections-1.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-ident_case-1.0.1", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-darling_core-0.20.10" + "spdxElementId": "SPDXRef-Package-syn-1.0.109" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-tracing-subscriber-0.3.18", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-serde_derive-1.0.209" + "spdxElementId": "SPDXRef-Package-tracing-test-0.2.5" }, { - "relatedSpdxElement": "SPDXRef-Package-foreign-types-shared-0.1.1", + "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-foreign-types-0.3.2" + "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-util-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-merlin-3.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-async-native-tls-0.5.0" + "spdxElementId": "SPDXRef-Package-ed25519-dalek-2.1.1" }, { - "relatedSpdxElement": "SPDXRef-Package-zerofrom-0.1.4", + "relatedSpdxElement": "SPDXRef-Package-futures-core-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-yoke-0.7.4" + "spdxElementId": "SPDXRef-Package-futures-executor-0.3.30" }, { - "relatedSpdxElement": "SPDXRef-Package-pin-project-1.1.5", + "relatedSpdxElement": "SPDXRef-Package-tor-hscrypto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-netdir-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-paste-1.0.15", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-relay-selection-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" }, { "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-rtcompat-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-humantime-2.1.0", + "relatedSpdxElement": "SPDXRef-Package-async-trait-0.1.82", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-parking-2.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-num_enum_derive-0.6.1" + "spdxElementId": "SPDXRef-Package-event-listener-5.3.1" }, { - "relatedSpdxElement": "SPDXRef-Package-heck-0.5.0", + "relatedSpdxElement": "SPDXRef-Package-itertools-0.13.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-derive-deftly-macros-0.14.2" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-nom-7.1.3", + "relatedSpdxElement": "SPDXRef-Package-memchr-2.7.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-asn1-rs-0.6.2" + "spdxElementId": "SPDXRef-Package-serde_json-1.0.128" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-tor-keymgr-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-derive_more-impl-1.0.0" + "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-async_executors-0.7.0", + "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-rtcompat-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-cell-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", + "relationshipType": "DEPENDS_ON", + "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" + }, + { + "relatedSpdxElement": "SPDXRef-Package-curve25519-dalek-4.1.3", + "relationshipType": "DEPENDS_ON", + "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" + }, + { + "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" }, { "relatedSpdxElement": "SPDXRef-Package-fslock-guard-0.2.0", @@ -9466,3664 +9416,3709 @@ "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", + "relatedSpdxElement": "SPDXRef-Package-inotify-sys-0.1.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-serde_derive-1.0.209" + "spdxElementId": "SPDXRef-Package-inotify-0.10.2" }, { - "relatedSpdxElement": "SPDXRef-Package-js-sys-0.3.70", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-getrandom-0.2.15" + "spdxElementId": "SPDXRef-Package-asn1-rs-derive-0.5.1" }, { - "relatedSpdxElement": "SPDXRef-Package-strum-0.26.3", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" + "spdxElementId": "SPDXRef-Package-blanket-0.3.0" }, { - "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-fslock-0.2.1" + "spdxElementId": "SPDXRef-Package-humantime-serde-1.1.1" }, { - "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", + "relatedSpdxElement": "SPDXRef-Package-windows-sys-0.52.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-mio-1.0.2" }, { - "relatedSpdxElement": "SPDXRef-Package-humantime-2.1.0", + "relatedSpdxElement": "SPDXRef-Package-tor-cert-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-pin-project-lite-0.2.14", + "relatedSpdxElement": "SPDXRef-Package-tor-netdoc-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-event-listener-5.3.1" + "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-zstd-sys-2.0.13+zstd.1.5.6", + "relatedSpdxElement": "SPDXRef-Package-convert_case-0.6.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-zstd-safe-7.2.1" + "spdxElementId": "SPDXRef-Package-derive_more-impl-1.0.0" }, { - "relatedSpdxElement": "SPDXRef-Package-rand_core-0.6.4", + "relatedSpdxElement": "SPDXRef-Package-tor-persist-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-elliptic-curve-0.13.8" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-ssh-key-0.6.6", + "relatedSpdxElement": "SPDXRef-Package-safelog-0.4.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-key-forge-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-rtcompat-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-lzma-sys-0.1.20", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-xz2-0.1.7" }, { - "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", + "relatedSpdxElement": "SPDXRef-Package-dirs-sys-0.4.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-dirs-sys-0.4.1" + "spdxElementId": "SPDXRef-Package-dirs-5.0.1" }, { - "relatedSpdxElement": "SPDXRef-Package-icu_collections-1.5.0", + "relatedSpdxElement": "SPDXRef-Package-fnv-1.0.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_properties-1.5.1" + "spdxElementId": "SPDXRef-Package-http-1.1.0" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-tor-key-forge-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-async-trait-0.1.82" + "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-memmap2-0.9.4" + "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-postage-0.5.0", + "relatedSpdxElement": "SPDXRef-Package-const-oid-0.9.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" + "spdxElementId": "SPDXRef-Package-rsa-0.9.6" }, { - "relatedSpdxElement": "SPDXRef-Package-subtle-2.6.1", + "relatedSpdxElement": "SPDXRef-Package-toml-0.8.19", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-der-0.7.9", + "relatedSpdxElement": "SPDXRef-Package-enum-ordinalize-3.1.15", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-pkcs8-0.10.2" + "spdxElementId": "SPDXRef-Package-educe-0.4.23" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-num-integer-0.1.46", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" + "spdxElementId": "SPDXRef-Package-num-bigint-0.4.6" }, { - "relatedSpdxElement": "SPDXRef-Package-subtle-2.6.1", + "relatedSpdxElement": "SPDXRef-Package-atomic-0.6.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-figment-0.10.19" }, { - "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", + "relatedSpdxElement": "SPDXRef-Package-winapi-x86_64-pc-windows-gnu-0.4.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-basic-utils-0.24.0" + "spdxElementId": "SPDXRef-Package-winapi-0.3.9" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-linkspec-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-consdiff-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-keccak-0.1.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-enum-ordinalize-3.1.15" + "spdxElementId": "SPDXRef-Package-sha3-0.10.8" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-data-encoding-2.6.0", + "relatedSpdxElement": "SPDXRef-Package-os_str_bytes-6.6.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" + "spdxElementId": "SPDXRef-Package-shellexpand-3.1.0" }, { - "relatedSpdxElement": "SPDXRef-Package-smallvec-1.13.2", + "relatedSpdxElement": "SPDXRef-Package-either-1.13.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-rusqlite-0.32.1" + "spdxElementId": "SPDXRef-Package-itertools-0.13.0" }, { - "relatedSpdxElement": "SPDXRef-Package-p384-0.13.0", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ssh-key-0.6.6" + "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-subtle-2.6.1", + "relatedSpdxElement": "SPDXRef-Package-winapi-0.3.9", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ff-0.13.0" + "spdxElementId": "SPDXRef-Package-fslock-0.2.1" }, { - "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", + "relatedSpdxElement": "SPDXRef-Package-itoa-1.0.11", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" + "spdxElementId": "SPDXRef-Package-http-1.1.0" }, { - "relatedSpdxElement": "SPDXRef-Package-darling_core-0.20.10", + "relatedSpdxElement": "SPDXRef-Package-num-traits-0.2.19", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-darling-0.20.10" + "spdxElementId": "SPDXRef-Package-enum-ordinalize-3.1.15" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-bitflags-1.3.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-num_enum_derive-0.7.3" + "spdxElementId": "SPDXRef-Package-kqueue-sys-1.0.4" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-tor-basic-utils-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-units-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tracing-log-0.2.0", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tracing-subscriber-0.3.18" + "spdxElementId": "SPDXRef-Package-pwd-grp-0.1.1" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-toml-0.8.19" + "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", + "relatedSpdxElement": "SPDXRef-Package-signature-2.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-gosling-0.3.0" + "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-security-framework-2.11.1", + "relatedSpdxElement": "SPDXRef-Package-priority-queue-2.1.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-native-tls-0.2.12" + "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-winnow-0.6.18", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tracing-attributes-0.1.27" + "spdxElementId": "SPDXRef-Package-toml_edit-0.22.20" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-displaydoc-0.2.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-relay-selection-0.24.0" + "spdxElementId": "SPDXRef-Package-der-parser-9.0.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-chanmgr-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tor-hsclient-0.24.0", "relationshipType": "DEPENDS_ON", "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", + "relatedSpdxElement": "SPDXRef-Package-signature-2.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" + "spdxElementId": "SPDXRef-Package-ssh-key-0.6.6" }, { - "relatedSpdxElement": "SPDXRef-Package-unicode-ident-1.0.12", + "relatedSpdxElement": "SPDXRef-Package-phf_shared-0.11.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-proc-macro2-1.0.86" + "spdxElementId": "SPDXRef-Package-phf_macros-0.11.2" }, { - "relatedSpdxElement": "SPDXRef-Package-serde_json-1.0.128", + "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-bson-2.11.0" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-oneshot-fused-workaround-0.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-static_assertions-1.1.0", + "relatedSpdxElement": "SPDXRef-Package-wasm-bindgen-0.2.93", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-amplify-4.7.0" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", + "relatedSpdxElement": "SPDXRef-Package-ahash-0.8.11", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-cgosling-proc-macros-0.0.0" + "spdxElementId": "SPDXRef-Package-bson-2.11.0" }, { - "relatedSpdxElement": "SPDXRef-Package-gosling-0.3.0", + "relatedSpdxElement": "SPDXRef-Package-socks-0.3.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-cgosling-0.3.1" + "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" }, { - "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", + "relatedSpdxElement": "SPDXRef-Package-flate2-1.0.33", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" + "spdxElementId": "SPDXRef-Package-async-compression-0.4.12" }, { - "relatedSpdxElement": "SPDXRef-Package-getrandom-0.2.15", + "relatedSpdxElement": "SPDXRef-Package-itertools-0.13.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-bytes-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-paste-1.0.15", + "relatedSpdxElement": "SPDXRef-Package-windows-sys-0.52.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-rtcompat-0.24.0" + "spdxElementId": "SPDXRef-Package-socket2-0.5.7" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-basic-utils-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tor-config-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-toml_edit-0.22.20", + "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-toml-0.8.19" + "spdxElementId": "SPDXRef-Package-wasm-bindgen-0.2.93" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-parking_lot-0.12.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" + "spdxElementId": "SPDXRef-Package-tokio-1.40.0" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-tor-circmgr-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-safelog-0.4.1" + "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-itertools-0.13.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-walkdir-2.5.0", + "relatedSpdxElement": "SPDXRef-Package-utf8_iter-1.0.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" + "spdxElementId": "SPDXRef-Package-idna-1.0.2" }, { - "relatedSpdxElement": "SPDXRef-Package-wasm-bindgen-0.2.93", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-amplify-4.7.0" + "spdxElementId": "SPDXRef-Package-displaydoc-0.2.5" }, { - "relatedSpdxElement": "SPDXRef-Package-async-trait-0.1.82", + "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-elliptic-curve-0.13.8" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-1.0.109", + "relatedSpdxElement": "SPDXRef-Package-tor-bytes-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-amplify_derive-4.0.1" + "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-basic-utils-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-toml-0.8.19" }, { - "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", + "relatedSpdxElement": "SPDXRef-Package-utf16_iter-1.0.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" + "spdxElementId": "SPDXRef-Package-icu_normalizer-1.5.0" + }, + { + "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", + "relationshipType": "DEPENDS_ON", + "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" }, { "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro-crate-1.3.1", + "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-num_enum_derive-0.6.1" + "spdxElementId": "SPDXRef-Package-filetime-0.2.25" + }, + { + "relatedSpdxElement": "SPDXRef-Package-honk-rpc-0.3.0", + "relationshipType": "GENERATED_FROM", + "spdxElementId": "SPDXRef-File-honk_rpc" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-log-ratelim-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-zerocopy-derive-0.7.35", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-zerocopy-0.7.35" }, { - "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-units-0.24.0" + "spdxElementId": "SPDXRef-Package-yoke-derive-0.7.4" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-key-forge-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-hmac-0.12.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" + "spdxElementId": "SPDXRef-Package-rfc6979-0.4.0" }, { - "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", + "relatedSpdxElement": "SPDXRef-Package-hostname-validator-1.1.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" + "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-futures-sink-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-pwd-grp-0.1.1" + "spdxElementId": "SPDXRef-Package-futures-channel-0.3.30" }, { - "relatedSpdxElement": "SPDXRef-Package-tinystr-0.7.6", + "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_provider-1.5.0" + "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-memchr-2.7.4", + "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-winnow-0.6.18" + "spdxElementId": "SPDXRef-Package-sha3-0.10.8" }, { - "relatedSpdxElement": "SPDXRef-Package-icu_locid-1.5.0", + "relatedSpdxElement": "SPDXRef-Package-futures-util-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_provider-1.5.0" + "spdxElementId": "SPDXRef-Package-async_executors-0.7.0" }, { - "relatedSpdxElement": "SPDXRef-Package-windows-sys-0.48.0", + "relatedSpdxElement": "SPDXRef-Package-powerfmt-0.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-dirs-sys-0.4.1" + "spdxElementId": "SPDXRef-Package-time-0.3.36" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-1.0.109", + "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-amplify_syn-2.0.1" + "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tokio-1.40.0", + "relatedSpdxElement": "SPDXRef-Package-sha1-0.10.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" }, { - "relatedSpdxElement": "SPDXRef-Package-fs-mistrust-0.8.0", + "relatedSpdxElement": "SPDXRef-Package-tinyvec_macros-0.1.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" + "spdxElementId": "SPDXRef-Package-tinyvec-1.8.0" }, { - "relatedSpdxElement": "SPDXRef-Package-base64ct-1.6.0", + "relatedSpdxElement": "SPDXRef-Package-p256-0.13.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-spki-0.7.3" + "spdxElementId": "SPDXRef-Package-ssh-key-0.6.6" }, { - "relatedSpdxElement": "SPDXRef-Package-equivalent-1.0.1", + "relatedSpdxElement": "SPDXRef-Package-cpufeatures-0.2.13", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-priority-queue-2.1.0" + "spdxElementId": "SPDXRef-Package-keccak-0.1.5" }, { - "relatedSpdxElement": "SPDXRef-Package-windows_x86_64_msvc-0.48.5", + "relatedSpdxElement": "SPDXRef-Package-num-traits-0.2.19", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-windows-targets-0.48.5" + "spdxElementId": "SPDXRef-Package-asn1-rs-0.6.2" }, { - "relatedSpdxElement": "SPDXRef-Package-displaydoc-0.2.5", + "relatedSpdxElement": "SPDXRef-Package-smallvec-1.13.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tinystr-0.7.6" + "spdxElementId": "SPDXRef-Package-num-bigint-dig-0.8.4" }, { - "relatedSpdxElement": "SPDXRef-Package-cpufeatures-0.2.13", + "relatedSpdxElement": "SPDXRef-Package-tor-socksproto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-curve25519-dalek-4.1.3" + "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-dirs-5.0.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" + "spdxElementId": "SPDXRef-Package-shellexpand-3.1.0" }, { - "relatedSpdxElement": "SPDXRef-Package-indexmap-2.5.0", + "relatedSpdxElement": "SPDXRef-Package-percent-encoding-2.3.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-derive-deftly-macros-0.14.2" + "spdxElementId": "SPDXRef-Package-url-2.5.2" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-tor-proto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-linkspec-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-fiat-crypto-0.2.9", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" + "spdxElementId": "SPDXRef-Package-curve25519-dalek-4.1.3" }, { - "relatedSpdxElement": "SPDXRef-Package-pkcs1-0.7.5", + "relatedSpdxElement": "SPDXRef-Package-retry-error-0.6.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-rsa-0.9.6" + "spdxElementId": "SPDXRef-Package-tor-error-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-cipher-0.4.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-phf_macros-0.11.2" + "spdxElementId": "SPDXRef-Package-aes-0.8.4" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", + "relatedSpdxElement": "SPDXRef-Package-pkcs8-0.10.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-phf_macros-0.11.2" + "spdxElementId": "SPDXRef-Package-ed25519-2.2.3" }, { - "relatedSpdxElement": "SPDXRef-Package-bytes-1.7.1", + "relatedSpdxElement": "SPDXRef-Package-paste-1.0.15", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-asynchronous-codec-0.7.0" + "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-winapi-0.3.9", + "relatedSpdxElement": "SPDXRef-Package-walkdir-2.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-fslock-arti-fork-0.2.0" + "spdxElementId": "SPDXRef-Package-notify-7.0.0" }, { - "relatedSpdxElement": "SPDXRef-Package-growable-bloom-filter-2.1.0", + "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-config-path-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-stable_deref_trait-1.2.0", + "relatedSpdxElement": "SPDXRef-Package-futures-io-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-yoke-0.7.4" + "spdxElementId": "SPDXRef-Package-tokio-util-0.7.12" }, { - "relatedSpdxElement": "SPDXRef-Package-windows-sys-0.52.0", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-rustix-0.38.36" + "spdxElementId": "SPDXRef-Package-serde_with_macros-3.9.0" }, { - "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-kqueue-1.0.8" + "spdxElementId": "SPDXRef-Package-zerovec-derive-0.10.3" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro-crate-1.3.1", + "relatedSpdxElement": "SPDXRef-Package-tor-rtcompat-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-derive-adhoc-macros-0.7.3" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-cookie-factory-0.3.3", + "relatedSpdxElement": "SPDXRef-Package-yoke-0.7.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-der-parser-9.0.0" + "spdxElementId": "SPDXRef-Package-zerovec-0.10.4" }, { - "relatedSpdxElement": "SPDXRef-Package-num-traits-0.2.19", + "relatedSpdxElement": "SPDXRef-Package-humantime-2.1.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-num-bigint-dig-0.8.4" + "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-form_urlencoded-1.2.1", + "relatedSpdxElement": "SPDXRef-Package-base64ct-1.6.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-url-2.5.2" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-sec1-0.7.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-darling_macro-0.20.10" + "spdxElementId": "SPDXRef-Package-elliptic-curve-0.13.8" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-gosling-0.3.0", + "relationshipType": "GENERATED_FROM", + "spdxElementId": "SPDXRef-File-gosling" + }, + { + "relatedSpdxElement": "SPDXRef-Package-rand_chacha-0.3.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-num_enum_derive-0.7.3" + "spdxElementId": "SPDXRef-Package-tor-basic-utils-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-bounded-vec-deque-0.1.1", + "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", "relationshipType": "DEPENDS_ON", "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-safelog-0.4.1", + "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-generic-array-0.14.7", + "relatedSpdxElement": "SPDXRef-Package-crypto-common-0.1.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-block-buffer-0.10.4" + "spdxElementId": "SPDXRef-Package-digest-0.10.7" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-netdir-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-slab-0.4.9", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-basic-utils-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-async-utils-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-serde_json-1.0.128", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" + "spdxElementId": "SPDXRef-Package-serde_with-3.9.0" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-thiserror-impl-1.0.63" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-either-1.13.0", + "relatedSpdxElement": "SPDXRef-Package-tokio-stream-0.1.16", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-itertools-0.13.0" + "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" }, { - "relatedSpdxElement": "SPDXRef-Package-which-4.4.2", + "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-cgosling-0.3.1" + "spdxElementId": "SPDXRef-Package-num-bigint-dig-0.8.4" }, { - "relatedSpdxElement": "SPDXRef-Package-wasm-bindgen-shared-0.2.93", + "relatedSpdxElement": "SPDXRef-Package-tor-general-addr-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-wasm-bindgen-backend-0.2.93" + "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" + "spdxElementId": "SPDXRef-Package-wasm-bindgen-0.2.93" }, { - "relatedSpdxElement": "SPDXRef-Package-async-trait-0.1.82", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" + "spdxElementId": "SPDXRef-Package-futures-macro-0.3.30" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tor-cell-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" }, { - "relatedSpdxElement": "SPDXRef-Package-signature-2.2.0", + "relatedSpdxElement": "SPDXRef-Package-serde_json-1.0.128", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" + "spdxElementId": "SPDXRef-Package-bson-2.11.0" }, { - "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-fs-mistrust-0.8.0" + "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-der-0.7.9", + "relatedSpdxElement": "SPDXRef-Package-bitflags-1.3.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-sec1-0.7.3" + "spdxElementId": "SPDXRef-Package-inotify-0.10.2" }, { - "relatedSpdxElement": "SPDXRef-Package-gosling-0.3.0", - "relationshipType": "GENERATED_FROM", - "spdxElementId": "SPDXRef-File-gosling" + "relatedSpdxElement": "SPDXRef-Package-amplify-4.7.0", + "relationshipType": "DEPENDS_ON", + "spdxElementId": "SPDXRef-Package-tor-socksproto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-subtle-2.6.1", + "relatedSpdxElement": "SPDXRef-Package-itertools-0.13.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-digest-0.10.7" + "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-idna-0.5.0", + "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-url-2.5.2" + "spdxElementId": "SPDXRef-Package-synstructure-0.13.1" }, { - "relatedSpdxElement": "SPDXRef-Package-sha3-0.10.8", + "relatedSpdxElement": "SPDXRef-Package-base64ct-1.6.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-k12-0.3.0" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-derive-adhoc-macros-0.7.3", + "relatedSpdxElement": "SPDXRef-Package-icu_properties_data-1.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-derive-adhoc-0.7.3" + "spdxElementId": "SPDXRef-Package-icu_properties-1.5.1" }, { - "relatedSpdxElement": "SPDXRef-Package-typenum-1.17.0", + "relatedSpdxElement": "SPDXRef-Package-cpufeatures-0.2.13", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-generic-array-0.14.7" + "spdxElementId": "SPDXRef-Package-sha1-0.10.6" }, { - "relatedSpdxElement": "SPDXRef-Package-oneshot-fused-workaround-0.2.0", + "relatedSpdxElement": "SPDXRef-Package-cookie-factory-0.3.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-der-parser-9.0.0" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-derive_builder_macro_fork_arti-0.11.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-derive-deftly-macros-0.14.2" + "spdxElementId": "SPDXRef-Package-derive_builder_fork_arti-0.11.2" }, { - "relatedSpdxElement": "SPDXRef-Package-time-core-0.1.2", + "relatedSpdxElement": "SPDXRef-Package-sha2-0.10.8", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-time-0.3.36" + "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", + "relatedSpdxElement": "SPDXRef-Package-tor-checkable-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-cert-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-unicode-bidi-0.3.15", + "relatedSpdxElement": "SPDXRef-Package-iana-time-zone-0.1.60", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-idna-0.5.0" + "spdxElementId": "SPDXRef-Package-chrono-0.4.38" }, { - "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", + "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-sha1-0.10.6" + "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", + "relatedSpdxElement": "SPDXRef-Package-derive_builder_core_fork_arti-0.11.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-merlin-3.0.0" + "spdxElementId": "SPDXRef-Package-derive_builder_macro_fork_arti-0.11.2" }, { - "relatedSpdxElement": "SPDXRef-Package-windows_i686_msvc-0.48.5", + "relatedSpdxElement": "SPDXRef-Package-arti-client-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-windows-targets-0.48.5" + "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-blanket-0.3.0" + "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-cert-0.24.0" + "spdxElementId": "SPDXRef-Package-zeroize_derive-1.4.2" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", + "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-wasm-bindgen-backend-0.2.93" + "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-strum-0.26.3", + "relatedSpdxElement": "SPDXRef-Package-tor-bytes-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-derive-deftly-macros-0.14.2" + "spdxElementId": "SPDXRef-Package-tor-cert-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-keccak-0.1.5", + "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-merlin-3.0.0" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-memquota-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-socksproto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-relay-selection-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-config-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-downcast-rs-1.2.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", + "relatedSpdxElement": "SPDXRef-Package-crossbeam-utils-0.8.20", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" + "spdxElementId": "SPDXRef-Package-concurrent-queue-2.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-bytes-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-thread_local-1.1.8" + "spdxElementId": "SPDXRef-Package-serde-value-0.7.0" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-option-ext-0.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-quote-1.0.37" + "spdxElementId": "SPDXRef-Package-dirs-sys-0.4.1" }, { - "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", + "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-parking_lot_core-0.9.10" + "spdxElementId": "SPDXRef-Package-backtrace-0.3.73" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-util-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-futures-executor-0.3.30" + "spdxElementId": "SPDXRef-Package-ecdsa-0.16.9" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-proto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-elliptic-curve-0.13.8" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-zerocopy-derive-0.7.35" }, { - "relatedSpdxElement": "SPDXRef-Package-bytes-1.7.1", + "relatedSpdxElement": "SPDXRef-Package-tor-keymgr-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-http-1.1.0" + "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" }, { - "relatedSpdxElement": "SPDXRef-Package-ecdsa-0.16.9", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-p256-0.13.2" + "spdxElementId": "SPDXRef-Package-bson-2.11.0" }, { - "relatedSpdxElement": "SPDXRef-Package-k12-0.3.0", + "relatedSpdxElement": "SPDXRef-Package-rand_core-0.6.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-merlin-3.0.0" }, { - "relatedSpdxElement": "SPDXRef-Package-pin-project-lite-0.2.14", + "relatedSpdxElement": "SPDXRef-Package-safelog-0.4.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tokio-stream-0.1.16" + "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" }, { "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-key-forge-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-amplify-4.7.0", + "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" }, { "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_provider_macros-1.5.0" - }, - { - "relatedSpdxElement": "SPDXRef-Package-derive_builder_core_fork_arti-0.11.2", - "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-derive_builder_macro_fork_arti-0.11.2" + "spdxElementId": "SPDXRef-Package-zeroize_derive-1.4.2" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-proto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-fnv-1.0.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-darling_core-0.14.4" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-cell-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tor-hsservice-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-rtcompat-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-sha2-0.10.8", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-log-ratelim-0.24.0" + "spdxElementId": "SPDXRef-Package-ed25519-dalek-2.1.1" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-notify-types-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-notify-7.0.0" }, { - "relatedSpdxElement": "SPDXRef-Package-base16ct-0.2.0", + "relatedSpdxElement": "SPDXRef-Package-tor-config-path-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-p521-0.13.3" + "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-static_assertions-1.1.0", + "relatedSpdxElement": "SPDXRef-Package-pkcs8-0.10.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-cgosling-0.3.1" + "spdxElementId": "SPDXRef-Package-rsa-0.9.6" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-amplify-4.7.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-asn1-rs-impl-0.2.0" + "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-regex-syntax-0.6.29", + "relatedSpdxElement": "SPDXRef-Package-tor-basic-utils-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-regex-automata-0.1.10" + "spdxElementId": "SPDXRef-Package-tor-relay-selection-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-bytes-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-zerovec-0.10.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" + "spdxElementId": "SPDXRef-Package-icu_properties-1.5.1" }, { - "relatedSpdxElement": "SPDXRef-Package-primeorder-0.13.6", + "relatedSpdxElement": "SPDXRef-Package-signature-2.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-p256-0.13.2" + "spdxElementId": "SPDXRef-Package-ecdsa-0.16.9" }, { - "relatedSpdxElement": "SPDXRef-Package-visibility-0.1.1", + "relatedSpdxElement": "SPDXRef-Package-icu_provider_macros-1.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-icu_provider-1.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-hex-0.4.3", + "relatedSpdxElement": "SPDXRef-Package-tor-dirclient-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tracing-core-0.1.32", + "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tracing-0.1.40" + "spdxElementId": "SPDXRef-Package-ssh-key-0.6.6" }, { - "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", + "relatedSpdxElement": "SPDXRef-Package-windows_x86_64_gnullvm-0.52.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-windows-targets-0.52.6" }, { - "relatedSpdxElement": "SPDXRef-Package-generic-array-0.14.7", + "relatedSpdxElement": "SPDXRef-Package-postage-0.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-elliptic-curve-0.13.8" + "spdxElementId": "SPDXRef-Package-tor-async-utils-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-units-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-smallvec-1.13.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-yoke-0.7.4", + "relatedSpdxElement": "SPDXRef-Package-tor-basic-utils-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_provider-1.5.0" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", + "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-notify-7.0.0" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-windows_x86_64_gnullvm-0.48.5", + "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-windows-targets-0.48.5" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-matchers-0.1.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-log-ratelim-0.24.0" + "spdxElementId": "SPDXRef-Package-tracing-subscriber-0.3.18" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-proto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-winapi-0.3.9", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-socks-0.3.4" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-walkdir-2.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-general-addr-0.24.0" + "spdxElementId": "SPDXRef-Package-fs-mistrust-0.8.0" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-rtmock-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" }, { "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-subtle-2.6.1", + "relatedSpdxElement": "SPDXRef-Package-gimli-0.29.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-group-0.13.0" + "spdxElementId": "SPDXRef-Package-addr2line-0.22.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-log-ratelim-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-percent-encoding-2.3.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-form_urlencoded-1.2.1" }, { - "relatedSpdxElement": "SPDXRef-Package-subtle-2.6.1", + "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ssh-key-0.6.6" + "spdxElementId": "SPDXRef-Package-memmap2-0.9.4" }, { - "relatedSpdxElement": "SPDXRef-Package-openssl-macros-0.1.1", + "relatedSpdxElement": "SPDXRef-Package-derive_builder_fork_arti-0.11.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-openssl-0.10.66" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-wasm-bindgen-macro-0.2.93", + "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-wasm-bindgen-0.2.93" + "spdxElementId": "SPDXRef-Package-backtrace-0.3.73" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-basic-utils-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-windows-targets-0.52.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" + "spdxElementId": "SPDXRef-Package-parking_lot_core-0.9.10" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-amplify_derive-4.0.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" + "spdxElementId": "SPDXRef-Package-amplify-4.7.0" }, { - "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", + "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" + "spdxElementId": "SPDXRef-Package-sha1-0.10.6" }, { - "relatedSpdxElement": "SPDXRef-Package-num_enum-0.7.3", + "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-key-forge-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-hmac-0.12.1", + "relatedSpdxElement": "SPDXRef-Package-fnv-1.0.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-darling_core-0.20.10" }, { - "relatedSpdxElement": "SPDXRef-Package-hashlink-0.9.1", + "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-rusqlite-0.32.1" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-hex-0.4.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-winapi-util-0.1.9", + "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-walkdir-2.5.0" + "spdxElementId": "SPDXRef-Package-zerovec-derive-0.10.3" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-basic-utils-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-rand_core-0.6.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" + "spdxElementId": "SPDXRef-Package-ed25519-dalek-2.1.1" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-value-0.7.0", + "relatedSpdxElement": "SPDXRef-Package-amplify_syn-2.0.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" + "spdxElementId": "SPDXRef-Package-amplify_derive-4.0.1" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-sink-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-futures-channel-0.3.30" + "spdxElementId": "SPDXRef-Package-wasm-bindgen-backend-0.2.93" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-memquota-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-ident_case-1.0.1", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-darling_core-0.14.4" + "spdxElementId": "SPDXRef-Package-synstructure-0.13.1" }, { - "relatedSpdxElement": "SPDXRef-Package-num-integer-0.1.46", + "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-rsa-0.9.6" + "spdxElementId": "SPDXRef-Package-sha2-0.10.8" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-anyhow-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-cgosling-0.3.1" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-tor-log-ratelim-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-asn1-rs-derive-0.5.1" + "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-rand_chacha-0.3.1", + "relatedSpdxElement": "SPDXRef-Package-wasm-bindgen-macro-0.2.93", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-basic-utils-0.24.0" + "spdxElementId": "SPDXRef-Package-wasm-bindgen-0.2.93" }, { - "relatedSpdxElement": "SPDXRef-Package-smallvec-1.13.2", + "relatedSpdxElement": "SPDXRef-Package-tor-linkspec-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-basic-utils-0.24.0" + "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-signature-2.2.0", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-rsa-0.9.6" + "spdxElementId": "SPDXRef-Package-slotmap-careful-0.2.1" }, { - "relatedSpdxElement": "SPDXRef-Package-bytemuck-1.18.0", + "relatedSpdxElement": "SPDXRef-Package-time-0.3.36", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-atomic-0.6.0" + "spdxElementId": "SPDXRef-Package-bson-2.11.0" }, { - "relatedSpdxElement": "SPDXRef-Package-postage-0.5.0", + "relatedSpdxElement": "SPDXRef-Package-tor-netdir-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-async-utils-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-ed25519-2.2.3", + "relatedSpdxElement": "SPDXRef-Package-serde_derive-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ed25519-dalek-2.1.1" + "spdxElementId": "SPDXRef-Package-growable-bloom-filter-2.1.0" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-gosling-0.3.0" + "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-tor-units-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-syn-1.0.109" + "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", + "relatedSpdxElement": "SPDXRef-Package-slotmap-1.0.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tracing-core-0.1.32" + "spdxElementId": "SPDXRef-Package-slotmap-careful-0.2.1" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-channel-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-futures-util-0.3.30" + "spdxElementId": "SPDXRef-Package-time-0.3.36" }, { - "relatedSpdxElement": "SPDXRef-Package-paste-1.0.15", + "relatedSpdxElement": "SPDXRef-Package-oneshot-fused-workaround-0.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-pwd-grp-0.1.1" + "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-inotify-0.10.2", + "relatedSpdxElement": "SPDXRef-Package-rand_core-0.6.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-notify-7.0.0" + "spdxElementId": "SPDXRef-Package-p521-0.13.3" }, { - "relatedSpdxElement": "SPDXRef-Package-tokio-1.40.0", + "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-rtcompat-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-error-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-directories-5.0.1", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-config-path-0.24.0" + "spdxElementId": "SPDXRef-Package-derive-deftly-macros-0.14.2" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-num-traits-0.2.19", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-async-native-tls-0.5.0" + "spdxElementId": "SPDXRef-Package-num-bigint-dig-0.8.4" }, { - "relatedSpdxElement": "SPDXRef-Package-darling-0.20.10", + "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-serde_with_macros-3.9.0" + "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-humantime-2.1.0", + "relatedSpdxElement": "SPDXRef-Package-tor-netdir-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-hex-0.4.3", + "relatedSpdxElement": "SPDXRef-Package-paste-1.0.15", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-key-forge-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-byteorder-1.5.0", + "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-num-bigint-dig-0.8.4" + "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-netdoc-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-libredox-0.1.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" + "spdxElementId": "SPDXRef-Package-filetime-0.2.25" }, { - "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-postage-0.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-backtrace-0.3.73" + "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", + "relatedSpdxElement": "SPDXRef-Package-amplify-4.7.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-rustix-0.38.36" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-serde_spanned-0.6.7" }, { - "relatedSpdxElement": "SPDXRef-Package-nu-ansi-term-0.46.0", + "relatedSpdxElement": "SPDXRef-Package-futures-util-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tracing-subscriber-0.3.18" + "spdxElementId": "SPDXRef-Package-async-native-tls-0.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_builder_fork_arti-0.11.2", + "relatedSpdxElement": "SPDXRef-Package-tor-hscrypto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", + "relatedSpdxElement": "SPDXRef-Package-windows_x86_64_msvc-0.48.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" + "spdxElementId": "SPDXRef-Package-windows-targets-0.48.5" }, { - "relatedSpdxElement": "SPDXRef-Package-indexmap-2.5.0", + "relatedSpdxElement": "SPDXRef-Package-heck-0.4.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-bson-2.11.0" + "spdxElementId": "SPDXRef-Package-derive-adhoc-macros-0.7.3" }, { - "relatedSpdxElement": "SPDXRef-Package-downcast-rs-1.2.1", + "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-key-forge-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-basic-utils-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-inventory-0.3.15", + "relatedSpdxElement": "SPDXRef-Package-tor-hscrypto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-zerovec-0.10.4", + "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_collections-1.5.0" + "spdxElementId": "SPDXRef-Package-tor-basic-utils-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-arrayvec-0.7.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-aes-0.8.4" + "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_builder_fork_arti-0.11.2", + "relatedSpdxElement": "SPDXRef-Package-openssl-0.10.66", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-native-tls-0.2.12" }, { - "relatedSpdxElement": "SPDXRef-Package-socket2-0.5.7", + "relatedSpdxElement": "SPDXRef-Package-humantime-2.1.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tokio-1.40.0" + "spdxElementId": "SPDXRef-Package-tor-log-ratelim-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-bstr-1.10.0" + "spdxElementId": "SPDXRef-Package-tor-rtcompat-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-oneshot-fused-workaround-0.2.0", + "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-which-4.4.2" }, { - "relatedSpdxElement": "SPDXRef-Package-windows-targets-0.48.5", + "relatedSpdxElement": "SPDXRef-Package-itertools-0.13.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-windows-sys-0.48.0" + "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-native-tls-0.2.12", + "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-rtcompat-0.24.0" + "spdxElementId": "SPDXRef-Package-icu_provider_macros-1.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-crc32fast-1.4.2", + "relatedSpdxElement": "SPDXRef-Package-rand_core-0.6.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-flate2-1.0.33" + "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" }, { - "relatedSpdxElement": "SPDXRef-Package-wasm-bindgen-0.2.93", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-amplify_num-0.5.3" + "spdxElementId": "SPDXRef-Package-serde_ignored-0.1.10" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-rtcompat-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-pin-project-lite-0.2.14", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tokio-util-0.7.12" }, { - "relatedSpdxElement": "SPDXRef-Package-dyn-clone-1.0.17", + "relatedSpdxElement": "SPDXRef-Package-pin-project-1.1.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-rtcompat-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-async-utils-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-basic-utils-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-wasm-bindgen-0.2.93", + "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-coarsetime-0.1.34" + "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-futures-sink-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-derive-deftly-macros-0.14.2" + "spdxElementId": "SPDXRef-Package-tokio-util-0.7.12" }, { - "relatedSpdxElement": "SPDXRef-Package-windows-targets-0.52.6", + "relatedSpdxElement": "SPDXRef-Package-pin-project-1.1.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-parking_lot_core-0.9.10" + "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-bytes-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" + "spdxElementId": "SPDXRef-Package-openssl-macros-0.1.1" }, { - "relatedSpdxElement": "SPDXRef-Package-subtle-2.6.1", + "relatedSpdxElement": "SPDXRef-Package-bitflags-2.6.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ed25519-dalek-2.1.1" + "spdxElementId": "SPDXRef-Package-rusqlite-0.32.1" }, { - "relatedSpdxElement": "SPDXRef-Package-walkdir-2.5.0", + "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-fs-mistrust-0.8.0" + "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-pin-project-1.1.5", + "relatedSpdxElement": "SPDXRef-Package-tor-hscrypto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-async-utils-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" + "spdxElementId": "SPDXRef-Package-redox_users-0.4.6" }, { - "relatedSpdxElement": "SPDXRef-Package-pin-project-1.1.5", + "relatedSpdxElement": "SPDXRef-Package-amplify-4.7.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-windows_aarch64_msvc-0.52.6", + "relatedSpdxElement": "SPDXRef-Package-tor-hscrypto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-windows-targets-0.52.6" + "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-sha2-0.10.8", + "relatedSpdxElement": "SPDXRef-Package-indexmap-2.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-rsa-0.9.6" + "spdxElementId": "SPDXRef-Package-serde_with-3.9.0" }, { - "relatedSpdxElement": "SPDXRef-Package-hermit-abi-0.3.9", + "relatedSpdxElement": "SPDXRef-Package-toml_datetime-0.6.8", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-mio-1.0.2" + "spdxElementId": "SPDXRef-Package-toml_edit-0.19.15" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-cell-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-core-foundation-sys-0.8.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" + "spdxElementId": "SPDXRef-Package-iana-time-zone-0.1.60" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-pkcs8-0.10.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" + "spdxElementId": "SPDXRef-Package-pkcs1-0.7.5" }, { - "relatedSpdxElement": "SPDXRef-Package-spki-0.7.3", + "relatedSpdxElement": "SPDXRef-Package-tor-hscrypto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-pkcs8-0.10.2" + "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_builder_fork_arti-0.11.2", + "relatedSpdxElement": "SPDXRef-Package-tor-hscrypto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-key-forge-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-os_str_bytes-6.6.1", + "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-shellexpand-3.1.0" + "spdxElementId": "SPDXRef-Package-tor-error-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-instant-0.1.13", + "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-notify-types-1.0.0" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-core-foundation-sys-0.8.7", + "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-security-framework-sys-2.11.1" + "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-serde_with_macros-3.9.0" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-protover-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-static_assertions-1.1.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-cgosling-0.3.1" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-async-compression-0.4.12", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-zeroize_derive-1.4.2" + "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-subtle-2.6.1", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-rsa-0.9.6" + "spdxElementId": "SPDXRef-Package-honk-rpc-0.3.0" }, { - "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", + "relatedSpdxElement": "SPDXRef-Package-slotmap-careful-0.2.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-android_system_properties-0.1.5" + "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", + "relatedSpdxElement": "SPDXRef-Package-futures-core-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-cert-0.24.0" + "spdxElementId": "SPDXRef-Package-futures-channel-0.3.30" }, { - "relatedSpdxElement": "SPDXRef-Package-base64ct-1.6.0", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-serde_json-1.0.128", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-caret-0.5.0", + "relatedSpdxElement": "SPDXRef-Package-sha2-0.10.8", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" + "spdxElementId": "SPDXRef-Package-p521-0.13.3" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-wasm-bindgen-macro-support-0.2.93" + "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-android-tzdata-0.1.1", + "relatedSpdxElement": "SPDXRef-Package-num-conv-0.1.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-chrono-0.4.38" + "spdxElementId": "SPDXRef-Package-time-0.3.36" }, { - "relatedSpdxElement": "SPDXRef-Package-phf-0.11.2", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" + "spdxElementId": "SPDXRef-Package-fslock-guard-0.2.0" }, { - "relatedSpdxElement": "SPDXRef-Package-strum_macros-0.25.3", + "relatedSpdxElement": "SPDXRef-Package-derive_builder_fork_arti-0.11.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-strum-0.25.0" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-bitvec-1.0.1", + "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-general-addr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-rand_core-0.6.4", + "relatedSpdxElement": "SPDXRef-Package-zerocopy-0.7.35", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-rsa-0.9.6" + "spdxElementId": "SPDXRef-Package-ppv-lite86-0.2.20" }, { - "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", + "relatedSpdxElement": "SPDXRef-Package-zerofrom-0.1.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-backtrace-0.3.73" + "spdxElementId": "SPDXRef-Package-zerovec-0.10.4" }, { - "relatedSpdxElement": "SPDXRef-Package-slab-0.4.9", + "relatedSpdxElement": "SPDXRef-Package-tor-async-utils-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-basic-utils-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-smallvec-1.13.2", + "relatedSpdxElement": "SPDXRef-Package-pin-project-1.1.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-parking_lot_core-0.9.10" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-paste-1.0.15", + "relatedSpdxElement": "SPDXRef-Package-memchr-2.7.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" + "spdxElementId": "SPDXRef-Package-winnow-0.6.18" }, { - "relatedSpdxElement": "SPDXRef-Package-toml_datetime-0.6.8", + "relatedSpdxElement": "SPDXRef-Package-rustix-0.38.36", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-toml-0.8.19" + "spdxElementId": "SPDXRef-Package-which-4.4.2" }, { - "relatedSpdxElement": "SPDXRef-Package-rand_core-0.6.4", + "relatedSpdxElement": "SPDXRef-Package-ed25519-2.2.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-merlin-3.0.0" + "spdxElementId": "SPDXRef-Package-ed25519-dalek-2.1.1" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", + "relatedSpdxElement": "SPDXRef-Package-octseq-0.5.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-strum_macros-0.25.3" + "spdxElementId": "SPDXRef-Package-domain-0.10.0" }, { - "relatedSpdxElement": "SPDXRef-Package-asn1-rs-impl-0.2.0", + "relatedSpdxElement": "SPDXRef-Package-lazy_static-1.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-asn1-rs-0.6.2" + "spdxElementId": "SPDXRef-Package-num-bigint-dig-0.8.4" }, { - "relatedSpdxElement": "SPDXRef-Package-windows-targets-0.52.6", + "relatedSpdxElement": "SPDXRef-Package-home-0.5.9", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-windows-core-0.52.0" + "spdxElementId": "SPDXRef-Package-which-4.4.2" }, { - "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", + "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-domain-0.10.0" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-sink-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-futures-0.3.30" + "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-regex-1.10.6", + "relatedSpdxElement": "SPDXRef-Package-equivalent-1.0.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tracing-subscriber-0.3.18" + "spdxElementId": "SPDXRef-Package-indexmap-2.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-async-utils-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tokio-macros-2.4.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tokio-1.40.0" }, { - "relatedSpdxElement": "SPDXRef-Package-itertools-0.13.0", + "relatedSpdxElement": "SPDXRef-Package-tor-circmgr-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" + "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-arti-client-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-hscrypto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-static_assertions-1.1.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-icu_provider-1.5.0", + "relatedSpdxElement": "SPDXRef-Package-log-0.4.22", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_properties-1.5.1" + "spdxElementId": "SPDXRef-Package-tracing-log-0.2.0" }, { - "relatedSpdxElement": "SPDXRef-Package-icu_locid_transform-1.5.0", + "relatedSpdxElement": "SPDXRef-Package-futures-sink-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_properties-1.5.1" + "spdxElementId": "SPDXRef-Package-asynchronous-codec-0.7.0" }, { - "relatedSpdxElement": "SPDXRef-Package-humantime-2.1.0", + "relatedSpdxElement": "SPDXRef-Package-tracing-core-0.1.32", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" + "spdxElementId": "SPDXRef-Package-tracing-test-0.2.5" }, { - "relatedSpdxElement": "SPDXRef-Package-openssl-sys-0.9.103", + "relatedSpdxElement": "SPDXRef-Package-derive_builder_fork_arti-0.11.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-openssl-0.10.66" + "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-strum-0.26.3", + "relatedSpdxElement": "SPDXRef-Package-tor-config-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-smallvec-1.13.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-openssl-0.10.66" + "spdxElementId": "SPDXRef-Package-idna-1.0.2" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-derive_builder_fork_arti-0.11.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-sec1-0.7.3", + "relatedSpdxElement": "SPDXRef-Package-tor-linkspec-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-elliptic-curve-0.13.8" + "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-rustix-0.38.36", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-which-4.4.2" + "spdxElementId": "SPDXRef-Package-strum_macros-0.25.3" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-keccak-0.1.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-strum_macros-0.25.3" + "spdxElementId": "SPDXRef-Package-merlin-3.0.0" }, { - "relatedSpdxElement": "SPDXRef-Package-errno-0.3.9", + "relatedSpdxElement": "SPDXRef-Package-base64ct-1.6.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-rustix-0.38.36" + "spdxElementId": "SPDXRef-Package-spki-0.7.3" }, { - "relatedSpdxElement": "SPDXRef-Package-darling-0.14.4", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-derive_builder_core_fork_arti-0.11.2" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-tinystr-0.7.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-darling_core-0.20.10" + "spdxElementId": "SPDXRef-Package-icu_properties-1.5.1" }, { - "relatedSpdxElement": "SPDXRef-Package-core-foundation-0.9.4", + "relatedSpdxElement": "SPDXRef-Package-zerofrom-0.1.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-security-framework-2.11.1" + "spdxElementId": "SPDXRef-Package-icu_collections-1.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-asn1-rs-impl-0.2.0" + "spdxElementId": "SPDXRef-Package-oneshot-fused-workaround-0.2.0" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", + "relatedSpdxElement": "SPDXRef-Package-heck-0.4.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-visibility-0.1.1" + "spdxElementId": "SPDXRef-Package-strum_macros-0.25.3" }, { "relatedSpdxElement": "SPDXRef-Package-bytes-1.7.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-domain-0.10.0" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-base64ct-1.6.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tracing-test-macro-0.2.5" + "spdxElementId": "SPDXRef-Package-pem-rfc7468-0.7.0" }, { - "relatedSpdxElement": "SPDXRef-Package-humantime-serde-1.1.1", + "relatedSpdxElement": "SPDXRef-Package-tor-netdir-0.24.0", "relationshipType": "DEPENDS_ON", "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", + "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-general-addr-0.24.0" + "spdxElementId": "SPDXRef-Package-async-trait-0.1.82" }, { - "relatedSpdxElement": "SPDXRef-Package-subtle-2.6.1", + "relatedSpdxElement": "SPDXRef-Package-tor-async-utils-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-sec1-0.7.3" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", + "relatedSpdxElement": "SPDXRef-Package-signature-2.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-ed25519-2.2.3" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-tor-async-utils-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-zeroize_derive-1.4.2" + "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-heck-0.5.0", + "relatedSpdxElement": "SPDXRef-Package-equivalent-1.0.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-derive-deftly-0.14.2" + "spdxElementId": "SPDXRef-Package-priority-queue-2.1.0" }, { - "relatedSpdxElement": "SPDXRef-Package-either-1.13.0", + "relatedSpdxElement": "SPDXRef-Package-smallvec-1.13.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" + "spdxElementId": "SPDXRef-Package-rusqlite-0.32.1" }, { - "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-crypto-bigint-0.5.5" + "spdxElementId": "SPDXRef-Package-growable-bloom-filter-2.1.0" }, { - "relatedSpdxElement": "SPDXRef-Package-sha2-0.10.8", + "relatedSpdxElement": "SPDXRef-Package-tor-rtcompat-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ssh-encoding-0.2.0" + "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" }, { - "relatedSpdxElement": "SPDXRef-Package-writeable-0.5.5", + "relatedSpdxElement": "SPDXRef-Package-subtle-2.6.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_provider-1.5.0" + "spdxElementId": "SPDXRef-Package-ssh-key-0.6.6" }, { - "relatedSpdxElement": "SPDXRef-Package-indexmap-2.5.0", + "relatedSpdxElement": "SPDXRef-Package-time-core-0.1.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-serde_with-3.9.0" + "spdxElementId": "SPDXRef-Package-time-macros-0.2.18" }, { - "relatedSpdxElement": "SPDXRef-Package-icu_provider-1.5.0", + "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_locid_transform-1.5.0" + "spdxElementId": "SPDXRef-Package-x25519-dalek-2.0.1" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-cpufeatures-0.2.13", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-error-0.24.0" + "spdxElementId": "SPDXRef-Package-sha2-0.10.8" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-pin-project-1.1.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-x25519-dalek-2.0.1" + "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", + "relatedSpdxElement": "SPDXRef-Package-subtle-2.6.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-sec1-0.7.3" }, { - "relatedSpdxElement": "SPDXRef-Package-kqueue-sys-1.0.4", + "relatedSpdxElement": "SPDXRef-Package-sha2-0.10.8", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-kqueue-1.0.8" + "spdxElementId": "SPDXRef-Package-p384-0.13.0" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-util-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-futures-0.3.30" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-relay-selection-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-basic-utils-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-pem-rfc7468-0.7.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" + "spdxElementId": "SPDXRef-Package-ssh-encoding-0.2.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tap-1.0.1", + "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-bitvec-1.0.1" + "spdxElementId": "SPDXRef-Package-cpufeatures-0.2.13" }, { - "relatedSpdxElement": "SPDXRef-Package-bytes-1.7.1", + "relatedSpdxElement": "SPDXRef-Package-typenum-1.17.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tokio-util-0.7.12" + "spdxElementId": "SPDXRef-Package-crypto-common-0.1.6" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-linkspec-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-icu_provider-1.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" + "spdxElementId": "SPDXRef-Package-icu_properties-1.5.1" }, { - "relatedSpdxElement": "SPDXRef-Package-humantime-2.1.0", + "relatedSpdxElement": "SPDXRef-Package-fs-mistrust-0.8.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-log-ratelim-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", + "relatedSpdxElement": "SPDXRef-Package-stable_deref_trait-1.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-key-forge-0.24.0" + "spdxElementId": "SPDXRef-Package-icu_provider-1.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-openssl-0.10.66" + "spdxElementId": "SPDXRef-Package-tor-consdiff-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-rand_core-0.6.4", + "relatedSpdxElement": "SPDXRef-Package-tor-hscrypto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-x25519-dalek-2.0.1" + "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-cell-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-zeroize_derive-1.4.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-zeroize-1.8.1" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-windows_aarch64_msvc-0.48.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_provider_macros-1.5.0" + "spdxElementId": "SPDXRef-Package-windows-targets-0.48.5" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-persist-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tor-netdir-0.24.0", "relationshipType": "DEPENDS_ON", "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-signature-2.2.0", + "relatedSpdxElement": "SPDXRef-Package-tor-memquota-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ssh-key-0.6.6" + "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-deranged-0.3.11", + "relatedSpdxElement": "SPDXRef-Package-hex-0.4.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-time-0.3.36" + "spdxElementId": "SPDXRef-Package-tor-basic-utils-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-synstructure-0.13.1", + "relatedSpdxElement": "SPDXRef-Package-proc-macro-crate-1.3.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-asn1-rs-derive-0.5.1" + "spdxElementId": "SPDXRef-Package-derive-adhoc-macros-0.7.3" }, { - "relatedSpdxElement": "SPDXRef-Package-ascii-1.1.0", + "relatedSpdxElement": "SPDXRef-Package-getrandom-0.2.15", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-amplify-4.7.0" + "spdxElementId": "SPDXRef-Package-uuid-1.10.0" }, { - "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", + "relatedSpdxElement": "SPDXRef-Package-der-0.7.9", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tokio-1.40.0" + "spdxElementId": "SPDXRef-Package-spki-0.7.3" }, { - "relatedSpdxElement": "SPDXRef-Package-wyz-0.5.1", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-bitvec-1.0.1" + "spdxElementId": "SPDXRef-Package-deranged-0.3.11" }, { - "relatedSpdxElement": "SPDXRef-Package-generic-array-0.14.7", + "relatedSpdxElement": "SPDXRef-Package-humantime-serde-1.1.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-crypto-common-0.1.6" + "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", + "relatedSpdxElement": "SPDXRef-Package-synstructure-0.13.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-native-tls-0.2.12" + "spdxElementId": "SPDXRef-Package-zerofrom-derive-0.1.4" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-slotmap-careful-0.2.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-openssl-macros-0.1.1" + "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-ed25519-dalek-2.1.1" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-linkspec-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-memquota-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-weak-table-0.3.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-pin-project-lite-0.2.14", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" + "spdxElementId": "SPDXRef-Package-asynchronous-codec-0.7.0" }, { - "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", + "relatedSpdxElement": "SPDXRef-Package-url-2.5.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-async-native-tls-0.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", + "relatedSpdxElement": "SPDXRef-Package-amplify-4.7.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-socksproto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-humantime-2.1.0", + "relatedSpdxElement": "SPDXRef-Package-zerovec-0.10.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-icu_provider-1.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", + "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-openssl-0.10.66" + "spdxElementId": "SPDXRef-Package-generic-array-0.14.7" }, { - "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", + "relatedSpdxElement": "SPDXRef-Package-hex-0.4.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-memchr-2.7.4", + "relatedSpdxElement": "SPDXRef-Package-synstructure-0.13.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-serde_json-1.0.128" + "spdxElementId": "SPDXRef-Package-asn1-rs-derive-0.5.1" }, { - "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", + "relatedSpdxElement": "SPDXRef-Package-spin-0.9.8", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-lazy_static-1.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-tracing-log-0.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tracing-subscriber-0.3.18" }, { - "relatedSpdxElement": "SPDXRef-Package-arrayvec-0.7.6", + "relatedSpdxElement": "SPDXRef-Package-itertools-0.13.0", "relationshipType": "DEPENDS_ON", "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-bitvec-1.0.1", + "relatedSpdxElement": "SPDXRef-Package-signature-2.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-bson-2.11.0" + "spdxElementId": "SPDXRef-Package-tor-checkable-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-parking_lot-0.12.3", + "relatedSpdxElement": "SPDXRef-Package-tor-circmgr-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-postage-0.5.0" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-redox_users-0.4.6", + "relatedSpdxElement": "SPDXRef-Package-subtle-2.6.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-dirs-sys-0.4.1" + "spdxElementId": "SPDXRef-Package-ff-0.13.0" }, { - "relatedSpdxElement": "SPDXRef-Package-smallvec-1.13.2", + "relatedSpdxElement": "SPDXRef-Package-sha3-0.10.8", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-num-bigint-dig-0.8.4" + "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" }, { - "relatedSpdxElement": "SPDXRef-Package-spin-0.9.8", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-lazy_static-1.5.0" + "spdxElementId": "SPDXRef-Package-amplify_syn-2.0.1" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-basic-utils-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-winapi-util-0.1.9", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" + "spdxElementId": "SPDXRef-Package-same-file-1.0.6" }, { - "relatedSpdxElement": "SPDXRef-Package-smallvec-1.13.2", + "relatedSpdxElement": "SPDXRef-Package-tor-cell-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-memquota-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-caret-0.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-units-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-protover-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-units-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-serde_with_macros-3.9.0" + "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-base16ct-0.2.0", + "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-sec1-0.7.3" + "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-amplify_derive-4.0.1", + "relatedSpdxElement": "SPDXRef-Package-strum-0.26.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-amplify-4.7.0" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-key-forge-0.24.0" + "spdxElementId": "SPDXRef-Package-displaydoc-0.2.5" }, { - "relatedSpdxElement": "SPDXRef-Package-data-encoding-2.6.0", + "relatedSpdxElement": "SPDXRef-Package-typenum-1.17.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-data-encoding-macro-0.1.15" + "spdxElementId": "SPDXRef-Package-generic-array-0.14.7" }, { - "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", + "relatedSpdxElement": "SPDXRef-Package-windows-targets-0.52.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-errno-0.3.9" + "spdxElementId": "SPDXRef-Package-windows-sys-0.59.0" }, { - "relatedSpdxElement": "SPDXRef-Package-humantime-2.1.0", + "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-fs-mistrust-0.8.0" }, { - "relatedSpdxElement": "SPDXRef-Package-darling_macro-0.14.4", + "relatedSpdxElement": "SPDXRef-Package-core-foundation-sys-0.8.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-darling-0.14.4" + "spdxElementId": "SPDXRef-Package-security-framework-2.11.1" }, { - "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", + "relatedSpdxElement": "SPDXRef-Package-wasm-bindgen-0.2.93", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-fs-mistrust-0.8.0" + "spdxElementId": "SPDXRef-Package-coarsetime-0.1.34" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-tor-memquota-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-indexmap-2.5.0" + "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-cpufeatures-0.2.13", + "relatedSpdxElement": "SPDXRef-Package-icu_locid_transform_data-1.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-sha2-0.10.8" + "spdxElementId": "SPDXRef-Package-icu_locid_transform-1.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-netdir-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-futures-task-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-futures-executor-0.3.30" }, { - "relatedSpdxElement": "SPDXRef-Package-time-0.3.36", + "relatedSpdxElement": "SPDXRef-Package-humantime-2.1.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-humantime-serde-1.1.1" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-wasm-bindgen-backend-0.2.93" + "spdxElementId": "SPDXRef-Package-ahash-0.8.11" }, { - "relatedSpdxElement": "SPDXRef-Package-rustversion-1.0.17", + "relatedSpdxElement": "SPDXRef-Package-serde_derive-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-strum_macros-0.25.3" + "spdxElementId": "SPDXRef-Package-serde_with-3.9.0" }, { - "relatedSpdxElement": "SPDXRef-Package-fslock-0.2.1", + "relatedSpdxElement": "SPDXRef-Package-num-bigint-dig-0.8.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" + "spdxElementId": "SPDXRef-Package-rsa-0.9.6" }, { - "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", + "relatedSpdxElement": "SPDXRef-Package-futures-util-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-asynchronous-codec-0.7.0" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-honk-rpc-0.3.0" + "spdxElementId": "SPDXRef-Package-openssl-0.10.66" }, { - "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", + "relatedSpdxElement": "SPDXRef-Package-sha2-0.10.8", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-ssh-encoding-0.2.0" }, { - "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-tor-async-utils-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-bytes-1.7.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-displaydoc-0.2.5" + "spdxElementId": "SPDXRef-Package-tokio-util-0.7.12" }, { - "relatedSpdxElement": "SPDXRef-Package-wasm-bindgen-0.2.93", + "relatedSpdxElement": "SPDXRef-Package-fslock-arti-fork-0.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-js-sys-0.3.70" + "spdxElementId": "SPDXRef-Package-fslock-guard-0.2.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-hmac-0.12.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", + "relatedSpdxElement": "SPDXRef-Package-fslock-0.2.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", + "relatedSpdxElement": "SPDXRef-Package-futures-io-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-async-compression-0.4.12" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-memchr-2.7.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" + "spdxElementId": "SPDXRef-Package-winnow-0.5.40" }, { - "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" + "spdxElementId": "SPDXRef-Package-serde_derive-1.0.209" }, { - "relatedSpdxElement": "SPDXRef-Package-dyn-clone-1.0.17", + "relatedSpdxElement": "SPDXRef-Package-signature-1.6.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" }, { - "relatedSpdxElement": "SPDXRef-Package-safelog-0.4.1", + "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-hmac-0.12.1" }, { - "relatedSpdxElement": "SPDXRef-Package-winapi-0.3.9", + "relatedSpdxElement": "SPDXRef-Package-memchr-2.7.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-fslock-0.2.1" + "spdxElementId": "SPDXRef-Package-aho-corasick-1.1.3" }, { - "relatedSpdxElement": "SPDXRef-Package-sec1-0.7.3", + "relatedSpdxElement": "SPDXRef-Package-regex-automata-0.4.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ssh-key-0.6.6" + "spdxElementId": "SPDXRef-Package-bstr-1.10.0" }, { - "relatedSpdxElement": "SPDXRef-Package-slotmap-1.0.7", + "relatedSpdxElement": "SPDXRef-Package-windows-sys-0.52.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-slotmap-careful-0.2.1" + "spdxElementId": "SPDXRef-Package-schannel-0.1.23" }, { - "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", + "relatedSpdxElement": "SPDXRef-Package-by_address-1.2.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-proto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-log-0.4.22", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" + "spdxElementId": "SPDXRef-Package-mio-1.0.2" }, { - "relatedSpdxElement": "SPDXRef-Package-static_assertions-1.1.0", + "relatedSpdxElement": "SPDXRef-Package-either-1.13.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" + "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tokio-1.40.0", + "relatedSpdxElement": "SPDXRef-Package-tor-protover-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-gosling-0.3.0" + "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-tor-basic-utils-0.24.0", "relationshipType": "DEPENDS_ON", "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_builder_fork_arti-0.11.2", + "relatedSpdxElement": "SPDXRef-Package-cipher-0.4.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" + "spdxElementId": "SPDXRef-Package-ctr-0.9.2" }, { - "relatedSpdxElement": "SPDXRef-Package-heck-0.4.1", + "relatedSpdxElement": "SPDXRef-Package-strum_macros-0.25.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-derive-adhoc-macros-0.7.3" + "spdxElementId": "SPDXRef-Package-strum-0.25.0" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-async_executors-0.7.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-humantime-serde-1.1.1" + "spdxElementId": "SPDXRef-Package-tor-rtcompat-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-nom-7.1.3", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-rusticata-macros-4.1.0" + "spdxElementId": "SPDXRef-Package-zerocopy-derive-0.7.35" }, { - "relatedSpdxElement": "SPDXRef-Package-socks-0.3.4", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" + "spdxElementId": "SPDXRef-Package-wasm-bindgen-backend-0.2.93" }, { - "relatedSpdxElement": "SPDXRef-Package-num_enum_derive-0.6.1", + "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-num_enum-0.6.1" + "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-pin-project-1.1.5", + "relatedSpdxElement": "SPDXRef-Package-redox_users-0.4.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" + "spdxElementId": "SPDXRef-Package-dirs-sys-0.4.1" }, { - "relatedSpdxElement": "SPDXRef-Package-oneshot-fused-workaround-0.2.0", + "relatedSpdxElement": "SPDXRef-Package-tor-checkable-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-circmgr-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-aho-corasick-1.1.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-regex-1.10.6" }, { - "relatedSpdxElement": "SPDXRef-Package-zstd-safe-7.2.1", + "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-zstd-0.13.2" + "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-getrandom-0.2.15", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-ahash-0.8.11" }, { - "relatedSpdxElement": "SPDXRef-Package-icu_collections-1.5.0", + "relatedSpdxElement": "SPDXRef-Package-idna-0.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_normalizer-1.5.0" + "spdxElementId": "SPDXRef-Package-url-2.5.2" }, { - "relatedSpdxElement": "SPDXRef-Package-darling_core-0.14.4", + "relatedSpdxElement": "SPDXRef-Package-js-sys-0.3.70", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-darling_macro-0.14.4" + "spdxElementId": "SPDXRef-Package-iana-time-zone-0.1.60" }, { - "relatedSpdxElement": "SPDXRef-Package-windows-sys-0.52.0", + "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-errno-0.3.9" + "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-safelog-0.4.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_provider_macros-1.5.0" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-uuid-1.10.0" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-ed25519-dalek-2.1.1", + "relatedSpdxElement": "SPDXRef-Package-hex-0.4.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-core-foundation-0.9.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-postage-0.5.0" + "spdxElementId": "SPDXRef-Package-security-framework-2.11.1" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", + "relatedSpdxElement": "SPDXRef-Package-retry-error-0.6.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-cipher-0.4.4" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-winapi-x86_64-pc-windows-gnu-0.4.0", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-winapi-0.3.9" + "spdxElementId": "SPDXRef-Package-enum-ordinalize-3.1.15" }, { - "relatedSpdxElement": "SPDXRef-Package-rand_core-0.6.4", + "relatedSpdxElement": "SPDXRef-Package-sha3-0.10.8", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-crypto-bigint-0.5.5" + "spdxElementId": "SPDXRef-Package-derive-adhoc-macros-0.7.3" }, { - "relatedSpdxElement": "SPDXRef-Package-pin-project-lite-0.2.14", + "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-futures-util-0.3.30" + "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", + "relatedSpdxElement": "SPDXRef-Package-tor-log-ratelim-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-bytes-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-iana-time-zone-haiku-0.1.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" + "spdxElementId": "SPDXRef-Package-iana-time-zone-0.1.60" }, { - "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", + "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-parking_lot_core-0.9.10", + "relatedSpdxElement": "SPDXRef-Package-domain-0.10.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-parking_lot-0.12.3" + "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" }, { - "relatedSpdxElement": "SPDXRef-Package-time-0.3.36", + "relatedSpdxElement": "SPDXRef-Package-tor-linkspec-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", + "relatedSpdxElement": "SPDXRef-Package-openssl-probe-0.1.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-bson-2.11.0" + "spdxElementId": "SPDXRef-Package-native-tls-0.2.12" }, { - "relatedSpdxElement": "SPDXRef-Package-itertools-0.13.0", + "relatedSpdxElement": "SPDXRef-Package-icu_locid-1.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" + "spdxElementId": "SPDXRef-Package-icu_provider-1.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-retry-error-0.6.0", + "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-error-0.24.0" + "spdxElementId": "SPDXRef-Package-derive_more-impl-1.0.0" }, { - "relatedSpdxElement": "SPDXRef-Package-wasm-bindgen-shared-0.2.93", + "relatedSpdxElement": "SPDXRef-Package-base64ct-1.6.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-wasm-bindgen-macro-support-0.2.93" + "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-tor-persist-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-derive_more-impl-1.0.0" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-bytes-0.24.0" + "spdxElementId": "SPDXRef-Package-educe-0.4.23" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-darling_macro-0.14.4" + "spdxElementId": "SPDXRef-Package-tor-checkable-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tracing-attributes-0.1.27" + "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-base64ct-1.6.0", + "relatedSpdxElement": "SPDXRef-Package-oneshot-fused-workaround-0.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-filetime-0.2.25", + "relatedSpdxElement": "SPDXRef-Package-libsqlite3-sys-0.30.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-notify-7.0.0" + "spdxElementId": "SPDXRef-Package-rusqlite-0.32.1" }, { - "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", + "relatedSpdxElement": "SPDXRef-Package-blanket-0.3.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-inotify-sys-0.1.5" + "spdxElementId": "SPDXRef-Package-async_executors-0.7.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tracing-core-0.1.32", + "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tracing-subscriber-0.3.18" + "spdxElementId": "SPDXRef-Package-openssl-macros-0.1.1" }, { - "relatedSpdxElement": "SPDXRef-Package-ctr-0.9.2", + "relatedSpdxElement": "SPDXRef-Package-unicode-ident-1.0.12", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-proc-macro2-1.0.86" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" + "spdxElementId": "SPDXRef-Package-kqueue-sys-1.0.4" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-protover-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-winapi-i686-pc-windows-gnu-0.4.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" + "spdxElementId": "SPDXRef-Package-winapi-0.3.9" }, { - "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", + "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tracing-subscriber-0.3.18" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", + "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-num-bigint-dig-0.8.4" + "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-num-traits-0.2.19", + "relatedSpdxElement": "SPDXRef-Package-tor-proto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-enum-ordinalize-3.1.15" + "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-io-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-tor-keymgr-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tokio-util-0.7.12" + "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-itertools-0.13.0", + "relatedSpdxElement": "SPDXRef-Package-sec1-0.7.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-ssh-key-0.6.6" }, { - "relatedSpdxElement": "SPDXRef-Package-parking-2.2.0", + "relatedSpdxElement": "SPDXRef-Package-tor-cert-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-event-listener-5.3.1" + "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-num-bigint-0.4.6", + "relatedSpdxElement": "SPDXRef-Package-tor-persist-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-enum-ordinalize-3.1.15" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-postage-0.5.0", + "relatedSpdxElement": "SPDXRef-Package-js-sys-0.3.70", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-getrandom-0.2.15" }, { - "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", + "relatedSpdxElement": "SPDXRef-Package-log-0.4.22", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" + "spdxElementId": "SPDXRef-Package-native-tls-0.2.12" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-hashbrown-0.14.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-bytes-0.24.0" + "spdxElementId": "SPDXRef-Package-hashlink-0.9.1" }, { - "relatedSpdxElement": "SPDXRef-Package-rand_core-0.6.4", + "relatedSpdxElement": "SPDXRef-Package-zerovec-0.10.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" + "spdxElementId": "SPDXRef-Package-icu_locid-1.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-js-sys-0.3.70", + "relatedSpdxElement": "SPDXRef-Package-uncased-0.9.10", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-bson-2.11.0" + "spdxElementId": "SPDXRef-Package-figment-0.10.19" }, { - "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", + "relatedSpdxElement": "SPDXRef-Package-static_assertions-1.1.0", "relationshipType": "DEPENDS_ON", "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-units-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", "relationshipType": "DEPENDS_ON", "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-core-foundation-sys-0.8.7", - "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-core-foundation-0.9.4" + "relatedSpdxElement": "SPDXRef-Package-tor-interface-0.4.0", + "relationshipType": "GENERATED_FROM", + "spdxElementId": "SPDXRef-File-tor_interface" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-bytes-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-cert-0.24.0" + "spdxElementId": "SPDXRef-Package-postage-0.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-windows-sys-0.59.0", + "relatedSpdxElement": "SPDXRef-Package-tor-basic-utils-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-winapi-util-0.1.9" + "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-num_enum-0.7.3", + "relatedSpdxElement": "SPDXRef-Package-xz2-0.1.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" + "spdxElementId": "SPDXRef-Package-async-compression-0.4.12" }, { - "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", + "relatedSpdxElement": "SPDXRef-Package-tor-memquota-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-futures-util-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" + "spdxElementId": "SPDXRef-Package-futures-executor-0.3.30" }, { - "relatedSpdxElement": "SPDXRef-Package-fiat-crypto-0.2.9", + "relatedSpdxElement": "SPDXRef-Package-aho-corasick-1.1.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-curve25519-dalek-4.1.3" + "spdxElementId": "SPDXRef-Package-regex-automata-0.4.7" }, { - "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", + "relatedSpdxElement": "SPDXRef-Package-async-trait-0.1.82", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tinyvec-1.8.0", + "relatedSpdxElement": "SPDXRef-Package-tor-checkable-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-unicode-normalization-0.1.23" + "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-rsa-0.9.6", + "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ssh-key-0.6.6" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-icu_properties-1.5.1", + "relatedSpdxElement": "SPDXRef-Package-directories-5.0.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-idna-1.0.2" + "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", + "relatedSpdxElement": "SPDXRef-Package-android-tzdata-0.1.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-socks-0.3.4" + "spdxElementId": "SPDXRef-Package-chrono-0.4.38" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-paste-1.0.15", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-futures-macro-0.3.30" + "spdxElementId": "SPDXRef-Package-tor-basic-utils-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-chrono-0.4.38", + "relatedSpdxElement": "SPDXRef-Package-tor-rtcompat-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-serde_with-3.9.0" + "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-subtle-2.6.1", + "relatedSpdxElement": "SPDXRef-Package-rusticata-macros-4.1.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-socksproto-0.24.0" + "spdxElementId": "SPDXRef-Package-der-parser-9.0.0" }, { - "relatedSpdxElement": "SPDXRef-Package-base64ct-1.6.0", + "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ssh-encoding-0.2.0" + "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", + "relatedSpdxElement": "SPDXRef-Package-tor-async-utils-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-which-4.4.2" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-persist-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-sha2-0.10.8", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" + "spdxElementId": "SPDXRef-Package-ssh-key-0.6.6" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-error-0.24.0" + "spdxElementId": "SPDXRef-Package-yoke-derive-0.7.4" }, { - "relatedSpdxElement": "SPDXRef-Package-rsa-0.9.6", + "relatedSpdxElement": "SPDXRef-Package-itertools-0.13.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-basic-utils-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-zerofrom-0.1.4", + "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-zerovec-0.10.4" + "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-netdir-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-humantime-2.1.0", + "relatedSpdxElement": "SPDXRef-Package-smallvec-1.13.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-humantime-serde-1.1.1" + "spdxElementId": "SPDXRef-Package-tracing-subscriber-0.3.18" }, { - "relatedSpdxElement": "SPDXRef-Package-pkcs8-0.10.2", + "relatedSpdxElement": "SPDXRef-Package-tor-relay-selection-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-pkcs1-0.7.5" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-shellexpand-3.1.0", + "relatedSpdxElement": "SPDXRef-Package-num-iter-0.1.45", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" + "spdxElementId": "SPDXRef-Package-num-bigint-dig-0.8.4" }, { - "relatedSpdxElement": "SPDXRef-Package-itertools-0.13.0", + "relatedSpdxElement": "SPDXRef-Package-time-core-0.1.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-time-0.3.36" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-slotmap-careful-0.2.1" + "spdxElementId": "SPDXRef-Package-num_enum_derive-0.7.3" }, { "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-darling_core-0.14.4" + "spdxElementId": "SPDXRef-Package-syn-2.0.77" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" + "spdxElementId": "SPDXRef-Package-derive_builder_core_fork_arti-0.11.2" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-linkspec-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-memchr-2.7.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" + "spdxElementId": "SPDXRef-Package-os_str_bytes-6.6.1" }, { - "relatedSpdxElement": "SPDXRef-Package-curve25519-dalek-4.1.3", + "relatedSpdxElement": "SPDXRef-Package-openssl-macros-0.1.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" + "spdxElementId": "SPDXRef-Package-openssl-0.10.66" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-hscrypto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-winapi-0.3.9", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" + "spdxElementId": "SPDXRef-Package-nu-ansi-term-0.46.0" }, { - "relatedSpdxElement": "SPDXRef-Package-num-traits-0.2.19", + "relatedSpdxElement": "SPDXRef-Package-miniz_oxide-0.8.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-asn1-rs-0.6.2" + "spdxElementId": "SPDXRef-Package-flate2-1.0.33" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-cgosling-proc-macros-0.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" + "spdxElementId": "SPDXRef-Package-cgosling-0.3.1" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", + "relatedSpdxElement": "SPDXRef-Package-rand_core-0.6.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-blanket-0.3.0" + "spdxElementId": "SPDXRef-Package-rand_chacha-0.3.1" }, { - "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-num_enum_derive-0.6.1" }, { - "relatedSpdxElement": "SPDXRef-Package-serde_bytes-0.11.15", + "relatedSpdxElement": "SPDXRef-Package-const-oid-0.9.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-growable-bloom-filter-2.1.0" + "spdxElementId": "SPDXRef-Package-der-0.7.9" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-tor-basic-utils-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-rtcompat-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-walkdir-2.5.0", + "relatedSpdxElement": "SPDXRef-Package-tor-async-utils-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-notify-7.0.0" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", + "relatedSpdxElement": "SPDXRef-Package-bumpalo-3.16.0", "relationshipType": "DEPENDS_ON", "spdxElementId": "SPDXRef-Package-wasm-bindgen-backend-0.2.93" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-linkspec-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", "relationshipType": "DEPENDS_ON", "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", "spdxElementId": "SPDXRef-Package-displaydoc-0.2.5" }, { - "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", + "relatedSpdxElement": "SPDXRef-Package-tor-rtcompat-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-error-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-der-0.7.9", + "relatedSpdxElement": "SPDXRef-Package-elliptic-curve-0.13.8", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-spki-0.7.3" + "spdxElementId": "SPDXRef-Package-p384-0.13.0" }, { - "relatedSpdxElement": "SPDXRef-Package-libredox-0.1.3", + "relatedSpdxElement": "SPDXRef-Package-syn-1.0.109", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-filetime-0.2.25" + "spdxElementId": "SPDXRef-Package-educe-0.4.23" }, { - "relatedSpdxElement": "SPDXRef-Package-static_assertions-1.1.0", + "relatedSpdxElement": "SPDXRef-Package-bitflags-2.6.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" + "spdxElementId": "SPDXRef-Package-openssl-0.10.66" }, { - "relatedSpdxElement": "SPDXRef-Package-hex-0.4.3", + "relatedSpdxElement": "SPDXRef-Package-yoke-derive-0.7.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" + "spdxElementId": "SPDXRef-Package-yoke-0.7.4" }, { - "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", + "relatedSpdxElement": "SPDXRef-Package-futures-io-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-sec1-0.7.3" + "spdxElementId": "SPDXRef-Package-futures-0.3.30" }, { - "relatedSpdxElement": "SPDXRef-Package-wasm-bindgen-0.2.93", + "relatedSpdxElement": "SPDXRef-Package-time-0.3.36", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-getrandom-0.2.15" + "spdxElementId": "SPDXRef-Package-rusqlite-0.32.1" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro-crate-3.2.0", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relationshipType": "DEPENDS_ON", + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + }, + { + "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", + "relationshipType": "DEPENDS_ON", + "spdxElementId": "SPDXRef-Package-tor-bytes-0.24.0" + }, + { + "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-derive-deftly-macros-0.14.2" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-visibility-0.1.1" + "spdxElementId": "SPDXRef-Package-amplify_derive-4.0.1" }, { - "relatedSpdxElement": "SPDXRef-Package-strum_macros-0.26.4", + "relatedSpdxElement": "SPDXRef-Package-ppv-lite86-0.2.20", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-strum-0.26.3" + "spdxElementId": "SPDXRef-Package-rand_chacha-0.3.1" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-tor-async-utils-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-yoke-0.7.4" + "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", + "relatedSpdxElement": "SPDXRef-Package-postage-0.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-yoke-derive-0.7.4" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-subtle-2.6.1", + "relatedSpdxElement": "SPDXRef-Package-tor-basic-utils-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-crypto-bigint-0.5.5" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_builder_fork_arti-0.11.2", + "relatedSpdxElement": "SPDXRef-Package-subtle-2.6.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-digest-0.10.7" }, { - "relatedSpdxElement": "SPDXRef-Package-data-encoding-2.6.0", + "relatedSpdxElement": "SPDXRef-Package-sha3-0.10.8", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-derive-deftly-macros-0.14.2" }, { - "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", + "relatedSpdxElement": "SPDXRef-Package-byteorder-1.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-x25519-dalek-2.0.1" + "spdxElementId": "SPDXRef-Package-socks-0.3.4" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tor-basic-utils-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-glob-match-0.2.1", + "relatedSpdxElement": "SPDXRef-Package-android_system_properties-0.1.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" + "spdxElementId": "SPDXRef-Package-iana-time-zone-0.1.60" }, { - "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", + "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" + "spdxElementId": "SPDXRef-Package-visibility-0.1.1" }, { - "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", + "relatedSpdxElement": "SPDXRef-Package-tor-guardmgr-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-itertools-0.13.0", + "relatedSpdxElement": "SPDXRef-Package-tor-basic-utils-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-basic-utils-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-task-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-bson-2.11.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-futures-util-0.3.30" + "spdxElementId": "SPDXRef-Package-honk-rpc-0.3.0" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" + "spdxElementId": "SPDXRef-Package-fs-mistrust-0.8.0" }, { - "relatedSpdxElement": "SPDXRef-Package-option-ext-0.2.0", + "relatedSpdxElement": "SPDXRef-Package-asn1-rs-impl-0.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-dirs-sys-0.4.1" + "spdxElementId": "SPDXRef-Package-asn1-rs-0.6.2" }, { "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-async-trait-0.1.82" + "spdxElementId": "SPDXRef-Package-num_enum_derive-0.6.1" }, { - "relatedSpdxElement": "SPDXRef-Package-sha3-0.10.8", + "relatedSpdxElement": "SPDXRef-Package-windows_i686_gnu-0.52.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" + "spdxElementId": "SPDXRef-Package-windows-targets-0.52.6" }, { - "relatedSpdxElement": "SPDXRef-Package-phf_shared-0.11.2", + "relatedSpdxElement": "SPDXRef-Package-paste-1.0.15", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-phf_macros-0.11.2" + "spdxElementId": "SPDXRef-Package-pwd-grp-0.1.1" }, { - "relatedSpdxElement": "SPDXRef-Package-convert_case-0.6.0", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-derive_more-impl-1.0.0" + "spdxElementId": "SPDXRef-Package-curve25519-dalek-derive-0.1.1" }, { - "relatedSpdxElement": "SPDXRef-Package-serde_with_macros-3.9.0", + "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-serde_with-3.9.0" + "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" }, { "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-fslock-arti-fork-0.2.0" + "spdxElementId": "SPDXRef-Package-kqueue-1.0.8" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-config-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-indexmap-1.9.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-serde_with-3.9.0" }, { - "relatedSpdxElement": "SPDXRef-Package-fs-mistrust-0.8.0", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-units-0.24.0" }, { "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ed25519-dalek-2.1.1" + "spdxElementId": "SPDXRef-Package-uuid-1.10.0" }, { - "relatedSpdxElement": "SPDXRef-Package-serde_ignored-0.1.10", + "relatedSpdxElement": "SPDXRef-Package-time-0.3.36", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-fs-mistrust-0.8.0", + "relatedSpdxElement": "SPDXRef-Package-log-0.4.22", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" + "spdxElementId": "SPDXRef-Package-wasm-bindgen-backend-0.2.93" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_builder_fork_arti-0.11.2", + "relatedSpdxElement": "SPDXRef-Package-num_enum-0.7.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-elliptic-curve-0.13.8", + "relatedSpdxElement": "SPDXRef-Package-tor-units-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ecdsa-0.16.9" + "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-hashbrown-0.14.5", + "relatedSpdxElement": "SPDXRef-Package-tor-units-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-indexmap-2.5.0" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-asn1-rs-derive-0.5.1", + "relatedSpdxElement": "SPDXRef-Package-amplify-4.7.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-asn1-rs-0.6.2" + "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-wasi-0.11.0+wasi-snapshot-preview1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-redox_users-0.4.6" + "spdxElementId": "SPDXRef-Package-getrandom-0.2.15" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-itertools-0.13.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-num-traits-0.2.19", + "relatedSpdxElement": "SPDXRef-Package-darling_core-0.14.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-rsa-0.9.6" + "spdxElementId": "SPDXRef-Package-darling_macro-0.14.4" }, { - "relatedSpdxElement": "SPDXRef-Package-strum-0.25.0", + "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-derive-adhoc-macros-0.7.3" + "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-time-0.3.36", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-pin-project-1.1.5", + "relatedSpdxElement": "SPDXRef-Package-tor-proto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" }, { - "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", + "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-lzma-sys-0.1.20" + "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-sha2-0.10.8" + "spdxElementId": "SPDXRef-Package-blanket-0.3.0" }, { - "relatedSpdxElement": "SPDXRef-Package-cipher-0.4.4", + "relatedSpdxElement": "SPDXRef-Package-toml_edit-0.19.15", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ssh-cipher-0.2.0" + "spdxElementId": "SPDXRef-Package-proc-macro-crate-1.3.1" }, { - "relatedSpdxElement": "SPDXRef-Package-rand_core-0.6.4", + "relatedSpdxElement": "SPDXRef-Package-ctr-0.9.2", "relationshipType": "DEPENDS_ON", "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-fastrand-2.1.1", + "relatedSpdxElement": "SPDXRef-Package-bitvec-1.0.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tempfile-3.12.0" + "spdxElementId": "SPDXRef-Package-bson-2.11.0" }, { - "relatedSpdxElement": "SPDXRef-Package-caret-0.5.0", + "relatedSpdxElement": "SPDXRef-Package-bytes-1.7.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-protover-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-config-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-bytes-1.7.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-hscrypto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-amplify_num-0.5.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-key-forge-0.24.0" + "spdxElementId": "SPDXRef-Package-amplify-4.7.0" }, { - "relatedSpdxElement": "SPDXRef-Package-serde_spanned-0.6.7", + "relatedSpdxElement": "SPDXRef-Package-regex-syntax-0.8.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-toml_edit-0.22.20" + "spdxElementId": "SPDXRef-Package-regex-1.10.6" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-pin-project-internal-1.1.5" + "spdxElementId": "SPDXRef-Package-gosling-0.3.0" }, { - "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", + "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-key-forge-0.24.0" + "spdxElementId": "SPDXRef-Package-mio-1.0.2" }, { "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-async-utils-0.24.0" + "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-inout-0.1.3", + "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-cipher-0.4.4" + "spdxElementId": "SPDXRef-Package-native-tls-0.2.12" }, { - "relatedSpdxElement": "SPDXRef-Package-pkcs8-0.10.2", + "relatedSpdxElement": "SPDXRef-Package-winnow-0.5.40", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-rsa-0.9.6" + "spdxElementId": "SPDXRef-Package-toml_edit-0.19.15" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-schannel-0.1.23", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" + "spdxElementId": "SPDXRef-Package-native-tls-0.2.12" }, { - "relatedSpdxElement": "SPDXRef-Package-bytes-1.7.1", + "relatedSpdxElement": "SPDXRef-Package-ident_case-1.0.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-octseq-0.5.1" + "spdxElementId": "SPDXRef-Package-darling_core-0.20.10" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-rtcompat-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-bytes-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-derive_builder_fork_arti-0.11.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-bson-2.11.0" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-itertools-0.13.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-unicode-xid-0.2.6", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-derive_more-impl-1.0.0" + "spdxElementId": "SPDXRef-Package-slotmap-careful-0.2.1" }, { - "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", + "relatedSpdxElement": "SPDXRef-Package-parking_lot-0.12.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-bytes-0.24.0" + "spdxElementId": "SPDXRef-Package-postage-0.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-itertools-0.13.0", + "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" + "spdxElementId": "SPDXRef-Package-getrandom-0.2.15" }, { - "relatedSpdxElement": "SPDXRef-Package-funty-2.0.0", + "relatedSpdxElement": "SPDXRef-Package-toml_edit-0.22.20", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-bitvec-1.0.1" + "spdxElementId": "SPDXRef-Package-toml-0.8.19" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_builder_fork_arti-0.11.2", + "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-cert-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-memchr-2.7.4", + "relationshipType": "DEPENDS_ON", + "spdxElementId": "SPDXRef-Package-async-compression-0.4.12" + }, + { + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relationshipType": "DEPENDS_ON", + "spdxElementId": "SPDXRef-Package-postage-0.5.0" + }, + { + "relatedSpdxElement": "SPDXRef-Package-static_assertions-1.1.0", + "relationshipType": "DEPENDS_ON", + "spdxElementId": "SPDXRef-Package-tor-error-0.24.0" + }, + { + "relatedSpdxElement": "SPDXRef-Package-pin-project-lite-0.2.14", + "relationshipType": "DEPENDS_ON", + "spdxElementId": "SPDXRef-Package-tracing-0.1.40" + }, + { + "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-yoke-derive-0.7.4" + "spdxElementId": "SPDXRef-Package-security-framework-2.11.1" }, { - "relatedSpdxElement": "SPDXRef-Package-lazy_static-1.5.0", + "relatedSpdxElement": "SPDXRef-Package-base16ct-0.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-sanitize-filename-0.5.0" + "spdxElementId": "SPDXRef-Package-elliptic-curve-0.13.8" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-thread_local-1.1.8" }, { - "relatedSpdxElement": "SPDXRef-Package-memchr-2.7.4", + "relatedSpdxElement": "SPDXRef-Package-tor-config-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-nom-7.1.3" + "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" }, { - "relatedSpdxElement": "SPDXRef-Package-strum-0.26.3", + "relatedSpdxElement": "SPDXRef-Package-pin-project-1.1.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-bitflags-2.6.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-amplify_syn-2.0.1" + "spdxElementId": "SPDXRef-Package-security-framework-2.11.1" }, { - "relatedSpdxElement": "SPDXRef-Package-openssl-sys-0.9.103", + "relatedSpdxElement": "SPDXRef-Package-paste-1.0.15", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-native-tls-0.2.12" + "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-zerocopy-derive-0.7.35", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-zerocopy-0.7.35" + "spdxElementId": "SPDXRef-Package-indexmap-1.9.3" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-netdoc-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-wasm-bindgen-macro-support-0.2.93" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-bytes-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-windows-sys-0.52.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-errno-0.3.9" }, { - "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", + "relatedSpdxElement": "SPDXRef-Package-paste-1.0.15", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tracing-subscriber-0.3.18" + "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", + "relatedSpdxElement": "SPDXRef-Package-async-trait-0.1.82", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-rtcompat-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-windows-sys-0.52.0", + "relatedSpdxElement": "SPDXRef-Package-unicode-normalization-0.1.23", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tokio-1.40.0" + "spdxElementId": "SPDXRef-Package-idna-0.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-postage-0.5.0", + "relatedSpdxElement": "SPDXRef-Package-concurrent-queue-2.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-event-listener-5.3.1" }, { - "relatedSpdxElement": "SPDXRef-Package-pin-project-lite-0.2.14", + "relatedSpdxElement": "SPDXRef-Package-derive_builder_fork_arti-0.11.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tokio-1.40.0" + "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_more-impl-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-indexmap-2.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-derive_more-1.0.0" + "spdxElementId": "SPDXRef-Package-bson-2.11.0" }, { "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-instant-0.1.13" + "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-hkdf-0.12.4", + "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-crypto-bigint-0.5.5" }, { - "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-wasm-bindgen-0.2.93" + "spdxElementId": "SPDXRef-Package-tracing-subscriber-0.3.18" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-core-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-slotmap-careful-0.2.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-futures-util-0.3.30" + "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-humantime-2.1.0", + "relatedSpdxElement": "SPDXRef-Package-ff-0.13.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" + "spdxElementId": "SPDXRef-Package-group-0.13.0" }, { - "relatedSpdxElement": "SPDXRef-Package-cgosling-proc-macros-0.0.0", + "relatedSpdxElement": "SPDXRef-Package-darling_core-0.14.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-cgosling-0.3.1" + "spdxElementId": "SPDXRef-Package-darling-0.14.4" }, { - "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", + "relatedSpdxElement": "SPDXRef-Package-icu_normalizer_data-1.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-curve25519-dalek-4.1.3" + "spdxElementId": "SPDXRef-Package-icu_normalizer-1.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-mio-1.0.2", + "relatedSpdxElement": "SPDXRef-Package-displaydoc-0.2.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-notify-7.0.0" + "spdxElementId": "SPDXRef-Package-icu_provider-1.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-num-traits-0.2.19", + "relatedSpdxElement": "SPDXRef-Package-tor-linkspec-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-der-parser-9.0.0" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-idna-1.0.2", + "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" + "spdxElementId": "SPDXRef-Package-tor-rtcompat-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-safelog-0.4.1", + "relatedSpdxElement": "SPDXRef-Package-futures-core-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-async_executors-0.7.0" }, { - "relatedSpdxElement": "SPDXRef-Package-zerovec-0.10.4", + "relatedSpdxElement": "SPDXRef-Package-curve25519-dalek-4.1.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tinystr-0.7.6" + "spdxElementId": "SPDXRef-Package-x25519-dalek-2.0.1" }, { - "relatedSpdxElement": "SPDXRef-Package-cipher-0.4.4", + "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", "relationshipType": "DEPENDS_ON", "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", + "relatedSpdxElement": "SPDXRef-Package-amplify-4.7.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-phf_generator-0.11.2" + "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-foreign-types-shared-0.1.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-visibility-0.1.1" + "spdxElementId": "SPDXRef-Package-foreign-types-0.3.2" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-persist-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tor-guardmgr-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-guardmgr-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", + "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-strum-0.26.3", + "relatedSpdxElement": "SPDXRef-Package-windows_aarch64_msvc-0.52.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" + "spdxElementId": "SPDXRef-Package-windows-targets-0.52.6" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-wasm-bindgen-macro-support-0.2.93" + "spdxElementId": "SPDXRef-Package-tor-log-ratelim-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-winnow-0.6.18", + "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-toml_edit-0.22.20" + "spdxElementId": "SPDXRef-Package-sha2-0.10.8" }, { - "relatedSpdxElement": "SPDXRef-Package-rand_core-0.6.4", + "relatedSpdxElement": "SPDXRef-Package-displaydoc-0.2.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ssh-key-0.6.6" + "spdxElementId": "SPDXRef-Package-icu_normalizer-1.5.0" }, { "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-basic-utils-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-yoke-0.7.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-strum_macros-0.26.4" + "spdxElementId": "SPDXRef-Package-icu_collections-1.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-retry-error-0.6.0", + "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-sha2-0.10.8", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-p256-0.13.2" + "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-native-tls-0.2.12", + "relatedSpdxElement": "SPDXRef-Package-rusticata-macros-4.1.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-async-native-tls-0.5.0" + "spdxElementId": "SPDXRef-Package-asn1-rs-0.6.2" }, { - "relatedSpdxElement": "SPDXRef-Package-weak-table-0.3.2", + "relatedSpdxElement": "SPDXRef-Package-icu_provider-1.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-icu_locid_transform-1.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-fnv-1.0.7", + "relatedSpdxElement": "SPDXRef-Package-zerovec-0.10.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-http-1.1.0" + "spdxElementId": "SPDXRef-Package-icu_locid_transform-1.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-rtcompat-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", + "relatedSpdxElement": "SPDXRef-Package-atomic-0.5.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-curve25519-dalek-4.1.3" + "spdxElementId": "SPDXRef-Package-postage-0.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-netdoc-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-figment-0.10.19", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tinystr-0.7.6", + "relatedSpdxElement": "SPDXRef-Package-honk-rpc-0.3.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_properties-1.5.1" + "spdxElementId": "SPDXRef-Package-gosling-0.3.0" }, { - "relatedSpdxElement": "SPDXRef-Package-stable_deref_trait-1.2.0", + "relatedSpdxElement": "SPDXRef-Package-itertools-0.13.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_provider-1.5.0" + "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-1.0.109", + "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-derive-adhoc-macros-0.7.3" + "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-base64ct-1.6.0", + "relatedSpdxElement": "SPDXRef-Package-tor-rtcompat-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-pem-rfc7468-0.7.0" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-memchr-2.7.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" + "spdxElementId": "SPDXRef-Package-asynchronous-codec-0.7.0" }, { - "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-basic-utils-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", + "relatedSpdxElement": "SPDXRef-Package-tor-proto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ed25519-dalek-2.1.1" + "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-log-0.4.22", + "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-native-tls-0.2.12" + "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", + "relatedSpdxElement": "SPDXRef-Package-num-traits-0.2.19", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tempfile-3.12.0" + "spdxElementId": "SPDXRef-Package-chrono-0.4.38" }, { - "relatedSpdxElement": "SPDXRef-Package-humantime-serde-1.1.1", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-key-forge-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", + "relatedSpdxElement": "SPDXRef-Package-windows_i686_gnullvm-0.52.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-rsa-0.9.6" + "spdxElementId": "SPDXRef-Package-windows-targets-0.52.6" }, { - "relatedSpdxElement": "SPDXRef-Package-base64ct-1.6.0", + "relatedSpdxElement": "SPDXRef-Package-sha2-0.10.8", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" + "spdxElementId": "SPDXRef-Package-rsa-0.9.6" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-core-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-futures-executor-0.3.30" + "spdxElementId": "SPDXRef-Package-tor-async-utils-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-pin-project-lite-0.2.14", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-socksproto-0.24.0" + "spdxElementId": "SPDXRef-Package-futures-util-0.3.30" }, { - "relatedSpdxElement": "SPDXRef-Package-ff-0.13.0", + "relatedSpdxElement": "SPDXRef-Package-getrandom-0.2.15", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-group-0.13.0" + "spdxElementId": "SPDXRef-Package-tor-bytes-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", + "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tokio-macros-2.4.0" + "spdxElementId": "SPDXRef-Package-tor-error-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", + "relatedSpdxElement": "SPDXRef-Package-wasm-bindgen-shared-0.2.93", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-wasm-bindgen-backend-0.2.93" }, { - "relatedSpdxElement": "SPDXRef-Package-hex-0.4.3", + "relatedSpdxElement": "SPDXRef-Package-lock_api-0.4.12", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-parking_lot-0.12.3" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-humantime-2.1.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-growable-bloom-filter-2.1.0" + "spdxElementId": "SPDXRef-Package-tor-checkable-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-pin-project-1.1.5", + "relatedSpdxElement": "SPDXRef-Package-darling_macro-0.20.10", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-rtcompat-0.24.0" + "spdxElementId": "SPDXRef-Package-darling-0.20.10" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-phf-0.11.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-sha3-0.10.8", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-darling_core-0.14.4" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-memquota-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-unicode-ident-1.0.12", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-syn-1.0.109" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" + "spdxElementId": "SPDXRef-Package-dirs-sys-0.4.1" }, { - "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", + "relatedSpdxElement": "SPDXRef-Package-futures-task-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" + "spdxElementId": "SPDXRef-Package-futures-util-0.3.30" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-units-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-num-integer-0.1.46", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-rsa-0.9.6" }, { - "relatedSpdxElement": "SPDXRef-Package-unicode-segmentation-1.12.0", + "relatedSpdxElement": "SPDXRef-Package-strum-0.26.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-convert_case-0.6.0" + "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-impl-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-displaydoc-0.2.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-thiserror-1.0.63" + "spdxElementId": "SPDXRef-Package-icu_properties-1.5.1" }, { - "relatedSpdxElement": "SPDXRef-Package-sha3-0.10.8", + "relatedSpdxElement": "SPDXRef-Package-safelog-0.4.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-derive-deftly-macros-0.14.2" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-key-forge-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-cipher-0.4.4", + "relatedSpdxElement": "SPDXRef-Package-signature-2.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-key-forge-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", + "relatedSpdxElement": "SPDXRef-Package-bson-2.11.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" + "spdxElementId": "SPDXRef-Package-gosling-0.3.0" }, { - "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", + "relatedSpdxElement": "SPDXRef-Package-ssh-encoding-0.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" + "spdxElementId": "SPDXRef-Package-ssh-cipher-0.2.0" }, { - "relatedSpdxElement": "SPDXRef-Package-paste-1.0.15", + "relatedSpdxElement": "SPDXRef-Package-tor-bytes-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", + "relatedSpdxElement": "SPDXRef-Package-pin-project-lite-0.2.14", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" + "spdxElementId": "SPDXRef-Package-tokio-1.40.0" }, { - "relatedSpdxElement": "SPDXRef-Package-ecdsa-0.16.9", + "relatedSpdxElement": "SPDXRef-Package-rand_core-0.6.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-p384-0.13.0" + "spdxElementId": "SPDXRef-Package-rsa-0.9.6" }, { - "relatedSpdxElement": "SPDXRef-Package-tokio-1.40.0", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tokio-util-0.7.12" + "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-paste-1.0.15", + "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-key-forge-0.24.0" + "spdxElementId": "SPDXRef-Package-num_enum_derive-0.7.3" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-relay-selection-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-directories-5.0.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-config-path-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-byteorder-1.5.0", + "relatedSpdxElement": "SPDXRef-Package-rand_core-0.6.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-socks-0.3.4" + "spdxElementId": "SPDXRef-Package-x25519-dalek-2.0.1" }, { - "relatedSpdxElement": "SPDXRef-Package-bson-2.11.0", + "relatedSpdxElement": "SPDXRef-Package-adler2-2.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-gosling-0.3.0" + "spdxElementId": "SPDXRef-Package-miniz_oxide-0.8.0" }, { - "relatedSpdxElement": "SPDXRef-Package-sha1-0.10.6", + "relatedSpdxElement": "SPDXRef-Package-data-encoding-macro-0.1.15", "relationshipType": "DEPENDS_ON", "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" }, { - "relatedSpdxElement": "SPDXRef-Package-percent-encoding-2.3.1", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-url-2.5.2" + "spdxElementId": "SPDXRef-Package-safelog-0.4.1" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", + "relatedSpdxElement": "SPDXRef-Package-sha3-0.10.8", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-zerofrom-derive-0.1.4" + "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-time-macros-0.2.18", + "relatedSpdxElement": "SPDXRef-Package-windows-targets-0.52.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-time-0.3.36" + "spdxElementId": "SPDXRef-Package-windows-core-0.52.0" }, { - "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-num_enum-0.7.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ahash-0.8.11" + "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-zerovec-0.10.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-derive_builder_core_fork_arti-0.11.2" + "spdxElementId": "SPDXRef-Package-tinystr-0.7.6" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-rtcompat-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-cipher-0.4.4" }, { - "relatedSpdxElement": "SPDXRef-Package-dirs-5.0.1", + "relatedSpdxElement": "SPDXRef-Package-security-framework-2.11.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-shellexpand-3.1.0" + "spdxElementId": "SPDXRef-Package-native-tls-0.2.12" }, { - "relatedSpdxElement": "SPDXRef-Package-serde_with-3.9.0", + "relatedSpdxElement": "SPDXRef-Package-core-foundation-sys-0.8.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" + "spdxElementId": "SPDXRef-Package-security-framework-sys-2.11.1" }, { - "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", + "relatedSpdxElement": "SPDXRef-Package-pin-project-lite-0.2.14", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-event-listener-5.3.1" }, { - "relatedSpdxElement": "SPDXRef-Package-oneshot-fused-workaround-0.2.0", + "relatedSpdxElement": "SPDXRef-Package-tor-linkspec-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-parking_lot-0.12.3", + "relatedSpdxElement": "SPDXRef-Package-rand_core-0.6.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tokio-1.40.0" + "spdxElementId": "SPDXRef-Package-rand-0.8.5" }, { - "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", + "relatedSpdxElement": "SPDXRef-Package-bitflags-2.6.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-rand-0.8.5" + "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", + "relatedSpdxElement": "SPDXRef-Package-async-trait-0.1.82", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-openssl-macros-0.1.1" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-windows_x86_64_gnu-0.52.6", + "relatedSpdxElement": "SPDXRef-Package-zerovec-0.10.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-windows-targets-0.52.6" + "spdxElementId": "SPDXRef-Package-icu_collections-1.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-num-iter-0.1.45", + "relatedSpdxElement": "SPDXRef-Package-postage-0.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-num-bigint-dig-0.8.4" + "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-getrandom-0.2.15" + "spdxElementId": "SPDXRef-Package-thiserror-impl-1.0.63" }, { - "relatedSpdxElement": "SPDXRef-Package-httpdate-1.0.3", + "relatedSpdxElement": "SPDXRef-Package-tor-units-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-dirs-sys-0.4.1", + "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-dirs-5.0.1" + "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-log-ratelim-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" + "spdxElementId": "SPDXRef-Package-num_enum_derive-0.7.3" }, { - "relatedSpdxElement": "SPDXRef-Package-priority-queue-2.1.0", + "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" + "spdxElementId": "SPDXRef-Package-android_system_properties-0.1.5" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-basic-utils-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-winapi-0.3.9", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-fslock-guard-0.2.0" }, { - "relatedSpdxElement": "SPDXRef-Package-pin-project-1.1.5", + "relatedSpdxElement": "SPDXRef-Package-primeorder-0.13.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-async_executors-0.7.0" + "spdxElementId": "SPDXRef-Package-p256-0.13.2" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-async-utils-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-generic-array-0.14.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" + "spdxElementId": "SPDXRef-Package-sec1-0.7.3" }, { - "relatedSpdxElement": "SPDXRef-Package-windows_aarch64_gnullvm-0.52.6", + "relatedSpdxElement": "SPDXRef-Package-tor-netdoc-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-windows-targets-0.52.6" + "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-dirmgr-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-write16-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" + "spdxElementId": "SPDXRef-Package-icu_normalizer-1.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-windows-sys-0.52.0", + "relatedSpdxElement": "SPDXRef-Package-data-encoding-2.6.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-schannel-0.1.23" + "spdxElementId": "SPDXRef-Package-gosling-0.3.0" }, { - "relatedSpdxElement": "SPDXRef-Package-linux-raw-sys-0.4.14", + "relatedSpdxElement": "SPDXRef-Package-rustversion-1.0.17", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-rustix-0.38.36" + "spdxElementId": "SPDXRef-Package-strum_macros-0.26.4" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", + "relatedSpdxElement": "SPDXRef-Package-bytemuck-1.18.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-thiserror-impl-1.0.63" + "spdxElementId": "SPDXRef-Package-atomic-0.6.0" }, { - "relatedSpdxElement": "SPDXRef-Package-security-framework-sys-2.11.1", + "relatedSpdxElement": "SPDXRef-Package-unicode-bidi-0.3.15", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-security-framework-2.11.1" + "spdxElementId": "SPDXRef-Package-idna-0.5.0" + }, + { + "relatedSpdxElement": "SPDXRef-Package-tokio-1.40.0", + "relationshipType": "DEPENDS_ON", + "spdxElementId": "SPDXRef-Package-tokio-stream-0.1.16" }, { "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-error-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-ppv-lite86-0.2.20", + "relatedSpdxElement": "SPDXRef-Package-hashbrown-0.14.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-rand_chacha-0.3.1" + "spdxElementId": "SPDXRef-Package-indexmap-2.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-addr2line-0.22.0", + "relatedSpdxElement": "SPDXRef-Package-hex-0.4.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-backtrace-0.3.73" + "spdxElementId": "SPDXRef-Package-serde_with-3.9.0" }, { - "relatedSpdxElement": "SPDXRef-Package-curve25519-dalek-derive-0.1.1", + "relatedSpdxElement": "SPDXRef-Package-caret-0.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-curve25519-dalek-4.1.3" + "spdxElementId": "SPDXRef-Package-tor-socksproto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-asn1-rs-0.6.2" + "spdxElementId": "SPDXRef-Package-derive-adhoc-macros-0.7.3" }, { - "relatedSpdxElement": "SPDXRef-Package-wasix-0.12.21", + "relatedSpdxElement": "SPDXRef-Package-hex-0.4.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-coarsetime-0.1.34" + "spdxElementId": "SPDXRef-Package-bson-2.11.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-bytes-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-subtle-2.6.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" + "spdxElementId": "SPDXRef-Package-curve25519-dalek-4.1.3" }, { - "relatedSpdxElement": "SPDXRef-Package-zstd-safe-7.2.1", + "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-async-compression-0.4.12" + "spdxElementId": "SPDXRef-Package-der-0.7.9" }, { - "relatedSpdxElement": "SPDXRef-Package-regex-automata-0.4.7", + "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-regex-1.10.6" + "spdxElementId": "SPDXRef-Package-notify-7.0.0" }, { - "relatedSpdxElement": "SPDXRef-Package-displaydoc-0.2.5", + "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-asn1-rs-0.6.2" + "spdxElementId": "SPDXRef-Package-curve25519-dalek-4.1.3" }, { - "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", + "relatedSpdxElement": "SPDXRef-Package-base64-0.22.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-serde_with-3.9.0" }, { - "relatedSpdxElement": "SPDXRef-Package-paste-1.0.15", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" + "spdxElementId": "SPDXRef-Package-derive_more-impl-1.0.0" }, { - "relatedSpdxElement": "SPDXRef-Package-core-foundation-sys-0.8.7", + "relatedSpdxElement": "SPDXRef-Package-itertools-0.13.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-security-framework-2.11.1" + "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-ordered-float-2.10.1", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-serde-value-0.7.0" + "spdxElementId": "SPDXRef-Package-tracing-test-macro-0.2.5" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro-crate-3.2.0", + "relatedSpdxElement": "SPDXRef-Package-tor-units-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-num_enum_derive-0.7.3" + "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-serde_json-1.0.128", + "relatedSpdxElement": "SPDXRef-Package-rand_core-0.6.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-serde_with-3.9.0" + "spdxElementId": "SPDXRef-Package-group-0.13.0" }, { - "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", + "relatedSpdxElement": "SPDXRef-Package-derive-deftly-macros-0.14.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-hmac-0.12.1" + "spdxElementId": "SPDXRef-Package-derive-deftly-0.14.2" }, { - "relatedSpdxElement": "SPDXRef-Package-num-traits-0.2.19", + "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ordered-float-2.10.1" + "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-async-trait-0.1.82", + "relatedSpdxElement": "SPDXRef-Package-tor-relay-selection-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-num-integer-0.1.46", + "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-num-bigint-0.4.6" + "spdxElementId": "SPDXRef-Package-darling_core-0.20.10" }, { - "relatedSpdxElement": "SPDXRef-Package-matchers-0.1.0", + "relatedSpdxElement": "SPDXRef-Package-rustc-demangle-0.1.24", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tracing-subscriber-0.3.18" + "spdxElementId": "SPDXRef-Package-backtrace-0.3.73" }, { - "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", + "relatedSpdxElement": "SPDXRef-Package-postage-0.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-socksproto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-enum-ordinalize-3.1.15", + "relatedSpdxElement": "SPDXRef-Package-fs-mistrust-0.8.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-educe-0.4.23" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-units-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-x25519-dalek-2.0.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-windows-sys-0.59.0", + "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-filetime-0.2.25" + "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-num-traits-0.2.19", + "relatedSpdxElement": "SPDXRef-Package-humantime-2.1.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-num-iter-0.1.45" + "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-wasm-bindgen-0.2.93", + "relatedSpdxElement": "SPDXRef-Package-byteorder-1.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-iana-time-zone-0.1.60" + "spdxElementId": "SPDXRef-Package-zerocopy-0.7.35" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-bytes-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-paste-1.0.15", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-error-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-hostname-validator-1.1.1", + "relatedSpdxElement": "SPDXRef-Package-itertools-0.13.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-hex-0.4.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-zerovec-derive-0.10.3" + "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tracing-core-0.1.32", + "relatedSpdxElement": "SPDXRef-Package-memchr-2.7.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tracing-test-0.2.5" + "spdxElementId": "SPDXRef-Package-regex-1.10.6" }, { - "relatedSpdxElement": "SPDXRef-Package-sharded-slab-0.1.7", + "relatedSpdxElement": "SPDXRef-Package-futures-task-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tracing-subscriber-0.3.18" + "spdxElementId": "SPDXRef-Package-async_executors-0.7.0" }, { - "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", + "relatedSpdxElement": "SPDXRef-Package-backtrace-0.3.73", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-generic-array-0.14.7" + "spdxElementId": "SPDXRef-Package-tokio-1.40.0" }, { - "relatedSpdxElement": "SPDXRef-Package-fslock-arti-fork-0.2.0", + "relatedSpdxElement": "SPDXRef-Package-tor-basic-utils-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-fslock-guard-0.2.0" + "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" }, { "relatedSpdxElement": "SPDXRef-Package-phf_shared-0.11.2", @@ -13131,1084 +13126,1084 @@ "spdxElementId": "SPDXRef-Package-phf_generator-0.11.2" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-async-utils-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-base64ct-1.6.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-linkspec-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-itertools-0.13.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-relay-selection-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-memchr-2.7.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-bytes-0.24.0" + "spdxElementId": "SPDXRef-Package-object-0.36.4" }, { - "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", + "relatedSpdxElement": "SPDXRef-Package-fastrand-2.1.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" + "spdxElementId": "SPDXRef-Package-tempfile-3.12.0" }, { - "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", + "relatedSpdxElement": "SPDXRef-Package-hkdf-0.12.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-error-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-weak-table-0.3.2", + "relatedSpdxElement": "SPDXRef-Package-event-listener-5.3.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-regex-1.10.6", + "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" + "spdxElementId": "SPDXRef-Package-getrandom-0.2.15" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-rustversion-1.0.17", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-fslock-guard-0.2.0" + "spdxElementId": "SPDXRef-Package-strum_macros-0.25.3" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-consdiff-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-crc32fast-1.4.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-flate2-1.0.33" }, { - "relatedSpdxElement": "SPDXRef-Package-num-traits-0.2.19", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-num-integer-0.1.46" + "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", + "relatedSpdxElement": "SPDXRef-Package-elliptic-curve-0.13.8", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-enum-ordinalize-3.1.15" + "spdxElementId": "SPDXRef-Package-ecdsa-0.16.9" }, { - "relatedSpdxElement": "SPDXRef-Package-curve25519-dalek-4.1.3", + "relatedSpdxElement": "SPDXRef-Package-tracing-test-0.2.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ed25519-dalek-2.1.1" + "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-typenum-1.17.0", + "relatedSpdxElement": "SPDXRef-Package-icu_locid_transform-1.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-icu_properties-1.5.1" }, { - "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", + "relatedSpdxElement": "SPDXRef-Package-tor-netdoc-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-async-utils-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-strum-0.26.3", + "relatedSpdxElement": "SPDXRef-Package-postage-0.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-scopeguard-1.2.0", + "relatedSpdxElement": "SPDXRef-Package-tor-rtcompat-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" + "spdxElementId": "SPDXRef-Package-async-native-tls-0.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-cpufeatures-0.2.13", + "relatedSpdxElement": "SPDXRef-Package-tor-cell-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-keccak-0.1.5" + "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-safelog-0.4.1", + "relatedSpdxElement": "SPDXRef-Package-tor-netdoc-0.24.0", "relationshipType": "DEPENDS_ON", "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-memchr-2.7.4", + "relatedSpdxElement": "SPDXRef-Package-subtle-2.6.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" + "spdxElementId": "SPDXRef-Package-rsa-0.9.6" }, { - "relatedSpdxElement": "SPDXRef-Package-rand_core-0.6.4", + "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-p521-0.13.3" + "spdxElementId": "SPDXRef-Package-tor-log-ratelim-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-pkcs8-0.10.2", + "relatedSpdxElement": "SPDXRef-Package-oneshot-fused-workaround-0.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-elliptic-curve-0.13.8" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-ryu-1.0.18", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" + "spdxElementId": "SPDXRef-Package-serde_json-1.0.128" }, { - "relatedSpdxElement": "SPDXRef-Package-sha2-0.10.8", + "relatedSpdxElement": "SPDXRef-Package-phf_macros-0.11.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ed25519-dalek-2.1.1" + "spdxElementId": "SPDXRef-Package-phf-0.11.2" }, { - "relatedSpdxElement": "SPDXRef-Package-memchr-2.7.4", + "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-regex-1.10.6" + "spdxElementId": "SPDXRef-Package-tor-rtcompat-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-persist-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-linux-raw-sys-0.4.14", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-rustix-0.38.36" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-hashbrown-0.12.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-indexmap-1.9.3" }, { - "relatedSpdxElement": "SPDXRef-Package-hex-0.4.3", + "relatedSpdxElement": "SPDXRef-Package-serde_ignored-0.1.10", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-bson-2.11.0" + "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", + "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", + "relatedSpdxElement": "SPDXRef-Package-filetime-0.2.25", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-cpufeatures-0.2.13" + "spdxElementId": "SPDXRef-Package-notify-7.0.0" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-bitflags-2.6.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-async-utils-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", + "relatedSpdxElement": "SPDXRef-Package-shellexpand-3.1.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-security-framework-2.11.1" + "spdxElementId": "SPDXRef-Package-tor-config-path-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" + "spdxElementId": "SPDXRef-Package-serde_derive-1.0.209" }, { - "relatedSpdxElement": "SPDXRef-Package-rusticata-macros-4.1.0", + "relatedSpdxElement": "SPDXRef-Package-rustix-0.38.36", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-der-parser-9.0.0" + "spdxElementId": "SPDXRef-Package-tempfile-3.12.0" }, { - "relatedSpdxElement": "SPDXRef-Package-filetime-0.2.25", + "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-relay-selection-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-signature-2.2.0", + "relatedSpdxElement": "SPDXRef-Package-hex-0.4.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ed25519-2.2.3" + "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", + "relatedSpdxElement": "SPDXRef-Package-data-encoding-2.6.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" }, { - "relatedSpdxElement": "SPDXRef-Package-fs-mistrust-0.8.0", + "relatedSpdxElement": "SPDXRef-Package-tinystr-0.7.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" + "spdxElementId": "SPDXRef-Package-icu_locid_transform-1.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-memchr-2.7.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-consdiff-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" }, { "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-time-0.3.36" + "spdxElementId": "SPDXRef-Package-serde_bytes-0.11.15" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-utf8_iter-1.0.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-cert-0.24.0" + "spdxElementId": "SPDXRef-Package-icu_normalizer-1.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-safelog-0.4.1", + "relatedSpdxElement": "SPDXRef-Package-tinystr-0.7.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-socksproto-0.24.0" + "spdxElementId": "SPDXRef-Package-icu_locid-1.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tokio-util-0.7.12", + "relatedSpdxElement": "SPDXRef-Package-writeable-0.5.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-rtcompat-0.24.0" + "spdxElementId": "SPDXRef-Package-icu_provider-1.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-flate2-1.0.33", + "relatedSpdxElement": "SPDXRef-Package-bson-2.11.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-async-compression-0.4.12" + "spdxElementId": "SPDXRef-Package-cgosling-0.3.1" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-checkable-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-ssh-key-0.6.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-netdir-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-visibility-0.1.1" }, { - "relatedSpdxElement": "SPDXRef-Package-writeable-0.5.5", + "relatedSpdxElement": "SPDXRef-Package-zerovec-derive-0.10.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_locid-1.5.0" + "spdxElementId": "SPDXRef-Package-zerovec-0.10.4" }, { - "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", + "relatedSpdxElement": "SPDXRef-Package-tor-bytes-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-socket2-0.5.7" + "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-p256-0.13.2", + "relatedSpdxElement": "SPDXRef-Package-tor-units-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ssh-key-0.6.6" + "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", + "relatedSpdxElement": "SPDXRef-Package-fslock-0.2.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ecdsa-0.16.9" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-regex-syntax-0.8.4", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-regex-1.10.6" + "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-memmap2-0.9.4", + "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-curve25519-dalek-4.1.3" }, { - "relatedSpdxElement": "SPDXRef-Package-amplify-4.7.0", + "relatedSpdxElement": "SPDXRef-Package-tor-rtmock-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-memchr-2.7.4", + "relatedSpdxElement": "SPDXRef-Package-p521-0.13.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-aho-corasick-1.1.3" + "spdxElementId": "SPDXRef-Package-ssh-key-0.6.6" }, { - "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-adler-1.0.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-parking_lot_core-0.9.10" + "spdxElementId": "SPDXRef-Package-miniz_oxide-0.7.4" }, { - "relatedSpdxElement": "SPDXRef-Package-core-foundation-sys-0.8.7", + "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-iana-time-zone-0.1.60" + "spdxElementId": "SPDXRef-Package-instant-0.1.13" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-bytes-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tor-cell-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-socksproto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-safelog-0.4.1", + "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-wasm-bindgen-macro-support-0.2.93" + "spdxElementId": "SPDXRef-Package-sec1-0.7.3" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-interface-0.4.0", + "relatedSpdxElement": "SPDXRef-Package-tor-checkable-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-cgosling-0.3.1" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-domain-0.10.0", + "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" + "spdxElementId": "SPDXRef-Package-derive-deftly-macros-0.14.2" }, { - "relatedSpdxElement": "SPDXRef-Package-same-file-1.0.6", + "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-walkdir-2.5.0" + "spdxElementId": "SPDXRef-Package-tor-log-ratelim-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-bitflags-2.6.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-der-0.7.9", + "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ecdsa-0.16.9" + "spdxElementId": "SPDXRef-Package-fslock-arti-fork-0.2.0" }, { - "relatedSpdxElement": "SPDXRef-Package-data-encoding-2.6.0", + "relatedSpdxElement": "SPDXRef-Package-dyn-clone-1.0.17", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-data-encoding-macro-internal-0.1.13" + "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-ssh-key-0.6.6", + "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-slotmap-careful-0.2.1", + "relatedSpdxElement": "SPDXRef-Package-tinystr-0.7.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-amplify-4.7.0", + "relatedSpdxElement": "SPDXRef-Package-tor-linkspec-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-kqueue-1.0.8", + "relatedSpdxElement": "SPDXRef-Package-darling_macro-0.14.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-notify-7.0.0" + "spdxElementId": "SPDXRef-Package-darling-0.14.4" }, { - "relatedSpdxElement": "SPDXRef-Package-windows_i686_gnu-0.48.5", + "relatedSpdxElement": "SPDXRef-Package-elliptic-curve-0.13.8", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-windows-targets-0.48.5" + "spdxElementId": "SPDXRef-Package-p256-0.13.2" }, { - "relatedSpdxElement": "SPDXRef-Package-rand_core-0.6.4", + "relatedSpdxElement": "SPDXRef-Package-yoke-0.7.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-icu_provider-1.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" + "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-humantime-serde-1.1.1", + "relatedSpdxElement": "SPDXRef-Package-libm-0.2.8", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-num-traits-0.2.19" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-netdoc-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-windows-targets-0.52.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" + "spdxElementId": "SPDXRef-Package-chrono-0.4.38" }, { - "relatedSpdxElement": "SPDXRef-Package-icu_properties_data-1.5.0", + "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_properties-1.5.1" + "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-rustversion-1.0.17", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-strum_macros-0.26.4" + "spdxElementId": "SPDXRef-Package-asn1-rs-impl-0.2.0" }, { - "relatedSpdxElement": "SPDXRef-Package-getrandom-0.2.15", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-strum_macros-0.25.3" }, { - "relatedSpdxElement": "SPDXRef-Package-time-0.3.36", + "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-rusqlite-0.32.1" + "spdxElementId": "SPDXRef-Package-tor-bytes-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-cpufeatures-0.2.13", + "relatedSpdxElement": "SPDXRef-Package-syn-1.0.109", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-sha1-0.10.6" + "spdxElementId": "SPDXRef-Package-derive-adhoc-macros-0.7.3" }, { - "relatedSpdxElement": "SPDXRef-Package-regex-1.10.6", + "relatedSpdxElement": "SPDXRef-Package-futures-core-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" + "spdxElementId": "SPDXRef-Package-async-compression-0.4.12" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_builder_fork_arti-0.11.2", + "relatedSpdxElement": "SPDXRef-Package-ecdsa-0.16.9", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-p384-0.13.0" }, { - "relatedSpdxElement": "SPDXRef-Package-darling_core-0.14.4", + "relatedSpdxElement": "SPDXRef-Package-futures-core-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-darling-0.14.4" + "spdxElementId": "SPDXRef-Package-futures-util-0.3.30" }, { - "relatedSpdxElement": "SPDXRef-Package-regex-automata-0.4.7", + "relatedSpdxElement": "SPDXRef-Package-deranged-0.3.11", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-bstr-1.10.0" + "spdxElementId": "SPDXRef-Package-time-0.3.36" }, { - "relatedSpdxElement": "SPDXRef-Package-zerovec-derive-0.10.3", + "relatedSpdxElement": "SPDXRef-Package-tor-memquota-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-zerovec-0.10.4" + "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tracing-test-macro-0.2.5", + "relatedSpdxElement": "SPDXRef-Package-indexmap-2.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tracing-test-0.2.5" + "spdxElementId": "SPDXRef-Package-serde_json-1.0.128" }, { - "relatedSpdxElement": "SPDXRef-Package-rand_chacha-0.3.1", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-rand-0.8.5" + "spdxElementId": "SPDXRef-Package-tor-socksproto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-async-utils-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-futures-executor-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-futures-0.3.30" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-core-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-tor-netdoc-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-futures-channel-0.3.30" + "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-rtcompat-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-der-0.7.9", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" + "spdxElementId": "SPDXRef-Package-sec1-0.7.3" }, { - "relatedSpdxElement": "SPDXRef-Package-powerfmt-0.2.0", + "relatedSpdxElement": "SPDXRef-Package-derive-adhoc-0.7.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-deranged-0.3.11" + "spdxElementId": "SPDXRef-Package-pwd-grp-0.1.1" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-tor-memquota-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-fs-mistrust-0.8.0" + "spdxElementId": "SPDXRef-Package-tor-units-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-utf8_iter-1.0.4", + "relatedSpdxElement": "SPDXRef-Package-windows-targets-0.52.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_normalizer-1.5.0" + "spdxElementId": "SPDXRef-Package-windows-sys-0.52.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-relay-selection-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tracing-core-0.1.32", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tracing-subscriber-0.3.18" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-checkable-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-minimal-lexical-0.2.1", + "relatedSpdxElement": "SPDXRef-Package-glob-match-0.2.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-nom-7.1.3" + "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-lock_api-0.4.12", + "relatedSpdxElement": "SPDXRef-Package-spki-0.7.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-parking_lot-0.12.3" + "spdxElementId": "SPDXRef-Package-ecdsa-0.16.9" }, { - "relatedSpdxElement": "SPDXRef-Package-windows-sys-0.52.0", + "relatedSpdxElement": "SPDXRef-Package-tor-memquota-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-mio-1.0.2" + "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-heck-0.5.0", + "relatedSpdxElement": "SPDXRef-Package-windows-sys-0.48.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-strum_macros-0.26.4" + "spdxElementId": "SPDXRef-Package-dirs-sys-0.4.1" }, { - "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", + "relatedSpdxElement": "SPDXRef-Package-k12-0.3.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-humantime-2.1.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-openssl-macros-0.1.1" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-sha3-0.10.8", + "relatedSpdxElement": "SPDXRef-Package-strum-0.25.0", "relationshipType": "DEPENDS_ON", "spdxElementId": "SPDXRef-Package-derive-adhoc-macros-0.7.3" }, { - "relatedSpdxElement": "SPDXRef-Package-regex-automata-0.1.10", + "relatedSpdxElement": "SPDXRef-Package-derive_builder_fork_arti-0.11.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-matchers-0.1.0" + "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-crypto-common-0.1.6", + "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-digest-0.10.7" + "spdxElementId": "SPDXRef-Package-sha1-0.10.6" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-config-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-basic-utils-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-toml_edit-0.22.20", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-thread_local-1.1.8" + "spdxElementId": "SPDXRef-Package-proc-macro-crate-3.2.0" }, { - "relatedSpdxElement": "SPDXRef-Package-itertools-0.13.0", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" + "spdxElementId": "SPDXRef-Package-derive_builder_core_fork_arti-0.11.2" }, { - "relatedSpdxElement": "SPDXRef-Package-smallvec-1.13.2", + "relatedSpdxElement": "SPDXRef-Package-derive-adhoc-macros-0.7.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_normalizer-1.5.0" + "spdxElementId": "SPDXRef-Package-derive-adhoc-0.7.3" }, { - "relatedSpdxElement": "SPDXRef-Package-amplify-4.7.0", + "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-basic-utils-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tor-proto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-num-bigint-dig-0.8.4", + "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-rsa-0.9.6" + "spdxElementId": "SPDXRef-Package-rand-0.8.5" }, { - "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", + "relatedSpdxElement": "SPDXRef-Package-fs-mistrust-0.8.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-rand_core-0.6.4", + "relatedSpdxElement": "SPDXRef-Package-wasi-0.11.0+wasi-snapshot-preview1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-signature-2.2.0" + "spdxElementId": "SPDXRef-Package-wasix-0.12.21" }, { - "relatedSpdxElement": "SPDXRef-Package-group-0.13.0", + "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-elliptic-curve-0.13.8" + "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-hscrypto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-base64ct-1.6.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-pin-project-internal-1.1.5", + "relatedSpdxElement": "SPDXRef-Package-primeorder-0.13.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-pin-project-1.1.5" + "spdxElementId": "SPDXRef-Package-p521-0.13.3" }, { - "relatedSpdxElement": "SPDXRef-Package-hmac-0.12.1", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-hkdf-0.12.4" + "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-config-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-safelog-0.4.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-pin-project-lite-0.2.14", + "relatedSpdxElement": "SPDXRef-Package-strum-0.26.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-async-compression-0.4.12" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-pem-rfc7468-0.7.0", + "relatedSpdxElement": "SPDXRef-Package-bytes-1.7.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ssh-encoding-0.2.0" + "spdxElementId": "SPDXRef-Package-octseq-0.5.1" }, { - "relatedSpdxElement": "SPDXRef-Package-tokio-1.40.0", + "relatedSpdxElement": "SPDXRef-Package-num-traits-0.2.19", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-async_executors-0.7.0" + "spdxElementId": "SPDXRef-Package-rsa-0.9.6" }, { - "relatedSpdxElement": "SPDXRef-Package-spki-0.7.3", + "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ecdsa-0.16.9" + "spdxElementId": "SPDXRef-Package-inotify-0.10.2" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-zerofrom-derive-0.1.4" + "spdxElementId": "SPDXRef-Package-futures-macro-0.3.30" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-strum_macros-0.25.3" + "spdxElementId": "SPDXRef-Package-tor-rtcompat-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-serde_bytes-0.11.15", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-growable-bloom-filter-2.1.0" }, { "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-pin-project-internal-1.1.5" - }, - { - "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", - "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" + "spdxElementId": "SPDXRef-Package-zerofrom-derive-0.1.4" }, { - "relatedSpdxElement": "SPDXRef-Package-zerofrom-0.1.4", + "relatedSpdxElement": "SPDXRef-Package-heck-0.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_provider-1.5.0" + "spdxElementId": "SPDXRef-Package-strum_macros-0.26.4" }, { - "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", + "relatedSpdxElement": "SPDXRef-Package-num_enum-0.6.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-gosling-0.3.0" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-tracing-core-0.1.32", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-amplify_derive-4.0.1" + "spdxElementId": "SPDXRef-Package-tracing-0.1.40" }, { - "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", + "relatedSpdxElement": "SPDXRef-Package-syn-1.0.109", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" + "spdxElementId": "SPDXRef-Package-data-encoding-macro-internal-0.1.13" }, { - "relatedSpdxElement": "SPDXRef-Package-serde_with-3.9.0", + "relatedSpdxElement": "SPDXRef-Package-num-traits-0.2.19", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" + "spdxElementId": "SPDXRef-Package-num-iter-0.1.45" }, { - "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", + "relatedSpdxElement": "SPDXRef-Package-wasm-bindgen-macro-support-0.2.93", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-wasm-bindgen-macro-0.2.93" }, { - "relatedSpdxElement": "SPDXRef-Package-pwd-grp-0.1.1", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-fs-mistrust-0.8.0" + "spdxElementId": "SPDXRef-Package-async-trait-0.1.82" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", + "relatedSpdxElement": "SPDXRef-Package-safelog-0.4.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-serde_with_macros-3.9.0" + "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-memchr-2.7.4", + "relatedSpdxElement": "SPDXRef-Package-pkcs8-0.10.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-futures-util-0.3.30" + "spdxElementId": "SPDXRef-Package-elliptic-curve-0.13.8" }, { - "relatedSpdxElement": "SPDXRef-Package-indexmap-2.5.0", + "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-toml_edit-0.19.15" + "spdxElementId": "SPDXRef-Package-signature-2.2.0" }, { - "relatedSpdxElement": "SPDXRef-Package-ahash-0.8.11", + "relatedSpdxElement": "SPDXRef-Package-tracing-core-0.1.32", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-bson-2.11.0" + "spdxElementId": "SPDXRef-Package-tracing-log-0.2.0" }, { - "relatedSpdxElement": "SPDXRef-Package-rand_core-0.6.4", + "relatedSpdxElement": "SPDXRef-Package-pkcs1-0.7.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-rand_chacha-0.3.1" + "spdxElementId": "SPDXRef-Package-rsa-0.9.6" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", + "relatedSpdxElement": "SPDXRef-Package-futures-core-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-strum_macros-0.26.4" + "spdxElementId": "SPDXRef-Package-futures-0.3.30" }, { - "relatedSpdxElement": "SPDXRef-Package-windows-targets-0.52.6", + "relatedSpdxElement": "SPDXRef-Package-syn-1.0.109", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-windows-sys-0.59.0" + "spdxElementId": "SPDXRef-Package-derive_builder_macro_fork_arti-0.11.2" }, { - "relatedSpdxElement": "SPDXRef-Package-openssl-0.10.66", + "relatedSpdxElement": "SPDXRef-Package-hmac-0.12.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-native-tls-0.2.12" + "spdxElementId": "SPDXRef-Package-hkdf-0.12.4" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-hscrypto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-socksproto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-basic-utils-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-proto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-hex-0.4.3", "relationshipType": "DEPENDS_ON", "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-log-0.4.22", + "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-mio-1.0.2" + "spdxElementId": "SPDXRef-Package-tracing-test-macro-0.2.5" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-phf_macros-0.11.2" + "spdxElementId": "SPDXRef-Package-figment-0.10.19" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-asn1-rs-derive-0.5.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" + "spdxElementId": "SPDXRef-Package-asn1-rs-0.6.2" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-stable_deref_trait-1.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-yoke-0.7.4" }, { - "relatedSpdxElement": "SPDXRef-Package-litemap-0.7.3", + "relatedSpdxElement": "SPDXRef-Package-icu_collections-1.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_locid-1.5.0" + "spdxElementId": "SPDXRef-Package-icu_properties-1.5.1" }, { - "relatedSpdxElement": "SPDXRef-Package-bitflags-2.6.0", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-libredox-0.1.3" + "spdxElementId": "SPDXRef-Package-serde_with_macros-3.9.0" }, { - "relatedSpdxElement": "SPDXRef-Package-bitflags-2.6.0", + "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" + "spdxElementId": "SPDXRef-Package-safelog-0.4.1" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-netdir-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-syn-1.0.109" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-num-integer-0.1.46", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-basic-utils-0.24.0" + "spdxElementId": "SPDXRef-Package-num-bigint-dig-0.8.4" }, { - "relatedSpdxElement": "SPDXRef-Package-memchr-2.7.4", + "relatedSpdxElement": "SPDXRef-Package-itertools-0.11.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-object-0.36.4" + "spdxElementId": "SPDXRef-Package-derive-adhoc-macros-0.7.3" }, { - "relatedSpdxElement": "SPDXRef-Package-phf_shared-0.11.2", + "relatedSpdxElement": "SPDXRef-Package-windows_aarch64_gnullvm-0.48.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-phf-0.11.2" + "spdxElementId": "SPDXRef-Package-windows-targets-0.48.5" }, { - "relatedSpdxElement": "SPDXRef-Package-getrandom-0.2.15", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-uuid-1.10.0" + "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-gimli-0.29.0", + "relatedSpdxElement": "SPDXRef-Package-inotify-0.10.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-addr2line-0.22.0" + "spdxElementId": "SPDXRef-Package-notify-7.0.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", + "relatedSpdxElement": "SPDXRef-Package-num-traits-0.2.19", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" + "spdxElementId": "SPDXRef-Package-num-bigint-0.4.6" }, { - "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", + "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-general-addr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-hscrypto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-ssh-cipher-0.2.0", + "relatedSpdxElement": "SPDXRef-Package-wasm-bindgen-backend-0.2.93", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ssh-key-0.6.6" + "spdxElementId": "SPDXRef-Package-wasm-bindgen-macro-support-0.2.93" }, { - "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", + "relatedSpdxElement": "SPDXRef-Package-bytes-1.7.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-proc-macro-crate-1.3.1" + "spdxElementId": "SPDXRef-Package-tokio-1.40.0" }, { - "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-signal-hook-registry-1.4.2" + "spdxElementId": "SPDXRef-Package-zeroize_derive-1.4.2" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-zeroize_derive-1.4.2" + "spdxElementId": "SPDXRef-Package-amplify_derive-4.0.1" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-async-utils-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-error-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-fnv-1.0.7", + "relatedSpdxElement": "SPDXRef-Package-signal-hook-registry-1.4.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-darling_core-0.20.10" + "spdxElementId": "SPDXRef-Package-tokio-1.40.0" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-signature-2.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-wasm-bindgen-backend-0.2.93" + "spdxElementId": "SPDXRef-Package-rsa-0.9.6" }, { - "relatedSpdxElement": "SPDXRef-Package-rusticata-macros-4.1.0", + "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-asn1-rs-0.6.2" + "spdxElementId": "SPDXRef-Package-openssl-sys-0.9.103" }, { - "relatedSpdxElement": "SPDXRef-Package-pin-project-1.1.5", + "relatedSpdxElement": "SPDXRef-Package-js-sys-0.3.70", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-bson-2.11.0" }, { - "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", + "relatedSpdxElement": "SPDXRef-Package-memmap2-0.9.4", "relationshipType": "DEPENDS_ON", "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-itertools-0.13.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-honk-rpc-0.3.0", + "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-gosling-0.3.0" + "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" + "spdxElementId": "SPDXRef-Package-darling_macro-0.20.10" }, { - "relatedSpdxElement": "SPDXRef-Package-typenum-1.17.0", + "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-crypto-common-0.1.6" + "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-valuable-0.1.0", + "relatedSpdxElement": "SPDXRef-Package-aes-0.8.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tracing-core-0.1.32" + "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-basic-utils-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-serde_bytes-0.11.15", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-relay-selection-0.24.0" + "spdxElementId": "SPDXRef-Package-bson-2.11.0" }, { "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-aes-0.8.4" }, { - "relatedSpdxElement": "SPDXRef-Package-crossbeam-utils-0.8.20", + "relatedSpdxElement": "SPDXRef-Package-rfc6979-0.4.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-crossbeam-queue-0.3.11" + "spdxElementId": "SPDXRef-Package-ecdsa-0.16.9" }, { - "relatedSpdxElement": "SPDXRef-Package-either-1.13.0", + "relatedSpdxElement": "SPDXRef-Package-cipher-0.4.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-safelog-0.4.1" + "spdxElementId": "SPDXRef-Package-ssh-cipher-0.2.0" }, { - "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", + "relatedSpdxElement": "SPDXRef-Package-postage-0.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-k12-0.3.0" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", + "relatedSpdxElement": "SPDXRef-Package-bitvec-1.0.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tracing-attributes-0.1.27" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-signature-2.2.0", + "relatedSpdxElement": "SPDXRef-Package-time-0.3.36", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-domain-0.10.0" }, { - "relatedSpdxElement": "SPDXRef-Package-amplify-4.7.0", + "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-async-utils-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", + "relatedSpdxElement": "SPDXRef-Package-subtle-2.6.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-async-utils-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-num-conv-0.1.0", + "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-time-macros-0.2.18" + "spdxElementId": "SPDXRef-Package-cookie-factory-0.3.3" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-pin-project-lite-0.2.14", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-fs-mistrust-0.8.0" + "spdxElementId": "SPDXRef-Package-tokio-stream-0.1.16" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-darling-0.20.10", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-futures-macro-0.3.30" + "spdxElementId": "SPDXRef-Package-serde_with_macros-3.9.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-safelog-0.4.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-regex-syntax-0.8.4", + "relatedSpdxElement": "SPDXRef-Package-ahash-0.8.11", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-regex-automata-0.4.7" + "spdxElementId": "SPDXRef-Package-hashbrown-0.14.5" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-retry-error-0.6.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-config-path-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", + "relatedSpdxElement": "SPDXRef-Package-inventory-0.3.15", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-der-0.7.9" + "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-basic-utils-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-bytes-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-memquota-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-time-0.3.36", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" + "spdxElementId": "SPDXRef-Package-serde_with-3.9.0" }, { - "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", + "relatedSpdxElement": "SPDXRef-Package-derive_builder_fork_arti-0.11.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-rtcompat-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-bitflags-2.6.0", + "relatedSpdxElement": "SPDXRef-Package-tor-checkable-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-thread_local-1.1.8", + "relatedSpdxElement": "SPDXRef-Package-either-1.13.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tracing-subscriber-0.3.18" + "spdxElementId": "SPDXRef-Package-safelog-0.4.1" }, { - "relatedSpdxElement": "SPDXRef-Package-bson-2.11.0", + "relatedSpdxElement": "SPDXRef-Package-miniz_oxide-0.7.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-cgosling-0.3.1" + "spdxElementId": "SPDXRef-Package-backtrace-0.3.73" }, { - "relatedSpdxElement": "SPDXRef-Package-itertools-0.13.0", + "relatedSpdxElement": "SPDXRef-Package-memchr-2.7.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-nom-7.1.3" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-hsclient-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-data-encoding-2.6.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-bytes-1.7.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-derive_builder_core_fork_arti-0.11.2" + "spdxElementId": "SPDXRef-Package-http-1.1.0" }, { - "relatedSpdxElement": "SPDXRef-Package-caret-0.5.0", + "relatedSpdxElement": "SPDXRef-Package-byteorder-1.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-cert-0.24.0" + "spdxElementId": "SPDXRef-Package-num-bigint-dig-0.8.4" }, { - "relatedSpdxElement": "SPDXRef-Package-visibility-0.1.1", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-rtcompat-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-linkspec-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-toml_edit-0.22.20" }, { - "relatedSpdxElement": "SPDXRef-Package-bytes-1.7.1", + "relatedSpdxElement": "SPDXRef-Package-spki-0.7.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-domain-0.10.0" + "spdxElementId": "SPDXRef-Package-pkcs1-0.7.5" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-util-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-memchr-2.7.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-async_executors-0.7.0" + "spdxElementId": "SPDXRef-Package-bstr-1.10.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-bytes-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-form_urlencoded-1.2.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" + "spdxElementId": "SPDXRef-Package-url-2.5.2" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-spki-0.7.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-oneshot-fused-workaround-0.2.0" + "spdxElementId": "SPDXRef-Package-rsa-0.9.6" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-1.0.109", + "relatedSpdxElement": "SPDXRef-Package-gosling-0.3.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-derive_builder_macro_fork_arti-0.11.2" + "spdxElementId": "SPDXRef-Package-cgosling-0.3.1" }, { - "relatedSpdxElement": "SPDXRef-Package-atomic-0.5.3", + "relatedSpdxElement": "SPDXRef-Package-tor-rtcompat-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-postage-0.5.0" + "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-rtcompat-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-same-file-1.0.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" + "spdxElementId": "SPDXRef-Package-walkdir-2.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-coarsetime-0.1.34", + "relatedSpdxElement": "SPDXRef-Package-tor-linkspec-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-relay-selection-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tracing-test-0.2.5", + "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" + "spdxElementId": "SPDXRef-Package-thread_local-1.1.8" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-netdoc-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-fallible-iterator-0.3.0", + "relatedSpdxElement": "SPDXRef-Package-itoa-1.0.11", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-rusqlite-0.32.1" + "spdxElementId": "SPDXRef-Package-time-0.3.36" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-checkable-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" + "spdxElementId": "SPDXRef-Package-slotmap-1.0.7" + }, + { + "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", + "relationshipType": "DEPENDS_ON", + "spdxElementId": "SPDXRef-Package-coarsetime-0.1.34" }, { "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", @@ -14216,1684 +14211,1689 @@ "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-serde_with-3.9.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-amplify_syn-2.0.1", + "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-amplify_derive-4.0.1" + "spdxElementId": "SPDXRef-Package-aes-0.8.4" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-bytes-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", + "relatedSpdxElement": "SPDXRef-Package-tinyvec-1.8.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-core-foundation-0.9.4" + "spdxElementId": "SPDXRef-Package-unicode-normalization-0.1.23" }, { - "relatedSpdxElement": "SPDXRef-Package-subtle-2.6.1", + "relatedSpdxElement": "SPDXRef-Package-oneshot-fused-workaround-0.2.0", "relationshipType": "DEPENDS_ON", "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-cipher-0.4.4", + "relatedSpdxElement": "SPDXRef-Package-unicode-ident-1.0.12", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-aes-0.8.4" + "spdxElementId": "SPDXRef-Package-syn-2.0.77" }, { - "relatedSpdxElement": "SPDXRef-Package-strum-0.26.3", + "relatedSpdxElement": "SPDXRef-Package-tor-netdir-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-error-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", + "relatedSpdxElement": "SPDXRef-Package-nom-7.1.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-rusticata-macros-4.1.0" }, { - "relatedSpdxElement": "SPDXRef-Package-winapi-i686-pc-windows-gnu-0.4.0", + "relatedSpdxElement": "SPDXRef-Package-subtle-2.6.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-winapi-0.3.9" + "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" }, { "relatedSpdxElement": "SPDXRef-Package-hex-0.4.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-consdiff-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-config-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-shellexpand-3.1.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-async-trait-0.1.82", + "relatedSpdxElement": "SPDXRef-Package-sha3-0.10.8", + "relationshipType": "DEPENDS_ON", + "spdxElementId": "SPDXRef-Package-k12-0.3.0" + }, + { + "relatedSpdxElement": "SPDXRef-Package-tor-bytes-0.24.0", + "relationshipType": "DEPENDS_ON", + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + }, + { + "relatedSpdxElement": "SPDXRef-Package-tokio-util-0.7.12", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-rtcompat-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-amplify_num-0.5.3", + "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-amplify-4.7.0" + "spdxElementId": "SPDXRef-Package-filetime-0.2.25" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-core-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-serde_derive-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-futures-0.3.30" + "spdxElementId": "SPDXRef-Package-serde-1.0.209" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-rtcompat-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-cert-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-humantime-serde-1.1.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-aes-0.8.4", + "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-consdiff-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", + "relatedSpdxElement": "SPDXRef-Package-bitflags-2.6.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-async-trait-0.1.82" + "spdxElementId": "SPDXRef-Package-redox_syscall-0.5.3" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-redox_syscall-0.5.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-cookie-factory-0.3.3" + "spdxElementId": "SPDXRef-Package-libredox-0.1.3" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-num-traits-0.2.19", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-pin-project-internal-1.1.5" + "spdxElementId": "SPDXRef-Package-ordered-float-2.10.1" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-general-addr-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tor-rtcompat-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" }, { "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-derive_more-impl-1.0.0" + "spdxElementId": "SPDXRef-Package-cgosling-proc-macros-0.0.0" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", + "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-futures-macro-0.3.30" + "spdxElementId": "SPDXRef-Package-tempfile-3.12.0" }, { - "relatedSpdxElement": "SPDXRef-Package-amplify-4.7.0", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-socksproto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-protover-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", + "relatedSpdxElement": "SPDXRef-Package-rsa-0.9.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-inotify-0.10.2" + "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", + "relatedSpdxElement": "SPDXRef-Package-winapi-0.3.9", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-fslock-arti-fork-0.2.0" }, { - "relatedSpdxElement": "SPDXRef-Package-zerofrom-0.1.4", + "relatedSpdxElement": "SPDXRef-Package-getrandom-0.2.15", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_collections-1.5.0" + "spdxElementId": "SPDXRef-Package-rand_core-0.6.4" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-hscrypto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-displaydoc-0.2.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" + "spdxElementId": "SPDXRef-Package-asn1-rs-0.6.2" }, { - "relatedSpdxElement": "SPDXRef-Package-rand_core-0.6.4", + "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ed25519-dalek-2.1.1" + "spdxElementId": "SPDXRef-Package-tokio-macros-2.4.0" }, { - "relatedSpdxElement": "SPDXRef-Package-strsim-0.11.1", + "relatedSpdxElement": "SPDXRef-Package-syn-1.0.109", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-darling_core-0.20.10" + "spdxElementId": "SPDXRef-Package-darling_core-0.14.4" }, { - "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", + "relatedSpdxElement": "SPDXRef-Package-heck-0.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-derive-deftly-0.14.2" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-pin-project-1.1.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-derive-adhoc-macros-0.7.3" + "spdxElementId": "SPDXRef-Package-async_executors-0.7.0" }, { - "relatedSpdxElement": "SPDXRef-Package-der-parser-9.0.0", + "relatedSpdxElement": "SPDXRef-Package-futures-io-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-futures-util-0.3.30" }, { - "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", + "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-getrandom-0.2.15" + "spdxElementId": "SPDXRef-Package-tor-checkable-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-num-conv-0.1.0", + "relatedSpdxElement": "SPDXRef-Package-safelog-0.4.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-time-0.3.36" + "spdxElementId": "SPDXRef-Package-tor-bytes-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-persist-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tor-chanmgr-0.24.0", "relationshipType": "DEPENDS_ON", "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-pin-project-lite-0.2.14", + "relatedSpdxElement": "SPDXRef-Package-unicode-xid-0.2.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tracing-0.1.40" + "spdxElementId": "SPDXRef-Package-derive_more-impl-1.0.0" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-task-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-async_executors-0.7.0" + "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-config-path-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-iana-time-zone-0.1.60", + "relatedSpdxElement": "SPDXRef-Package-signature-2.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-chrono-0.4.38" + "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-windows-core-0.52.0", + "relatedSpdxElement": "SPDXRef-Package-subtle-2.6.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-iana-time-zone-0.1.60" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-num-traits-0.2.19", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-indexmap-1.9.3" + "spdxElementId": "SPDXRef-Package-num-integer-0.1.46" }, { - "relatedSpdxElement": "SPDXRef-Package-memchr-2.7.4", + "relatedSpdxElement": "SPDXRef-Package-static_assertions-1.1.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-winnow-0.5.40" + "spdxElementId": "SPDXRef-Package-postage-0.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-zerovec-derive-0.10.3" + "spdxElementId": "SPDXRef-Package-derive-deftly-macros-0.14.2" }, { - "relatedSpdxElement": "SPDXRef-Package-regex-1.10.6", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-sanitize-filename-0.5.0" + "spdxElementId": "SPDXRef-Package-tracing-attributes-0.1.27" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-paste-1.0.15", + "relatedSpdxElement": "SPDXRef-Package-which-4.4.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-basic-utils-0.24.0" + "spdxElementId": "SPDXRef-Package-cgosling-0.3.1" }, { - "relatedSpdxElement": "SPDXRef-Package-adler2-2.0.0", + "relatedSpdxElement": "SPDXRef-Package-ed25519-dalek-2.1.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-miniz_oxide-0.8.0" + "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-paste-1.0.15", + "relatedSpdxElement": "SPDXRef-Package-indexmap-2.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-cgosling-0.3.1" + "spdxElementId": "SPDXRef-Package-priority-queue-2.1.0" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-task-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-futures-executor-0.3.30" + "spdxElementId": "SPDXRef-Package-darling_core-0.20.10" }, { - "relatedSpdxElement": "SPDXRef-Package-static_assertions-1.1.0", + "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" + "spdxElementId": "SPDXRef-Package-crc32fast-1.4.2" }, { - "relatedSpdxElement": "SPDXRef-Package-httparse-1.9.4", + "relatedSpdxElement": "SPDXRef-Package-bytes-1.7.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-bytes-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ahash-0.8.11" + "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-windows_x86_64_gnullvm-0.52.6", + "relatedSpdxElement": "SPDXRef-Package-zstd-sys-2.0.13+zstd.1.5.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-windows-targets-0.52.6" + "spdxElementId": "SPDXRef-Package-zstd-safe-7.2.1" }, { - "relatedSpdxElement": "SPDXRef-Package-oneshot-fused-workaround-0.2.0", + "relatedSpdxElement": "SPDXRef-Package-cpufeatures-0.2.13", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" + "spdxElementId": "SPDXRef-Package-aes-0.8.4" }, { - "relatedSpdxElement": "SPDXRef-Package-toml_datetime-0.6.8", + "relatedSpdxElement": "SPDXRef-Package-syn-1.0.109", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-toml_edit-0.22.20" + "spdxElementId": "SPDXRef-Package-amplify_derive-4.0.1" }, { - "relatedSpdxElement": "SPDXRef-Package-pin-project-lite-0.2.14", + "relatedSpdxElement": "SPDXRef-Package-windows-core-0.52.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-domain-0.10.0" + "spdxElementId": "SPDXRef-Package-iana-time-zone-0.1.60" }, { - "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", + "relatedSpdxElement": "SPDXRef-Package-elliptic-curve-0.13.8", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" + "spdxElementId": "SPDXRef-Package-p521-0.13.3" }, { - "relatedSpdxElement": "SPDXRef-Package-icu_provider-1.5.0", + "relatedSpdxElement": "SPDXRef-Package-rand_chacha-0.3.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_normalizer-1.5.0" + "spdxElementId": "SPDXRef-Package-rand-0.8.5" }, { - "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", + "relatedSpdxElement": "SPDXRef-Package-bounded-vec-deque-0.1.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-itoa-1.0.11", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-http-1.1.0" + "spdxElementId": "SPDXRef-Package-wasm-bindgen-backend-0.2.93" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-async-utils-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-security-framework-sys-2.11.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" + "spdxElementId": "SPDXRef-Package-security-framework-2.11.1" }, { - "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-bstr-1.10.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-proto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tokio-1.40.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" + "spdxElementId": "SPDXRef-Package-tokio-util-0.7.12" }, { - "relatedSpdxElement": "SPDXRef-Package-windows_x86_64_msvc-0.52.6", + "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-windows-targets-0.52.6" + "spdxElementId": "SPDXRef-Package-asn1-rs-derive-0.5.1" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-serde-value-0.7.0" + "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-macro-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-futures-util-0.3.30" + "spdxElementId": "SPDXRef-Package-security-framework-sys-2.11.1" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-humantime-2.1.0", "relationshipType": "DEPENDS_ON", "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-hex-0.4.3", + "relatedSpdxElement": "SPDXRef-Package-tor-protover-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-write16-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-zerofrom-0.1.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_normalizer-1.5.0" + "spdxElementId": "SPDXRef-Package-yoke-0.7.4" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-units-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tor-bytes-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-socksproto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-dyn-clone-1.0.17", + "relatedSpdxElement": "SPDXRef-Package-data-encoding-2.6.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-data-encoding-macro-internal-0.1.13" }, { - "relatedSpdxElement": "SPDXRef-Package-js-sys-0.3.70", + "relatedSpdxElement": "SPDXRef-Package-der-parser-9.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-iana-time-zone-0.1.60" + "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-mio-1.0.2", + "relatedSpdxElement": "SPDXRef-Package-safelog-0.4.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tokio-1.40.0" + "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-byteorder-1.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-darling_core-0.20.10" + "spdxElementId": "SPDXRef-Package-merlin-3.0.0" }, { - "relatedSpdxElement": "SPDXRef-Package-spki-0.7.3", + "relatedSpdxElement": "SPDXRef-Package-wasm-bindgen-shared-0.2.93", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-pkcs1-0.7.5" + "spdxElementId": "SPDXRef-Package-wasm-bindgen-macro-support-0.2.93" }, { - "relatedSpdxElement": "SPDXRef-Package-displaydoc-0.2.5", + "relatedSpdxElement": "SPDXRef-Package-typenum-1.17.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_normalizer-1.5.0" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-time-0.3.36", + "relatedSpdxElement": "SPDXRef-Package-derive_more-impl-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-domain-0.10.0" + "spdxElementId": "SPDXRef-Package-derive_more-1.0.0" }, { - "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", + "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-icu_provider_macros-1.5.0", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_provider-1.5.0" + "spdxElementId": "SPDXRef-Package-icu_provider_macros-1.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-redox_syscall-0.5.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-serde_ignored-0.1.10" + "spdxElementId": "SPDXRef-Package-parking_lot_core-0.9.10" }, { - "relatedSpdxElement": "SPDXRef-Package-anyhow-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-time-macros-0.2.18", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-cgosling-0.3.1" + "spdxElementId": "SPDXRef-Package-time-0.3.36" }, { - "relatedSpdxElement": "SPDXRef-Package-base64-0.22.1", + "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-serde_with-3.9.0" + "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-subtle-2.6.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-cert-0.24.0" + "spdxElementId": "SPDXRef-Package-rfc6979-0.4.0" }, { - "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", + "relatedSpdxElement": "SPDXRef-Package-pin-project-lite-0.2.14", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" + "spdxElementId": "SPDXRef-Package-domain-0.10.0" }, { - "relatedSpdxElement": "SPDXRef-Package-winnow-0.5.40", + "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-toml_edit-0.19.15" + "spdxElementId": "SPDXRef-Package-libredox-0.1.3" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" + "spdxElementId": "SPDXRef-Package-yoke-derive-0.7.4" }, { - "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", + "relatedSpdxElement": "SPDXRef-Package-regex-syntax-0.6.29", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-regex-automata-0.1.10" }, { - "relatedSpdxElement": "SPDXRef-Package-hex-0.4.3", + "relatedSpdxElement": "SPDXRef-Package-ssh-cipher-0.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-serde_with-3.9.0" + "spdxElementId": "SPDXRef-Package-ssh-key-0.6.6" }, { - "relatedSpdxElement": "SPDXRef-Package-data-encoding-macro-0.1.15", + "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" + "spdxElementId": "SPDXRef-Package-proc-macro-crate-1.3.1" }, { - "relatedSpdxElement": "SPDXRef-Package-smallvec-1.13.2", + "relatedSpdxElement": "SPDXRef-Package-safelog-0.4.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-signature-2.2.0", + "relatedSpdxElement": "SPDXRef-Package-tor-rtcompat-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ecdsa-0.16.9" + "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" }, { "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-windows_i686_msvc-0.52.6", + "relatedSpdxElement": "SPDXRef-Package-signature-2.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-windows-targets-0.52.6" + "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-keccak-0.1.5", + "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-sha3-0.10.8" + "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-either-1.13.0", + "relatedSpdxElement": "SPDXRef-Package-amplify-4.7.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-itertools-0.11.0" + "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-core-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-async-compression-0.4.12" + "spdxElementId": "SPDXRef-Package-core-foundation-0.9.4" }, { - "relatedSpdxElement": "SPDXRef-Package-pkcs8-0.10.2", + "relatedSpdxElement": "SPDXRef-Package-num-integer-0.1.46", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ed25519-2.2.3" + "spdxElementId": "SPDXRef-Package-num-iter-0.1.45" }, { - "relatedSpdxElement": "SPDXRef-Package-indexmap-2.5.0", + "relatedSpdxElement": "SPDXRef-Package-zerofrom-derive-0.1.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-toml_edit-0.22.20" + "spdxElementId": "SPDXRef-Package-zerofrom-0.1.4" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" + "spdxElementId": "SPDXRef-Package-tokio-macros-2.4.0" }, { - "relatedSpdxElement": "SPDXRef-Package-async-trait-0.1.82", + "relatedSpdxElement": "SPDXRef-Package-displaydoc-0.2.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-icu_locid-1.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-dirs-sys-0.4.1", + "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-directories-5.0.1" + "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-basic-utils-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-getrandom-0.2.15", + "relatedSpdxElement": "SPDXRef-Package-siphasher-0.3.11", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ahash-0.8.11" + "spdxElementId": "SPDXRef-Package-phf_shared-0.11.2" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-windows_x86_64_msvc-0.52.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-toml_datetime-0.6.8" + "spdxElementId": "SPDXRef-Package-windows-targets-0.52.6" }, { - "relatedSpdxElement": "SPDXRef-Package-generic-array-0.14.7", + "relatedSpdxElement": "SPDXRef-Package-tempfile-3.12.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-inout-0.1.3" + "spdxElementId": "SPDXRef-Package-native-tls-0.2.12" }, { - "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", + "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" + "spdxElementId": "SPDXRef-Package-tor-units-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-elliptic-curve-0.13.8", + "relatedSpdxElement": "SPDXRef-Package-windows-sys-0.52.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-p256-0.13.2" + "spdxElementId": "SPDXRef-Package-rustix-0.38.36" }, { "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-bson-2.11.0" + "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-postage-0.5.0" + "spdxElementId": "SPDXRef-Package-bson-2.11.0" }, { - "relatedSpdxElement": "SPDXRef-Package-pin-project-lite-0.2.14", + "relatedSpdxElement": "SPDXRef-Package-tokio-1.40.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-asynchronous-codec-0.7.0" + "spdxElementId": "SPDXRef-Package-tor-rtcompat-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-wasm-bindgen-macro-support-0.2.93", + "relatedSpdxElement": "SPDXRef-Package-signature-2.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-wasm-bindgen-macro-0.2.93" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-executor-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-base64ct-1.6.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-futures-0.3.30" + "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-crossbeam-queue-0.3.11", + "relatedSpdxElement": "SPDXRef-Package-base16ct-0.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-postage-0.5.0" + "spdxElementId": "SPDXRef-Package-sec1-0.7.3" }, { - "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", + "relatedSpdxElement": "SPDXRef-Package-darling_core-0.20.10", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-config-path-0.24.0" + "spdxElementId": "SPDXRef-Package-darling-0.20.10" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-io-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-serde_with-3.9.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-async-compression-0.4.12" + "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", + "relatedSpdxElement": "SPDXRef-Package-oneshot-fused-workaround-0.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-num_enum_derive-0.6.1" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ssh-key-0.6.6" - }, - { - "relatedSpdxElement": "SPDXRef-Package-tor-protover-0.24.0", - "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-rsa-0.9.6" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-wasm-bindgen-0.2.93", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-zerocopy-derive-0.7.35" + "spdxElementId": "SPDXRef-Package-iana-time-zone-0.1.60" }, { - "relatedSpdxElement": "SPDXRef-Package-libm-0.2.8", + "relatedSpdxElement": "SPDXRef-Package-async-trait-0.1.82", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-num-traits-0.2.19" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-bitflags-2.6.0", + "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-rustix-0.38.36" + "spdxElementId": "SPDXRef-Package-rsa-0.9.6" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-sink-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tokio-util-0.7.12" + "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-linkspec-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tor-netdir-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-relay-selection-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-chanmgr-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tor-config-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-serde_bytes-0.11.15", + "relatedSpdxElement": "SPDXRef-Package-windows_i686_gnu-0.48.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-bson-2.11.0" + "spdxElementId": "SPDXRef-Package-windows-targets-0.48.5" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-1.0.109", + "relatedSpdxElement": "SPDXRef-Package-subtle-2.6.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-derive_builder_core_fork_arti-0.11.2" + "spdxElementId": "SPDXRef-Package-ed25519-dalek-2.1.1" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tokio-1.40.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-config-path-0.24.0" + "spdxElementId": "SPDXRef-Package-cgosling-0.3.1" }, { - "relatedSpdxElement": "SPDXRef-Package-time-core-0.1.2", + "relatedSpdxElement": "SPDXRef-Package-curve25519-dalek-4.1.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-time-macros-0.2.18" + "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-pin-utils-0.1.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-toml_edit-0.22.20" + "spdxElementId": "SPDXRef-Package-futures-util-0.3.30" }, { - "relatedSpdxElement": "SPDXRef-Package-hex-0.4.3", + "relatedSpdxElement": "SPDXRef-Package-curve25519-dalek-4.1.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-basic-utils-0.24.0" + "spdxElementId": "SPDXRef-Package-ed25519-dalek-2.1.1" }, { - "relatedSpdxElement": "SPDXRef-Package-phf_macros-0.11.2", + "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-phf-0.11.2" + "spdxElementId": "SPDXRef-Package-num_enum_derive-0.6.1" }, { - "relatedSpdxElement": "SPDXRef-Package-strum-0.26.3", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-quote-1.0.37" }, { - "relatedSpdxElement": "SPDXRef-Package-home-0.5.9", + "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-which-4.4.2" + "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-oneshot-fused-workaround-0.2.0", + "relatedSpdxElement": "SPDXRef-Package-uuid-1.10.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-bson-2.11.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tokio-util-0.7.12", + "relatedSpdxElement": "SPDXRef-Package-tor-proto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-miniz_oxide-0.8.0", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-flate2-1.0.33" + "spdxElementId": "SPDXRef-Package-futures-macro-0.3.30" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-circmgr-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" + "spdxElementId": "SPDXRef-Package-enum-ordinalize-3.1.15" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-1.0.109", + "relatedSpdxElement": "SPDXRef-Package-pin-project-1.1.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-data-encoding-macro-internal-0.1.13" + "spdxElementId": "SPDXRef-Package-postage-0.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-pkcs8-0.10.2", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-sec1-0.7.3" + "spdxElementId": "SPDXRef-Package-tor-async-utils-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-syn-2.0.77" + "spdxElementId": "SPDXRef-Package-tor-error-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-time-0.3.36", + "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" + "spdxElementId": "SPDXRef-Package-slotmap-careful-0.2.1" }, { - "relatedSpdxElement": "SPDXRef-Package-data-encoding-macro-internal-0.1.13", + "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-data-encoding-macro-0.1.15" + "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-safelog-0.4.1", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-bytes-0.24.0" + "spdxElementId": "SPDXRef-Package-wasm-bindgen-macro-0.2.93" }, { - "relatedSpdxElement": "SPDXRef-Package-tokio-1.40.0", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" + "spdxElementId": "SPDXRef-Package-asn1-rs-impl-0.2.0" }, { - "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", + "relatedSpdxElement": "SPDXRef-Package-phf_generator-0.11.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-aes-0.8.4" + "spdxElementId": "SPDXRef-Package-phf_macros-0.11.2" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-synstructure-0.13.1" + "spdxElementId": "SPDXRef-Package-zerovec-derive-0.10.3" }, { - "relatedSpdxElement": "SPDXRef-Package-slotmap-careful-0.2.1", + "relatedSpdxElement": "SPDXRef-Package-tor-cell-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-crypto-common-0.1.6", + "relatedSpdxElement": "SPDXRef-Package-crossbeam-utils-0.8.20", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-cipher-0.4.4" + "spdxElementId": "SPDXRef-Package-crossbeam-queue-0.3.11" }, { - "relatedSpdxElement": "SPDXRef-Package-tokio-macros-2.4.0", + "relatedSpdxElement": "SPDXRef-Package-tokio-1.40.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tokio-1.40.0" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", + "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-log-ratelim-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-socksproto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-wasi-0.11.0+wasi-snapshot-preview1", + "relatedSpdxElement": "SPDXRef-Package-tap-1.0.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-wasix-0.12.21" + "spdxElementId": "SPDXRef-Package-wyz-0.5.1" }, { - "relatedSpdxElement": "SPDXRef-Package-asynchronous-codec-0.7.0", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-serde_json-1.0.128" }, { - "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", + "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-slotmap-careful-0.2.1" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-siphasher-0.3.11", + "relatedSpdxElement": "SPDXRef-Package-regex-1.10.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-phf_shared-0.11.2" + "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" }, { - "relatedSpdxElement": "SPDXRef-Package-yoke-0.7.4", + "relatedSpdxElement": "SPDXRef-Package-downcast-rs-1.2.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-zerovec-0.10.4" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-rand_core-0.6.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-log-0.4.22", + "relatedSpdxElement": "SPDXRef-Package-pin-project-lite-0.2.14", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-wasm-bindgen-backend-0.2.93" + "spdxElementId": "SPDXRef-Package-async-compression-0.4.12" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-tor-dirclient-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-ryu-1.0.18", + "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-serde_json-1.0.128" + "spdxElementId": "SPDXRef-Package-curve25519-dalek-4.1.3" }, { - "relatedSpdxElement": "SPDXRef-Package-winapi-0.3.9", + "relatedSpdxElement": "SPDXRef-Package-rand_core-0.6.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-fslock-guard-0.2.0" + "spdxElementId": "SPDXRef-Package-ssh-key-0.6.6" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-sha2-0.10.8", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-serde_json-1.0.128" + "spdxElementId": "SPDXRef-Package-p256-0.13.2" }, { - "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", + "relatedSpdxElement": "SPDXRef-Package-rand_core-0.6.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" + "spdxElementId": "SPDXRef-Package-crypto-bigint-0.5.5" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-consdiff-0.24.0" + "spdxElementId": "SPDXRef-Package-phf_macros-0.11.2" }, { - "relatedSpdxElement": "SPDXRef-Package-windows-targets-0.52.6", + "relatedSpdxElement": "SPDXRef-Package-dyn-clone-1.0.17", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-windows-sys-0.52.0" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-serde_derive-1.0.209" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-const-oid-0.9.6", + "relatedSpdxElement": "SPDXRef-Package-tor-circmgr-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-der-0.7.9" + "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", + "relatedSpdxElement": "SPDXRef-Package-libm-0.2.8", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-elliptic-curve-0.13.8" + "spdxElementId": "SPDXRef-Package-num-bigint-dig-0.8.4" }, { - "relatedSpdxElement": "SPDXRef-Package-subtle-2.6.1", + "relatedSpdxElement": "SPDXRef-Package-windows_x86_64_gnu-0.52.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-rfc6979-0.4.0" + "spdxElementId": "SPDXRef-Package-windows-targets-0.52.6" }, { - "relatedSpdxElement": "SPDXRef-Package-windows-sys-0.52.0", + "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-socket2-0.5.7" + "spdxElementId": "SPDXRef-Package-tor-socksproto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-signature-2.2.0", + "relatedSpdxElement": "SPDXRef-Package-humantime-serde-1.1.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-circmgr-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-httparse-1.9.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tinystr-0.7.6", + "relatedSpdxElement": "SPDXRef-Package-serde_json-1.0.128", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_locid_transform-1.5.0" + "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", + "relatedSpdxElement": "SPDXRef-Package-regex-1.10.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-kqueue-sys-1.0.4" + "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", + "relatedSpdxElement": "SPDXRef-Package-itertools-0.13.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tracing-test-macro-0.2.5" + "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-wasm-bindgen-backend-0.2.93", + "relatedSpdxElement": "SPDXRef-Package-tor-basic-utils-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-wasm-bindgen-macro-support-0.2.93" + "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-rtcompat-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-ssh-encoding-0.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" + "spdxElementId": "SPDXRef-Package-ssh-key-0.6.6" }, { - "relatedSpdxElement": "SPDXRef-Package-iana-time-zone-haiku-0.1.2", + "relatedSpdxElement": "SPDXRef-Package-phf_shared-0.11.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-iana-time-zone-0.1.60" + "spdxElementId": "SPDXRef-Package-phf-0.11.2" }, { - "relatedSpdxElement": "SPDXRef-Package-openssl-probe-0.1.5", + "relatedSpdxElement": "SPDXRef-Package-subtle-2.6.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-native-tls-0.2.12" + "spdxElementId": "SPDXRef-Package-elliptic-curve-0.13.8" }, { - "relatedSpdxElement": "SPDXRef-Package-bitflags-2.6.0", + "relatedSpdxElement": "SPDXRef-Package-paste-1.0.15", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-rtcompat-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", + "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-wasm-bindgen-0.2.93" + "spdxElementId": "SPDXRef-Package-tor-key-forge-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-log-0.4.22", + "relatedSpdxElement": "SPDXRef-Package-growable-bloom-filter-2.1.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-notify-7.0.0" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-curve25519-dalek-4.1.3", + "relatedSpdxElement": "SPDXRef-Package-icu_properties-1.5.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-x25519-dalek-2.0.1" + "spdxElementId": "SPDXRef-Package-icu_normalizer-1.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-futures-core-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-educe-0.4.23" + "spdxElementId": "SPDXRef-Package-tokio-util-0.7.12" }, { - "relatedSpdxElement": "SPDXRef-Package-pem-rfc7468-0.7.0", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-der-0.7.9" + "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-guardmgr-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-tor-rtcompat-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-memchr-2.7.4", + "relatedSpdxElement": "SPDXRef-Package-weak-table-0.3.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-asynchronous-codec-0.7.0" + "spdxElementId": "SPDXRef-Package-tor-log-ratelim-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-safelog-0.4.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tokio-macros-2.4.0" + "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-cert-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-num-bigint-0.4.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-enum-ordinalize-3.1.15" }, { - "relatedSpdxElement": "SPDXRef-Package-postage-0.5.0", + "relatedSpdxElement": "SPDXRef-Package-retry-error-0.6.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-rusqlite-0.32.1", + "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-icu_normalizer-1.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" + "spdxElementId": "SPDXRef-Package-idna-1.0.2" }, { - "relatedSpdxElement": "SPDXRef-Package-backtrace-0.3.73", + "relatedSpdxElement": "SPDXRef-Package-rand_core-0.6.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tokio-1.40.0" + "spdxElementId": "SPDXRef-Package-signature-2.2.0" }, { - "relatedSpdxElement": "SPDXRef-Package-wasi-0.11.0+wasi-snapshot-preview1", + "relatedSpdxElement": "SPDXRef-Package-cipher-0.4.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-mio-1.0.2" + "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-pin-utils-0.1.0", + "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-futures-util-0.3.30" + "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-synstructure-0.13.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" + "spdxElementId": "SPDXRef-Package-yoke-derive-0.7.4" }, { - "relatedSpdxElement": "SPDXRef-Package-primeorder-0.13.6", + "relatedSpdxElement": "SPDXRef-Package-thiserror-impl-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-p521-0.13.3" + "spdxElementId": "SPDXRef-Package-thiserror-1.0.63" }, { - "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", + "relatedSpdxElement": "SPDXRef-Package-nu-ansi-term-0.46.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-tracing-subscriber-0.3.18" }, { - "relatedSpdxElement": "SPDXRef-Package-xxhash-rust-0.8.12", + "relatedSpdxElement": "SPDXRef-Package-rand_core-0.6.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-growable-bloom-filter-2.1.0" + "spdxElementId": "SPDXRef-Package-ff-0.13.0" }, { - "relatedSpdxElement": "SPDXRef-Package-strsim-0.10.0", + "relatedSpdxElement": "SPDXRef-Package-void-1.0.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-darling_core-0.14.4" + "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", + "relatedSpdxElement": "SPDXRef-Package-pin-project-internal-1.1.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-rtcompat-0.24.0" + "spdxElementId": "SPDXRef-Package-pin-project-1.1.5" }, { - "relatedSpdxElement": "SPDXRef-Package-static_assertions-1.1.0", + "relatedSpdxElement": "SPDXRef-Package-addr2line-0.22.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-error-0.24.0" + "spdxElementId": "SPDXRef-Package-backtrace-0.3.73" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-protover-0.24.0" + "spdxElementId": "SPDXRef-Package-x25519-dalek-2.0.1" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-strum-0.26.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-enum-ordinalize-3.1.15" + "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", + "relatedSpdxElement": "SPDXRef-Package-tor-chanmgr-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-tor-config-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-config-path-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-cipher-0.4.4", + "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" + "spdxElementId": "SPDXRef-Package-ahash-0.8.11" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-dirclient-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-zeroize-1.8.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-lazy_static-1.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" + "spdxElementId": "SPDXRef-Package-sanitize-filename-0.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", + "relatedSpdxElement": "SPDXRef-Package-async-native-tls-0.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-log-ratelim-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-rtcompat-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-humantime-2.1.0", + "relatedSpdxElement": "SPDXRef-Package-subtle-2.6.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" + "spdxElementId": "SPDXRef-Package-crypto-bigint-0.5.5" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-checkable-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-regex-1.10.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-cert-0.24.0" + "spdxElementId": "SPDXRef-Package-sanitize-filename-0.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-indexmap-1.9.3", + "relatedSpdxElement": "SPDXRef-Package-futures-sink-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-serde_with-3.9.0" + "spdxElementId": "SPDXRef-Package-futures-util-0.3.30" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-serde_with-3.9.0" + "spdxElementId": "SPDXRef-Package-derive-adhoc-macros-0.7.3" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-tor-memquota-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-yoke-derive-0.7.4" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-p521-0.13.3", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ssh-key-0.6.6" + "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-toml_edit-0.19.15", + "relatedSpdxElement": "SPDXRef-Package-futures-util-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-proc-macro-crate-1.3.1" + "spdxElementId": "SPDXRef-Package-futures-0.3.30" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-socksproto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-dyn-clone-1.0.17", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-async-trait-0.1.82", + "relatedSpdxElement": "SPDXRef-Package-icu_collections-1.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-icu_normalizer-1.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-unicode-normalization-0.1.23", + "relatedSpdxElement": "SPDXRef-Package-ssh-key-0.6.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-idna-0.5.0" + "spdxElementId": "SPDXRef-Package-tor-key-forge-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-time-0.3.36", + "relatedSpdxElement": "SPDXRef-Package-postage-0.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-serde_with-3.9.0" + "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-io-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-amplify-4.7.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-futures-0.3.30" + "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-dyn-clone-1.0.17", + "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" + "spdxElementId": "SPDXRef-Package-asn1-rs-0.6.2" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-ff-0.13.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-amplify_derive-4.0.1" + "spdxElementId": "SPDXRef-Package-elliptic-curve-0.13.8" }, { - "relatedSpdxElement": "SPDXRef-Package-paste-1.0.15", + "relatedSpdxElement": "SPDXRef-Package-dirs-5.0.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" + "spdxElementId": "SPDXRef-Package-fs-mistrust-0.8.0" }, { - "relatedSpdxElement": "SPDXRef-Package-async-compression-0.4.12", + "relatedSpdxElement": "SPDXRef-Package-bitflags-2.6.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" + "spdxElementId": "SPDXRef-Package-libredox-0.1.3" }, { - "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", + "relatedSpdxElement": "SPDXRef-Package-safelog-0.4.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-strum_macros-0.26.4" + "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-bitflags-2.6.0", + "relatedSpdxElement": "SPDXRef-Package-windows-sys-0.59.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-openssl-0.10.66" + "spdxElementId": "SPDXRef-Package-filetime-0.2.25" }, { - "relatedSpdxElement": "SPDXRef-Package-memchr-2.7.4", + "relatedSpdxElement": "SPDXRef-Package-fluid-let-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-regex-automata-0.4.7" + "spdxElementId": "SPDXRef-Package-safelog-0.4.1" }, { - "relatedSpdxElement": "SPDXRef-Package-url-2.5.2", + "relatedSpdxElement": "SPDXRef-Package-caret-0.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-async-native-tls-0.5.0" + "spdxElementId": "SPDXRef-Package-tor-cert-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-data-encoding-2.6.0", + "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-gosling-0.3.0" + "spdxElementId": "SPDXRef-Package-pwd-grp-0.1.1" }, { - "relatedSpdxElement": "SPDXRef-Package-adler-1.0.2", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-miniz_oxide-0.7.4" + "spdxElementId": "SPDXRef-Package-derive-deftly-macros-0.14.2" }, { - "relatedSpdxElement": "SPDXRef-Package-num-traits-0.2.19", + "relatedSpdxElement": "SPDXRef-Package-derive_builder_fork_arti-0.11.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-num-bigint-0.4.6" + "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-der-0.7.9", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-pkcs1-0.7.5" + "spdxElementId": "SPDXRef-Package-toml_datetime-0.6.8" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-checkable-0.24.0" + "spdxElementId": "SPDXRef-Package-strum_macros-0.26.4" }, { - "relatedSpdxElement": "SPDXRef-Package-subtle-2.6.1", + "relatedSpdxElement": "SPDXRef-Package-pem-rfc7468-0.7.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-elliptic-curve-0.13.8" + "spdxElementId": "SPDXRef-Package-der-0.7.9" }, { - "relatedSpdxElement": "SPDXRef-Package-base64-0.13.1", + "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-bson-2.11.0" + "spdxElementId": "SPDXRef-Package-tracing-subscriber-0.3.18" }, { - "relatedSpdxElement": "SPDXRef-Package-rand_core-0.6.4", + "relatedSpdxElement": "SPDXRef-Package-regex-automata-0.1.10", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-rand-0.8.5" + "spdxElementId": "SPDXRef-Package-matchers-0.1.0" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-synstructure-0.13.1" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-netdoc-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-humantime-serde-1.1.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-relay-selection-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-zerovec-0.10.4", + "relatedSpdxElement": "SPDXRef-Package-http-1.1.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_properties-1.5.1" + "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", + "relatedSpdxElement": "SPDXRef-Package-downcast-rs-1.2.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-openssl-sys-0.9.103" + "spdxElementId": "SPDXRef-Package-tor-key-forge-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-netdir-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tor-netdoc-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-memquota-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-ident_case-1.0.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" + "spdxElementId": "SPDXRef-Package-darling_core-0.14.4" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_more-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", + "relatedSpdxElement": "SPDXRef-Package-sharded-slab-0.1.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-filetime-0.2.25" + "spdxElementId": "SPDXRef-Package-tracing-subscriber-0.3.18" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-basic-utils-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-bitflags-2.6.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" + "spdxElementId": "SPDXRef-Package-notify-7.0.0" }, { - "relatedSpdxElement": "SPDXRef-Package-strum-0.26.3", + "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-hashbrown-0.14.5", + "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-hashlink-0.9.1" + "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-persist-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-powerfmt-0.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" + "spdxElementId": "SPDXRef-Package-deranged-0.3.11" }, { - "relatedSpdxElement": "SPDXRef-Package-itertools-0.13.0", + "relatedSpdxElement": "SPDXRef-Package-windows-sys-0.52.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-home-0.5.9" }, { - "relatedSpdxElement": "SPDXRef-Package-humantime-serde-1.1.1", + "relatedSpdxElement": "SPDXRef-Package-block-buffer-0.10.4", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-digest-0.10.7" }, { - "relatedSpdxElement": "SPDXRef-Package-oneshot-fused-workaround-0.2.0", + "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-socket2-0.5.7" }, { - "relatedSpdxElement": "SPDXRef-Package-libsqlite3-sys-0.30.1", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-rusqlite-0.32.1" + "spdxElementId": "SPDXRef-Package-strum_macros-0.26.4" }, { - "relatedSpdxElement": "SPDXRef-Package-windows_aarch64_gnullvm-0.48.5", + "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-windows-targets-0.48.5" + "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-signature-2.2.0", + "relatedSpdxElement": "SPDXRef-Package-syn-2.0.77", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-key-forge-0.24.0" + "spdxElementId": "SPDXRef-Package-tracing-attributes-0.1.27" }, { - "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" + "spdxElementId": "SPDXRef-Package-serde_derive-1.0.209" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-funty-2.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-key-forge-0.24.0" + "spdxElementId": "SPDXRef-Package-bitvec-1.0.1" }, { - "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", + "relatedSpdxElement": "SPDXRef-Package-typed-index-collections-3.1.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-domain-0.10.0" + "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-serde_spanned-0.6.7", + "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-toml-0.8.19" + "spdxElementId": "SPDXRef-Package-curve25519-dalek-derive-0.1.1" }, { - "relatedSpdxElement": "SPDXRef-Package-slotmap-careful-0.2.1", + "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-rtmock-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-log-ratelim-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-inout-0.1.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-crc32fast-1.4.2" + "spdxElementId": "SPDXRef-Package-cipher-0.4.4" }, { - "relatedSpdxElement": "SPDXRef-Package-retry-error-0.6.0", + "relatedSpdxElement": "SPDXRef-Package-serde_spanned-0.6.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" + "spdxElementId": "SPDXRef-Package-toml-0.8.19" }, { - "relatedSpdxElement": "SPDXRef-Package-security-framework-sys-2.11.1", + "relatedSpdxElement": "SPDXRef-Package-tor-async-utils-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-native-tls-0.2.12" + "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-checkable-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-strum-0.26.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-derive-deftly-macros-0.14.2" }, { - "relatedSpdxElement": "SPDXRef-Package-rustix-0.38.36", + "relatedSpdxElement": "SPDXRef-Package-unicode-segmentation-1.12.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tempfile-3.12.0" + "spdxElementId": "SPDXRef-Package-convert_case-0.6.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-hsservice-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tor-basic-utils-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" + "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-io-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-asn1-rs-0.6.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-futures-util-0.3.30" + "spdxElementId": "SPDXRef-Package-der-parser-9.0.0" }, { - "relatedSpdxElement": "SPDXRef-Package-signature-2.2.0", + "relatedSpdxElement": "SPDXRef-Package-pin-project-1.1.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-llcrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-memquota-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-paste-1.0.15", + "relatedSpdxElement": "SPDXRef-Package-wasi-0.11.0+wasi-snapshot-preview1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-slotmap-careful-0.2.1" + "spdxElementId": "SPDXRef-Package-mio-1.0.2" }, { - "relatedSpdxElement": "SPDXRef-Package-tinystr-0.7.6", + "relatedSpdxElement": "SPDXRef-Package-toml-0.8.19", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" + "spdxElementId": "SPDXRef-Package-figment-0.10.19" }, { - "relatedSpdxElement": "SPDXRef-Package-uuid-1.10.0", + "relatedSpdxElement": "SPDXRef-Package-openssl-sys-0.9.103", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-bson-2.11.0" + "spdxElementId": "SPDXRef-Package-native-tls-0.2.12" }, { - "relatedSpdxElement": "SPDXRef-Package-event-listener-5.3.1", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-block-buffer-0.10.4", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-digest-0.10.7" + "spdxElementId": "SPDXRef-Package-zerofrom-derive-0.1.4" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-toml_datetime-0.6.8", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" + "spdxElementId": "SPDXRef-Package-toml_edit-0.22.20" }, { - "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", + "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-sha2-0.10.8" + "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" }, { "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-figment-0.10.19" + "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-zerocopy-0.7.35", + "relatedSpdxElement": "SPDXRef-Package-tor-linkspec-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ppv-lite86-0.2.20" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-digest-0.10.7", + "relatedSpdxElement": "SPDXRef-Package-tracing-test-macro-0.2.5", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-sha3-0.10.8" + "spdxElementId": "SPDXRef-Package-tracing-test-0.2.5" }, { - "relatedSpdxElement": "SPDXRef-Package-aho-corasick-1.1.3", + "relatedSpdxElement": "SPDXRef-Package-dirs-sys-0.4.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-regex-automata-0.4.7" + "spdxElementId": "SPDXRef-Package-directories-5.0.1" }, { - "relatedSpdxElement": "SPDXRef-Package-windows_aarch64_msvc-0.48.5", + "relatedSpdxElement": "SPDXRef-Package-tor-memquota-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-windows-targets-0.48.5" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-llcrypto-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-overload-0.1.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-checkable-0.24.0" + "spdxElementId": "SPDXRef-Package-nu-ansi-term-0.46.0" }, { - "relatedSpdxElement": "SPDXRef-Package-weak-table-0.3.2", + "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-log-ratelim-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-derive_builder_fork_arti-0.11.2", + "relatedSpdxElement": "SPDXRef-Package-filetime-0.2.25", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-dirclient-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-tor-rtcompat-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-winapi-util-0.1.9", + "relatedSpdxElement": "SPDXRef-Package-futures-sink-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-same-file-1.0.6" + "spdxElementId": "SPDXRef-Package-futures-0.3.30" }, { - "relatedSpdxElement": "SPDXRef-Package-itertools-0.13.0", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-config-path-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-amplify-4.7.0", + "relatedSpdxElement": "SPDXRef-Package-tor-memquota-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-futures-core-0.3.30", + "relatedSpdxElement": "SPDXRef-Package-windows_i686_msvc-0.52.6", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tokio-stream-0.1.16" + "spdxElementId": "SPDXRef-Package-windows-targets-0.52.6" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-protover-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-caret-0.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-cell-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-rand_core-0.6.4", + "relatedSpdxElement": "SPDXRef-Package-tor-config-0.24.0", "relationshipType": "DEPENDS_ON", "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-circmgr-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-zstd-safe-7.2.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" + "spdxElementId": "SPDXRef-Package-zstd-0.13.2" }, { - "relatedSpdxElement": "SPDXRef-Package-darling_macro-0.20.10", + "relatedSpdxElement": "SPDXRef-Package-derive-deftly-0.14.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-darling-0.20.10" + "spdxElementId": "SPDXRef-Package-tor-hsclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-icu_properties-1.5.1", + "relatedSpdxElement": "SPDXRef-Package-tor-persist-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_normalizer-1.5.0" + "spdxElementId": "SPDXRef-Package-tor-keymgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tinystr-0.7.6", + "relatedSpdxElement": "SPDXRef-Package-base64ct-1.6.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_locid-1.5.0" + "spdxElementId": "SPDXRef-Package-ssh-encoding-0.2.0" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-tor-netdoc-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-serde_bytes-0.11.15" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-circmgr-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-fallible-streaming-iterator-0.1.9", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" + "spdxElementId": "SPDXRef-Package-rusqlite-0.32.1" }, { - "relatedSpdxElement": "SPDXRef-Package-redox_syscall-0.5.3", + "relatedSpdxElement": "SPDXRef-Package-dyn-clone-1.0.17", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-libredox-0.1.3" + "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-num-traits-0.2.19", + "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-chrono-0.4.38" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-zerofrom-derive-0.1.4", + "relatedSpdxElement": "SPDXRef-Package-tor-hsservice-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-zerofrom-0.1.4" + "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" }, { - "relatedSpdxElement": "SPDXRef-Package-rand_core-0.6.4", + "relatedSpdxElement": "SPDXRef-Package-tracing-attributes-0.1.27", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-group-0.13.0" + "spdxElementId": "SPDXRef-Package-tracing-0.1.40" }, { - "relatedSpdxElement": "SPDXRef-Package-getrandom-0.2.15", + "relatedSpdxElement": "SPDXRef-Package-strum-0.26.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-rand_core-0.6.4" + "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-quote-1.0.37", + "relatedSpdxElement": "SPDXRef-Package-kqueue-1.0.8", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-asn1-rs-derive-0.5.1" + "spdxElementId": "SPDXRef-Package-notify-7.0.0" }, { - "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-num_enum_derive-0.6.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-sha1-0.10.6" + "spdxElementId": "SPDXRef-Package-num_enum-0.6.1" }, { - "relatedSpdxElement": "SPDXRef-Package-educe-0.4.23", + "relatedSpdxElement": "SPDXRef-Package-chrono-0.4.38", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-async-utils-0.24.0" + "spdxElementId": "SPDXRef-Package-serde_with-3.9.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-netdoc-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-paste-1.0.15", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-rand-0.8.5", + "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tokio-stream-0.1.16", + "relatedSpdxElement": "SPDXRef-Package-weak-table-0.3.2", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-interface-0.4.0" + "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-slab-0.4.9", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-futures-util-0.3.30" + "spdxElementId": "SPDXRef-Package-darling_core-0.14.4" }, { - "relatedSpdxElement": "SPDXRef-Package-serde-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-tor-circmgr-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-primeorder-0.13.6", + "relatedSpdxElement": "SPDXRef-Package-cfg-if-1.0.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-p384-0.13.0" + "spdxElementId": "SPDXRef-Package-tor-hsservice-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-serde_derive-1.0.209", + "relatedSpdxElement": "SPDXRef-Package-toml_datetime-0.6.8", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-growable-bloom-filter-2.1.0" + "spdxElementId": "SPDXRef-Package-toml-0.8.19" }, { - "relatedSpdxElement": "SPDXRef-Package-num-integer-0.1.46", + "relatedSpdxElement": "SPDXRef-Package-fs-mistrust-0.8.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-num-bigint-dig-0.8.4" + "spdxElementId": "SPDXRef-Package-tor-persist-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-memchr-2.7.4", + "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-bstr-1.10.0" + "spdxElementId": "SPDXRef-Package-tor-dirclient-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-cpufeatures-0.2.13", + "relatedSpdxElement": "SPDXRef-Package-tor-proto-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-aes-0.8.4" + "spdxElementId": "SPDXRef-Package-tor-chanmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-bytes-1.7.1", + "relatedSpdxElement": "SPDXRef-Package-amplify-4.7.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tokio-1.40.0" + "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-nom-7.1.3", + "relatedSpdxElement": "SPDXRef-Package-tracing-0.1.40", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-der-parser-9.0.0" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-itertools-0.13.0", + "relatedSpdxElement": "SPDXRef-Package-litemap-0.7.3", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdir-0.24.0" + "spdxElementId": "SPDXRef-Package-icu_locid-1.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-subtle-2.6.1", + "relatedSpdxElement": "SPDXRef-Package-proc-macro-crate-1.3.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-netdoc-0.24.0" + "spdxElementId": "SPDXRef-Package-num_enum_derive-0.6.1" }, { - "relatedSpdxElement": "SPDXRef-Package-once_cell-1.19.0", + "relatedSpdxElement": "SPDXRef-Package-tor-netdoc-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-config-0.24.0" + "spdxElementId": "SPDXRef-Package-tor-circmgr-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-config-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-pwd-grp-0.1.1", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-fs-mistrust-0.8.0" }, { - "relatedSpdxElement": "SPDXRef-Package-crossbeam-utils-0.8.20", + "relatedSpdxElement": "SPDXRef-Package-icu_locid-1.5.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-concurrent-queue-2.5.0" + "spdxElementId": "SPDXRef-Package-icu_locid_transform-1.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-ssh-encoding-0.2.0", + "relatedSpdxElement": "SPDXRef-Package-futures-channel-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-ssh-cipher-0.2.0" + "spdxElementId": "SPDXRef-Package-futures-util-0.3.30" }, { - "relatedSpdxElement": "SPDXRef-Package-displaydoc-0.2.5", + "relatedSpdxElement": "SPDXRef-Package-generic-array-0.14.7", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_collections-1.5.0" + "spdxElementId": "SPDXRef-Package-crypto-bigint-0.5.5" }, { - "relatedSpdxElement": "SPDXRef-Package-displaydoc-0.2.5", + "relatedSpdxElement": "SPDXRef-Package-libc-0.2.158", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-icu_provider-1.5.0" + "spdxElementId": "SPDXRef-Package-tokio-1.40.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-dirclient-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-futures-core-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-dirmgr-0.24.0" + "spdxElementId": "SPDXRef-Package-tokio-stream-0.1.16" }, { - "relatedSpdxElement": "SPDXRef-Package-itertools-0.13.0", + "relatedSpdxElement": "SPDXRef-Package-parking_lot_core-0.9.10", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-hscrypto-0.24.0" + "spdxElementId": "SPDXRef-Package-parking_lot-0.12.3" }, { - "relatedSpdxElement": "SPDXRef-Package-redox_syscall-0.5.3", + "relatedSpdxElement": "SPDXRef-Package-futures-0.3.30", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-parking_lot_core-0.9.10" + "spdxElementId": "SPDXRef-Package-tor-rtcompat-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-yoke-derive-0.7.4", + "relatedSpdxElement": "SPDXRef-Package-tor-error-0.24.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-yoke-0.7.4" + "spdxElementId": "SPDXRef-Package-tor-proto-0.24.0" }, { - "relatedSpdxElement": "SPDXRef-Package-fallible-streaming-iterator-0.1.9", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-rusqlite-0.32.1" + "spdxElementId": "SPDXRef-Package-icu_provider_macros-1.5.0" }, { - "relatedSpdxElement": "SPDXRef-Package-tor-hsservice-0.24.0", + "relatedSpdxElement": "SPDXRef-Package-proc-macro-crate-3.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-arti-client-0.24.0" + "spdxElementId": "SPDXRef-Package-derive-deftly-macros-0.14.2" }, { - "relatedSpdxElement": "SPDXRef-Package-by_address-1.2.1", + "relatedSpdxElement": "SPDXRef-Package-proc-macro2-1.0.86", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-tor-linkspec-0.24.0" + "spdxElementId": "SPDXRef-Package-visibility-0.1.1" }, { - "relatedSpdxElement": "SPDXRef-Package-thiserror-1.0.63", + "relatedSpdxElement": "SPDXRef-Package-oneshot-fused-workaround-0.2.0", "relationshipType": "DEPENDS_ON", - "spdxElementId": "SPDXRef-Package-slotmap-careful-0.2.1" + "spdxElementId": "SPDXRef-Package-tor-guardmgr-0.24.0" } ], "spdxVersion": "SPDX-2.3"