pub trait Policy:
Send
+ Sync
+ Debug {
// Required method
fn send<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
ctx: &'life1 Context,
request: &'life2 mut Request,
next: &'life3 [Arc<dyn Policy>],
) -> Pin<Box<dyn Future<Output = PolicyResult> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait;
}Expand description
A pipeline policy.
Policies are expected to modify the request and then call the following policy.
Policies can then inspect the response, potentially signaling failure.
The only runtime enforced check is that the last policy must be a Transport policy. It’s up to
the implementer to call the following policy.
The C generic represents the contents of the AuthorizationPolicy specific of this pipeline.
Required Methods§
fn send<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
ctx: &'life1 Context,
request: &'life2 mut Request,
next: &'life3 [Arc<dyn Policy>],
) -> Pin<Box<dyn Future<Output = PolicyResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".