pub struct ImageOptim { /* private fields */ }Implementations§
Source§impl ImageOptim
impl ImageOptim
pub fn new(params: &PluginConf) -> Result<Self, Error>
Trait Implementations§
Source§impl Plugin for ImageOptim
impl Plugin for ImageOptim
Source§fn config_key(&self) -> Cow<'_, str>
fn config_key(&self) -> Cow<'_, str>
Returns a unique identifier for this plugin instance
Source§fn handle_response<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_session: &'life1 mut Session,
_ctx: &'life2 mut Ctx,
upstream_response: &'life3 mut ResponseHeader,
) -> Pin<Box<dyn Future<Output = Result<ResponsePluginResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn handle_response<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_session: &'life1 mut Session,
_ctx: &'life2 mut Ctx,
upstream_response: &'life3 mut ResponseHeader,
) -> Pin<Box<dyn Future<Output = Result<ResponsePluginResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
The upstream’s strong ETag names the image it sent, and what
goes out is that image encoded anew: the validator is made a weak
one. On the way to the client, for a response from the cache as
well, and not on the response that is stored: the cache
revalidates with the validator as the upstream gave it.
Every image of a kind this plugin reads or writes gets it, also one that was left as it came (too large, say): which it was is not known here, and a weak validator is never wrong.
Source§fn handle_request<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
step: PluginStep,
session: &'life1 mut Session,
ctx: &'life2 mut Ctx,
) -> Pin<Box<dyn Future<Output = Result<RequestPluginResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn handle_request<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
step: PluginStep,
session: &'life1 mut Session,
ctx: &'life2 mut Ctx,
) -> Pin<Box<dyn Future<Output = Result<RequestPluginResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Processes an HTTP request at a specified lifecycle step. Read more
Source§fn handle_upstream_response(
&self,
session: &mut Session,
ctx: &mut Ctx,
upstream_response: &mut ResponseHeader,
) -> Result<ResponsePluginResult>
fn handle_upstream_response( &self, session: &mut Session, ctx: &mut Ctx, upstream_response: &mut ResponseHeader, ) -> Result<ResponsePluginResult>
Processes an upstream response at a specified lifecycle step. Read more
Source§fn handle_upstream_response_body(
&self,
session: &mut Session,
ctx: &mut Ctx,
body: &mut Option<Bytes>,
end_of_stream: bool,
) -> Result<ResponseBodyPluginResult>
fn handle_upstream_response_body( &self, session: &mut Session, ctx: &mut Ctx, body: &mut Option<Bytes>, end_of_stream: bool, ) -> Result<ResponseBodyPluginResult>
Processes an upstream response body at a specified lifecycle step. Read more
Source§fn handles_plugin_response(&self) -> bool
fn handles_plugin_response(&self) -> bool
Whether
handle_response is also to see the response that another
plugin answered the request with. Read moreSource§fn error_page(
&self,
_session: &Session,
_status: StatusCode,
_message: &str,
) -> Option<(HeaderValue, Bytes)>
fn error_page( &self, _session: &Session, _status: StatusCode, _message: &str, ) -> Option<(HeaderValue, Bytes)>
The page this plugin has for an error the proxy answers itself -
no upstream to be had, a request refused by a limit - in place of
the one of the server: its content type and its body.
None
from a plugin that has none, which is every plugin but
error_page, or none for this status. Read moreAuto Trait Implementations§
impl Freeze for ImageOptim
impl RefUnwindSafe for ImageOptim
impl Send for ImageOptim
impl Sync for ImageOptim
impl Unpin for ImageOptim
impl UnsafeUnpin for ImageOptim
impl UnwindSafe for ImageOptim
Blanket Implementations§
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request