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§
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,
Sourcefn 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_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.
Sourcefn 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_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.
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,
Sourcefn 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 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.
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,
Implementations on Foreign Types§
Source§impl<_T: Host + ?Sized + Send> Host for &mut _T
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,
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,
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,
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.