Trait Host

Source
pub trait Host: Send {
Show 56 methods // Required methods fn cache_override_set<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, tag: CacheOverrideTag, ttl: u32, stale_while_revalidate: u32, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn cache_override_v2_set<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, tag: CacheOverrideTag, ttl: u32, stale_while_revalidate: u32, sk: Option<String>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn downstream_client_ip_addr<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<Option<IpAddress>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn downstream_server_ip_addr<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<Option<IpAddress>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn downstream_client_h2_fingerprint<'life0, 'async_trait>( &'life0 mut self, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn downstream_client_request_id<'life0, 'async_trait>( &'life0 mut self, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn downstream_client_oh_fingerprint<'life0, 'async_trait>( &'life0 mut self, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn downstream_client_ddos_detected<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<u32, Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn downstream_tls_cipher_openssl_name<'life0, 'async_trait>( &'life0 mut self, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn downstream_tls_protocol<'life0, 'async_trait>( &'life0 mut self, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn downstream_tls_client_hello<'life0, 'async_trait>( &'life0 mut self, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn downstream_tls_raw_client_certificate<'life0, 'async_trait>( &'life0 mut self, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn downstream_tls_client_cert_verify_result<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<ClientCertVerifyResult, Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn downstream_tls_ja3_md5<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn downstream_tls_ja4<'life0, 'async_trait>( &'life0 mut self, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn downstream_compliance_region<'life0, 'async_trait>( &'life0 mut self, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn new<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<RequestHandle, Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn header_names_get<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, max_len: u64, cursor: u32, ) -> Pin<Box<dyn Future<Output = Result<Option<(Vec<u8>, Option<u32>)>, Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn get_original_header_names<'life0, 'async_trait>( &'life0 mut self, max_len: u64, cursor: u32, ) -> Pin<Box<dyn Future<Output = Result<(Vec<u8>, Option<u32>), Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn original_header_count<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<u32, Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn header_value_get<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, name: String, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<Option<Vec<u8>>, Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn header_values_get<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, name: String, max_len: u64, cursor: u32, ) -> Pin<Box<dyn Future<Output = Result<Option<(Vec<u8>, Option<u32>)>, TrappableError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn header_values_set<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, name: String, values: Vec<u8>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn header_insert<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, name: String, value: Vec<u8>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn header_append<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, name: String, value: Vec<u8>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn header_remove<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, name: String, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn method_get<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn method_set<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, method: String, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn uri_get<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn uri_set<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, uri: String, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn version_get<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, ) -> Pin<Box<dyn Future<Output = Result<HttpVersion, Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn version_set<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, version: HttpVersion, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn send<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, b: BodyHandle, backend: String, ) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn send_v2<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, b: BodyHandle, backend: String, ) -> Pin<Box<dyn Future<Output = Result<Response, ErrorWithDetail>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn send_v3<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, b: BodyHandle, backend: String, ) -> Pin<Box<dyn Future<Output = Result<Response, ErrorWithDetail>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn send_async<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, b: BodyHandle, backend: String, ) -> Pin<Box<dyn Future<Output = Result<PendingRequestHandle, Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn send_async_v2<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, b: BodyHandle, backend: String, streaming: bool, ) -> Pin<Box<dyn Future<Output = Result<PendingRequestHandle, Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn send_async_streaming<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, b: BodyHandle, backend: String, ) -> Pin<Box<dyn Future<Output = Result<PendingRequestHandle, Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn pending_req_poll<'life0, 'async_trait>( &'life0 mut self, h: PendingRequestHandle, ) -> Pin<Box<dyn Future<Output = Result<Option<Response>, Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn pending_req_poll_v2<'life0, 'async_trait>( &'life0 mut self, h: PendingRequestHandle, ) -> Pin<Box<dyn Future<Output = Result<Option<Response>, ErrorWithDetail>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn pending_req_wait<'life0, 'async_trait>( &'life0 mut self, h: PendingRequestHandle, ) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn pending_req_wait_v2<'life0, 'async_trait>( &'life0 mut self, h: PendingRequestHandle, ) -> Pin<Box<dyn Future<Output = Result<Response, ErrorWithDetail>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn pending_req_select<'life0, 'async_trait>( &'life0 mut self, h: Vec<PendingRequestHandle>, ) -> Pin<Box<dyn Future<Output = Result<(u32, Response), Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn pending_req_select_v2<'life0, 'async_trait>( &'life0 mut self, h: Vec<PendingRequestHandle>, ) -> Pin<Box<dyn Future<Output = Result<(u32, Response), ErrorWithDetail>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn fastly_key_is_valid<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn close<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn auto_decompress_response_set<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, encodings: ContentEncodings, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn upgrade_websocket<'life0, 'async_trait>( &'life0 mut self, backend: String, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn redirect_to_websocket_proxy<'life0, 'async_trait>( &'life0 mut self, backend: String, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn redirect_to_websocket_proxy_v2<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, backend: String, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn redirect_to_grip_proxy<'life0, 'async_trait>( &'life0 mut self, backend: String, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn redirect_to_grip_proxy_v2<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, backend: String, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn framing_headers_mode_set<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, mode: FramingHeadersMode, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn register_dynamic_backend<'life0, 'async_trait>( &'life0 mut self, prefix: String, target: String, options: BackendConfigOptions, config: DynamicBackendConfig, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn inspect<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, b: BodyHandle, options: InspectConfigOptions, info: InspectConfig, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn on_behalf_of<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, service: Vec<u8>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait;
}

Required Methods§

Source

fn cache_override_set<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, tag: CacheOverrideTag, ttl: u32, stale_while_revalidate: u32, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn cache_override_v2_set<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, tag: CacheOverrideTag, ttl: u32, stale_while_revalidate: u32, sk: Option<String>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn downstream_client_ip_addr<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<Option<IpAddress>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Returns the IP address of the client making the HTTP request, if known.

Source

fn downstream_server_ip_addr<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<Option<IpAddress>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Returns the IP address on which this server received the HTTP request, if known.

Source

fn downstream_client_h2_fingerprint<'life0, 'async_trait>( &'life0 mut self, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn downstream_client_request_id<'life0, 'async_trait>( &'life0 mut self, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn downstream_client_oh_fingerprint<'life0, 'async_trait>( &'life0 mut self, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn downstream_client_ddos_detected<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<u32, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn downstream_tls_cipher_openssl_name<'life0, 'async_trait>( &'life0 mut self, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn downstream_tls_protocol<'life0, 'async_trait>( &'life0 mut self, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn downstream_tls_client_hello<'life0, 'async_trait>( &'life0 mut self, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn downstream_tls_raw_client_certificate<'life0, 'async_trait>( &'life0 mut self, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn downstream_tls_client_cert_verify_result<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<ClientCertVerifyResult, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn downstream_tls_ja3_md5<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn downstream_tls_ja4<'life0, 'async_trait>( &'life0 mut self, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn downstream_compliance_region<'life0, 'async_trait>( &'life0 mut self, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn new<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<RequestHandle, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn header_names_get<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, max_len: u64, cursor: u32, ) -> Pin<Box<dyn Future<Output = Result<Option<(Vec<u8>, Option<u32>)>, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn get_original_header_names<'life0, 'async_trait>( &'life0 mut self, max_len: u64, cursor: u32, ) -> Pin<Box<dyn Future<Output = Result<(Vec<u8>, Option<u32>), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Returns the client request’s header names exactly as they were originally received.

This includes both the original header name characters’ cases, as well as the original order of the received headers.

The first cursor names are skipped. The remaining names are encoded successively with a NUL byte after each into a list of bytes at most max-len long. If any of the remaining names don’t fit, the returned option<u32> is the index of the first name that didn’t fit, or none if all the remaining names fit. If max-len is too small to fit any name, an error::buffer-len error is returned, providing a recommended buffer size.

Source

fn original_header_count<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<u32, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn header_value_get<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, name: String, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<Option<Vec<u8>>, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn header_values_get<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, name: String, max_len: u64, cursor: u32, ) -> Pin<Box<dyn Future<Output = Result<Option<(Vec<u8>, Option<u32>)>, TrappableError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn header_values_set<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, name: String, values: Vec<u8>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn header_insert<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, name: String, value: Vec<u8>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn header_append<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, name: String, value: Vec<u8>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn header_remove<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, name: String, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn method_get<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn method_set<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, method: String, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn uri_get<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn uri_set<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, uri: String, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn version_get<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, ) -> Pin<Box<dyn Future<Output = Result<HttpVersion, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn version_set<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, version: HttpVersion, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn send<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, b: BodyHandle, backend: String, ) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn send_v2<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, b: BodyHandle, backend: String, ) -> Pin<Box<dyn Future<Output = Result<Response, ErrorWithDetail>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn send_v3<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, b: BodyHandle, backend: String, ) -> Pin<Box<dyn Future<Output = Result<Response, ErrorWithDetail>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn send_async<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, b: BodyHandle, backend: String, ) -> Pin<Box<dyn Future<Output = Result<PendingRequestHandle, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn send_async_v2<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, b: BodyHandle, backend: String, streaming: bool, ) -> Pin<Box<dyn Future<Output = Result<PendingRequestHandle, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn send_async_streaming<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, b: BodyHandle, backend: String, ) -> Pin<Box<dyn Future<Output = Result<PendingRequestHandle, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn pending_req_poll<'life0, 'async_trait>( &'life0 mut self, h: PendingRequestHandle, ) -> Pin<Box<dyn Future<Output = Result<Option<Response>, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn pending_req_poll_v2<'life0, 'async_trait>( &'life0 mut self, h: PendingRequestHandle, ) -> Pin<Box<dyn Future<Output = Result<Option<Response>, ErrorWithDetail>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn pending_req_wait<'life0, 'async_trait>( &'life0 mut self, h: PendingRequestHandle, ) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn pending_req_wait_v2<'life0, 'async_trait>( &'life0 mut self, h: PendingRequestHandle, ) -> Pin<Box<dyn Future<Output = Result<Response, ErrorWithDetail>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn pending_req_select<'life0, 'async_trait>( &'life0 mut self, h: Vec<PendingRequestHandle>, ) -> Pin<Box<dyn Future<Output = Result<(u32, Response), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn pending_req_select_v2<'life0, 'async_trait>( &'life0 mut self, h: Vec<PendingRequestHandle>, ) -> Pin<Box<dyn Future<Output = Result<(u32, Response), ErrorWithDetail>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn fastly_key_is_valid<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn close<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn auto_decompress_response_set<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, encodings: ContentEncodings, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn upgrade_websocket<'life0, 'async_trait>( &'life0 mut self, backend: String, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn redirect_to_websocket_proxy<'life0, 'async_trait>( &'life0 mut self, backend: String, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn redirect_to_websocket_proxy_v2<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, backend: String, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn redirect_to_grip_proxy<'life0, 'async_trait>( &'life0 mut self, backend: String, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn redirect_to_grip_proxy_v2<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, backend: String, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn framing_headers_mode_set<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, mode: FramingHeadersMode, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn register_dynamic_backend<'life0, 'async_trait>( &'life0 mut self, prefix: String, target: String, options: BackendConfigOptions, config: DynamicBackendConfig, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn inspect<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, b: BodyHandle, options: InspectConfigOptions, info: InspectConfig, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn on_behalf_of<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, service: Vec<u8>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Implementations on Foreign Types§

Source§

impl<_T: Host + ?Sized + Send> Host for &mut _T

Source§

fn downstream_client_ip_addr<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<Option<IpAddress>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Returns the IP address of the client making the HTTP request, if known.

Source§

fn downstream_server_ip_addr<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<Option<IpAddress>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Returns the IP address on which this server received the HTTP request, if known.

Source§

fn get_original_header_names<'life0, 'async_trait>( &'life0 mut self, max_len: u64, cursor: u32, ) -> Pin<Box<dyn Future<Output = Result<(Vec<u8>, Option<u32>), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Returns the client request’s header names exactly as they were originally received.

This includes both the original header name characters’ cases, as well as the original order of the received headers.

The first cursor names are skipped. The remaining names are encoded successively with a NUL byte after each into a list of bytes at most max-len long. If any of the remaining names don’t fit, the returned option<u32> is the index of the first name that didn’t fit, or none if all the remaining names fit. If max-len is too small to fit any name, an error::buffer-len error is returned, providing a recommended buffer size.

Source§

fn cache_override_set<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, tag: CacheOverrideTag, ttl: u32, stale_while_revalidate: u32, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn cache_override_v2_set<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, tag: CacheOverrideTag, ttl: u32, stale_while_revalidate: u32, sk: Option<String>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn downstream_client_h2_fingerprint<'life0, 'async_trait>( &'life0 mut self, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn downstream_client_request_id<'life0, 'async_trait>( &'life0 mut self, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn downstream_client_oh_fingerprint<'life0, 'async_trait>( &'life0 mut self, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn downstream_client_ddos_detected<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<u32, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn downstream_tls_cipher_openssl_name<'life0, 'async_trait>( &'life0 mut self, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn downstream_tls_protocol<'life0, 'async_trait>( &'life0 mut self, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn downstream_tls_client_hello<'life0, 'async_trait>( &'life0 mut self, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn downstream_tls_raw_client_certificate<'life0, 'async_trait>( &'life0 mut self, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn downstream_tls_client_cert_verify_result<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<ClientCertVerifyResult, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn downstream_tls_ja3_md5<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn downstream_tls_ja4<'life0, 'async_trait>( &'life0 mut self, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn downstream_compliance_region<'life0, 'async_trait>( &'life0 mut self, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn new<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<RequestHandle, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn header_names_get<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, max_len: u64, cursor: u32, ) -> Pin<Box<dyn Future<Output = Result<Option<(Vec<u8>, Option<u32>)>, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn original_header_count<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<u32, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn header_value_get<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, name: String, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<Option<Vec<u8>>, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn header_values_get<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, name: String, max_len: u64, cursor: u32, ) -> Pin<Box<dyn Future<Output = Result<Option<(Vec<u8>, Option<u32>)>, TrappableError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn header_values_set<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, name: String, values: Vec<u8>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn header_insert<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, name: String, value: Vec<u8>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn header_append<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, name: String, value: Vec<u8>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn header_remove<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, name: String, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn method_get<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn method_set<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, method: String, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn uri_get<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn uri_set<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, uri: String, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn version_get<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, ) -> Pin<Box<dyn Future<Output = Result<HttpVersion, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn version_set<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, version: HttpVersion, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn send<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, b: BodyHandle, backend: String, ) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn send_v2<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, b: BodyHandle, backend: String, ) -> Pin<Box<dyn Future<Output = Result<Response, ErrorWithDetail>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn send_v3<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, b: BodyHandle, backend: String, ) -> Pin<Box<dyn Future<Output = Result<Response, ErrorWithDetail>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn send_async<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, b: BodyHandle, backend: String, ) -> Pin<Box<dyn Future<Output = Result<PendingRequestHandle, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn send_async_v2<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, b: BodyHandle, backend: String, streaming: bool, ) -> Pin<Box<dyn Future<Output = Result<PendingRequestHandle, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn send_async_streaming<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, b: BodyHandle, backend: String, ) -> Pin<Box<dyn Future<Output = Result<PendingRequestHandle, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn pending_req_poll<'life0, 'async_trait>( &'life0 mut self, h: PendingRequestHandle, ) -> Pin<Box<dyn Future<Output = Result<Option<Response>, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn pending_req_poll_v2<'life0, 'async_trait>( &'life0 mut self, h: PendingRequestHandle, ) -> Pin<Box<dyn Future<Output = Result<Option<Response>, ErrorWithDetail>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn pending_req_wait<'life0, 'async_trait>( &'life0 mut self, h: PendingRequestHandle, ) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn pending_req_wait_v2<'life0, 'async_trait>( &'life0 mut self, h: PendingRequestHandle, ) -> Pin<Box<dyn Future<Output = Result<Response, ErrorWithDetail>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn pending_req_select<'life0, 'async_trait>( &'life0 mut self, h: Vec<PendingRequestHandle>, ) -> Pin<Box<dyn Future<Output = Result<(u32, Response), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn pending_req_select_v2<'life0, 'async_trait>( &'life0 mut self, h: Vec<PendingRequestHandle>, ) -> Pin<Box<dyn Future<Output = Result<(u32, Response), ErrorWithDetail>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn fastly_key_is_valid<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn close<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn auto_decompress_response_set<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, encodings: ContentEncodings, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn upgrade_websocket<'life0, 'async_trait>( &'life0 mut self, backend: String, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn redirect_to_websocket_proxy<'life0, 'async_trait>( &'life0 mut self, backend: String, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn redirect_to_websocket_proxy_v2<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, backend: String, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn redirect_to_grip_proxy<'life0, 'async_trait>( &'life0 mut self, backend: String, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn redirect_to_grip_proxy_v2<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, backend: String, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn framing_headers_mode_set<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, mode: FramingHeadersMode, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn register_dynamic_backend<'life0, 'async_trait>( &'life0 mut self, prefix: String, target: String, options: BackendConfigOptions, config: DynamicBackendConfig, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn inspect<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, b: BodyHandle, options: InspectConfigOptions, info: InspectConfig, max_len: u64, ) -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn on_behalf_of<'life0, 'async_trait>( &'life0 mut self, h: RequestHandle, service: Vec<u8>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Implementors§