pub trait ResolveEndpoint:
Send
+ Sync
+ Debug {
// Required method
fn resolve_endpoint<'a>(
&'a self,
params: &'a EndpointResolverParams,
) -> EndpointFuture<'a> ⓘ;
// Provided method
fn finalize_params<'a>(
&'a self,
_params: &'a mut EndpointResolverParams,
) -> Result<(), BoxError> { ... }
}Expand description
Configurable endpoint resolver implementation.
Required Methods§
Sourcefn resolve_endpoint<'a>(
&'a self,
params: &'a EndpointResolverParams,
) -> EndpointFuture<'a> ⓘ
fn resolve_endpoint<'a>( &'a self, params: &'a EndpointResolverParams, ) -> EndpointFuture<'a> ⓘ
Asynchronously resolves an endpoint to use from the given endpoint parameters.
Provided Methods§
Sourcefn finalize_params<'a>(
&'a self,
_params: &'a mut EndpointResolverParams,
) -> Result<(), BoxError>
fn finalize_params<'a>( &'a self, _params: &'a mut EndpointResolverParams, ) -> Result<(), BoxError>
Finalize the service-specific concrete parameters in _params.
The EndpointResolverParams may need to include additional data at a later point,
after its creation in the read_before_execution method of an endpoint parameters interceptor.
Modifying it directly within the ResolveEndpoint::resolve_endpoint method is not feasible,
as params is passed by reference. This means that incorporating extra data would require
cloning params within the method. However, the return type EndpointFuture has a lifetime
tied to the input argument, making it impossible to return the cloned params, as its lifetime
is scoped to the method.