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.