pub trait RouterPlugin:
Send
+ Sync
+ 'static {
type Config: DeserializeOwned + Sync;
Show 13 methods
// Required methods
fn plugin_name() -> &'static str;
fn on_plugin_init(
payload: OnPluginInitPayload<'_, Self>,
) -> OnPluginInitResult<Self>
where Self: Sized;
// Provided methods
fn on_http_request<'req>(
&'req self,
start_payload: OnHttpRequestHookPayload<'req>,
) -> OnHttpRequestHookResult<'req> { ... }
fn on_graphql_params<'exec, 'async_trait>(
&'exec self,
start_payload: OnGraphQLParamsStartHookPayload<'exec>,
) -> Pin<Box<dyn Future<Output = OnGraphQLParamsStartHookResult<'exec>> + Send + 'async_trait>>
where Self: 'async_trait,
'exec: 'async_trait { ... }
fn on_graphql_parse<'exec, 'async_trait>(
&'exec self,
start_payload: OnGraphQLParseStartHookPayload<'exec>,
) -> Pin<Box<dyn Future<Output = OnGraphQLParseHookResult<'exec>> + Send + 'async_trait>>
where Self: 'async_trait,
'exec: 'async_trait { ... }
fn on_graphql_validation<'exec, 'async_trait>(
&'exec self,
start_payload: OnGraphQLValidationStartHookPayload<'exec>,
) -> Pin<Box<dyn Future<Output = OnGraphQLValidationStartHookResult<'exec>> + Send + 'async_trait>>
where Self: 'async_trait,
'exec: 'async_trait { ... }
fn on_query_plan<'exec, 'async_trait>(
&'exec self,
start_payload: OnQueryPlanStartHookPayload<'exec>,
) -> Pin<Box<dyn Future<Output = OnQueryPlanStartHookResult<'exec>> + Send + 'async_trait>>
where Self: 'async_trait,
'exec: 'async_trait { ... }
fn on_execute<'exec, 'async_trait>(
&'exec self,
start_payload: OnExecuteStartHookPayload<'exec>,
) -> Pin<Box<dyn Future<Output = OnExecuteStartHookResult<'exec>> + Send + 'async_trait>>
where Self: 'async_trait,
'exec: 'async_trait { ... }
fn on_subgraph_execute<'exec, 'async_trait>(
&'exec self,
start_payload: OnSubgraphExecuteStartHookPayload<'exec>,
) -> Pin<Box<dyn Future<Output = OnSubgraphExecuteStartHookResult<'exec>> + Send + 'async_trait>>
where Self: 'async_trait,
'exec: 'async_trait { ... }
fn on_subgraph_http_request<'exec, 'async_trait>(
&'exec self,
start_payload: OnSubgraphHttpRequestHookPayload<'exec>,
) -> Pin<Box<dyn Future<Output = OnSubgraphHttpRequestHookResult<'exec>> + Send + 'async_trait>>
where Self: 'async_trait,
'exec: 'async_trait { ... }
fn on_supergraph_reload<'exec>(
&'exec self,
start_payload: OnSupergraphLoadStartHookPayload,
) -> OnSupergraphLoadStartHookResult<'exec> { ... }
fn on_graphql_error(
&self,
payload: OnGraphQLErrorHookPayload,
) -> OnGraphQLErrorHookResult { ... }
fn on_shutdown<'exec, 'async_trait>(
&'exec self,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait,
'exec: 'async_trait { ... }
}Required Associated Types§
type Config: DeserializeOwned + Sync
Required Methods§
fn plugin_name() -> &'static str
fn on_plugin_init(
payload: OnPluginInitPayload<'_, Self>,
) -> OnPluginInitResult<Self>where
Self: Sized,
Provided Methods§
fn on_http_request<'req>( &'req self, start_payload: OnHttpRequestHookPayload<'req>, ) -> OnHttpRequestHookResult<'req>
fn on_graphql_params<'exec, 'async_trait>(
&'exec self,
start_payload: OnGraphQLParamsStartHookPayload<'exec>,
) -> Pin<Box<dyn Future<Output = OnGraphQLParamsStartHookResult<'exec>> + Send + 'async_trait>>where
Self: 'async_trait,
'exec: 'async_trait,
fn on_graphql_parse<'exec, 'async_trait>(
&'exec self,
start_payload: OnGraphQLParseStartHookPayload<'exec>,
) -> Pin<Box<dyn Future<Output = OnGraphQLParseHookResult<'exec>> + Send + 'async_trait>>where
Self: 'async_trait,
'exec: 'async_trait,
fn on_graphql_validation<'exec, 'async_trait>(
&'exec self,
start_payload: OnGraphQLValidationStartHookPayload<'exec>,
) -> Pin<Box<dyn Future<Output = OnGraphQLValidationStartHookResult<'exec>> + Send + 'async_trait>>where
Self: 'async_trait,
'exec: 'async_trait,
fn on_query_plan<'exec, 'async_trait>(
&'exec self,
start_payload: OnQueryPlanStartHookPayload<'exec>,
) -> Pin<Box<dyn Future<Output = OnQueryPlanStartHookResult<'exec>> + Send + 'async_trait>>where
Self: 'async_trait,
'exec: 'async_trait,
fn on_execute<'exec, 'async_trait>(
&'exec self,
start_payload: OnExecuteStartHookPayload<'exec>,
) -> Pin<Box<dyn Future<Output = OnExecuteStartHookResult<'exec>> + Send + 'async_trait>>where
Self: 'async_trait,
'exec: 'async_trait,
fn on_subgraph_execute<'exec, 'async_trait>(
&'exec self,
start_payload: OnSubgraphExecuteStartHookPayload<'exec>,
) -> Pin<Box<dyn Future<Output = OnSubgraphExecuteStartHookResult<'exec>> + Send + 'async_trait>>where
Self: 'async_trait,
'exec: 'async_trait,
fn on_subgraph_http_request<'exec, 'async_trait>(
&'exec self,
start_payload: OnSubgraphHttpRequestHookPayload<'exec>,
) -> Pin<Box<dyn Future<Output = OnSubgraphHttpRequestHookResult<'exec>> + Send + 'async_trait>>where
Self: 'async_trait,
'exec: 'async_trait,
fn on_supergraph_reload<'exec>( &'exec self, start_payload: OnSupergraphLoadStartHookPayload, ) -> OnSupergraphLoadStartHookResult<'exec>
fn on_graphql_error( &self, payload: OnGraphQLErrorHookPayload, ) -> OnGraphQLErrorHookResult
fn on_shutdown<'exec, 'async_trait>(
&'exec self,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'exec: 'async_trait,
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.