pub struct ScriptInterceptor {
pub metrics: ScriptMetrics,
/* private fields */
}Fields§
§metrics: ScriptMetricsImplementations§
Source§impl ScriptInterceptor
impl ScriptInterceptor
pub async fn new() -> Result<Self, BoxError>
pub async fn new_with_env(env_allow: HashSet<String>) -> Result<Self, BoxError>
pub async fn new_with_env_and_fetch( env_allow: HashSet<String>, fetch_config: ScriptFetchConfig, ) -> Result<Self, BoxError>
pub async fn set_env_allow(&self, env_allow: HashSet<String>)
pub async fn set_fetch_config(&self, config: ScriptFetchConfig)
pub async fn load_script(&self, script: &str) -> Result<(), BoxError>
Trait Implementations§
Source§impl Interceptor for ScriptInterceptor
impl Interceptor for ScriptInterceptor
Source§fn on_request_headers<'life0, 'life1, 'async_trait>(
&'life0 self,
flow: &'life1 mut Flow,
) -> Pin<Box<dyn Future<Output = InterceptionResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn on_request_headers<'life0, 'life1, 'async_trait>(
&'life0 self,
flow: &'life1 mut Flow,
) -> Pin<Box<dyn Future<Output = InterceptionResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Called after request headers are parsed but before body is read.
Allows early termination or modification of headers/URL.
Source§fn on_request<'life0, 'life1, 'async_trait>(
&'life0 self,
flow: &'life1 mut Flow,
body: HttpBody,
) -> Pin<Box<dyn Future<Output = Result<RequestAction, BoxError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn on_request<'life0, 'life1, 'async_trait>(
&'life0 self,
flow: &'life1 mut Flow,
body: HttpBody,
) -> Pin<Box<dyn Future<Output = Result<RequestAction, BoxError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Called after full request (including body) is received.
Source§fn on_response_headers<'life0, 'life1, 'async_trait>(
&'life0 self,
flow: &'life1 mut Flow,
) -> Pin<Box<dyn Future<Output = InterceptionResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn on_response_headers<'life0, 'life1, 'async_trait>(
&'life0 self,
flow: &'life1 mut Flow,
) -> Pin<Box<dyn Future<Output = InterceptionResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Called after response headers are received from upstream but before body is read.
Source§fn on_response<'life0, 'life1, 'async_trait>(
&'life0 self,
flow: &'life1 mut Flow,
body: HttpBody,
) -> Pin<Box<dyn Future<Output = Result<ResponseAction, BoxError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn on_response<'life0, 'life1, 'async_trait>(
&'life0 self,
flow: &'life1 mut Flow,
body: HttpBody,
) -> Pin<Box<dyn Future<Output = Result<ResponseAction, BoxError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Called after full response (including body) is received.
fn on_websocket_message<'life0, 'life1, 'async_trait>(
&'life0 self,
flow: &'life1 mut Flow,
message: WebSocketMessage,
) -> Pin<Box<dyn Future<Output = Result<WebSocketMessageAction, BoxError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn on_connect<'life0, 'life1, 'async_trait>(
&'life0 self,
conn: &'life1 ConnectionInfo,
) -> Pin<Box<dyn Future<Output = ConnectAction> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn on_connect<'life0, 'life1, 'async_trait>(
&'life0 self,
conn: &'life1 ConnectionInfo,
) -> Pin<Box<dyn Future<Output = ConnectAction> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Called when a new connection is accepted, before any HTTP handling.
Return ConnectAction::Drop to reject the connection.
Source§fn on_disconnect<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
conn: &'life1 ConnectionInfo,
stats: &'life2 ConnectionStats,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn on_disconnect<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
conn: &'life1 ConnectionInfo,
stats: &'life2 ConnectionStats,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Called when a connection is closed (after all flows complete or on drop).
Source§fn on_websocket_start<'life0, 'life1, 'async_trait>(
&'life0 self,
flow: &'life1 mut Flow,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn on_websocket_start<'life0, 'life1, 'async_trait>(
&'life0 self,
flow: &'life1 mut Flow,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Called when a WebSocket handshake completes (connection established).
Source§fn on_websocket_end<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
flow: &'life1 mut Flow,
close_code: u16,
close_reason: &'life2 str,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn on_websocket_end<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
flow: &'life1 mut Flow,
close_code: u16,
close_reason: &'life2 str,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Called when a WebSocket connection closes normally.
Source§fn on_websocket_error<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
flow: &'life1 mut Flow,
error: &'life2 str,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn on_websocket_error<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
flow: &'life1 mut Flow,
error: &'life2 str,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Called when a WebSocket connection encounters an error.
Auto Trait Implementations§
impl !Freeze for ScriptInterceptor
impl !RefUnwindSafe for ScriptInterceptor
impl Send for ScriptInterceptor
impl Sync for ScriptInterceptor
impl Unpin for ScriptInterceptor
impl UnsafeUnpin for ScriptInterceptor
impl !UnwindSafe for ScriptInterceptor
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more