pub struct Proxy { /* private fields */ }
Implementations§
Source§impl Proxy
impl Proxy
pub fn new(peer: HttpPeer) -> Self
pub fn new_custom(peer_resolver: Rc<dyn HttpPeerResolve>) -> Self
Sourcepub fn guard<G: Guard + 'static>(self, guard: G) -> Self
pub fn guard<G: Guard + 'static>(self, guard: G) -> Self
Adds a routing guard.
Use this to allow multiple chained file services that respond to strictly different properties of a request. Due to the way routing works, if a guard check returns true and the request starts being handled by the file service, it will not be able to back-out and try the next service, you will simply get a 404 (or 405) error response.
Sourcepub fn default_handler<F, U>(self, f: F) -> Selfwhere
F: IntoServiceFactory<U, ServiceRequest>,
U: ServiceFactory<ServiceRequest, Config = (), Response = ServiceResponse, Error = Error> + 'static,
pub fn default_handler<F, U>(self, f: F) -> Selfwhere
F: IntoServiceFactory<U, ServiceRequest>,
U: ServiceFactory<ServiceRequest, Config = (), Response = ServiceResponse, Error = Error> + 'static,
Sets default handler which is used when no peer could be found.
pub fn error_handler<F, U>(self, f: F) -> Selfwhere
F: IntoServiceFactory<U, ProxyError>,
U: ServiceFactory<ProxyError, Config = (), Response = HttpResponse, Error = Error> + 'static,
Trait Implementations§
Source§impl HttpServiceFactory for Proxy
impl HttpServiceFactory for Proxy
fn register(self, config: &mut AppService)
Source§impl ServiceFactory<ServiceRequest> for Proxy
impl ServiceFactory<ServiceRequest> for Proxy
Source§type Response = ServiceResponse
type Response = ServiceResponse
Responses given by the created services.
Source§type Future = Pin<Box<dyn Future<Output = Result<<Proxy as ServiceFactory<ServiceRequest>>::Service, <Proxy as ServiceFactory<ServiceRequest>>::InitError>>>>
type Future = Pin<Box<dyn Future<Output = Result<<Proxy as ServiceFactory<ServiceRequest>>::Service, <Proxy as ServiceFactory<ServiceRequest>>::InitError>>>>
The future of the
Service
instance.gSource§fn new_service(&self, _cfg: Self::Config) -> Self::Future
fn new_service(&self, _cfg: Self::Config) -> Self::Future
Create and return a new service asynchronously.
Auto Trait Implementations§
impl Freeze for Proxy
impl !RefUnwindSafe for Proxy
impl !Send for Proxy
impl !Sync for Proxy
impl Unpin for Proxy
impl !UnwindSafe for Proxy
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
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<SF, Req> IntoServiceFactory<SF, Req> for SFwhere
SF: ServiceFactory<Req>,
impl<SF, Req> IntoServiceFactory<SF, Req> for SFwhere
SF: ServiceFactory<Req>,
Source§fn into_factory(self) -> SF
fn into_factory(self) -> SF
Convert
Self
to a ServiceFactory
Source§impl<SF, Req> ServiceFactoryExt<Req> for SFwhere
SF: ServiceFactory<Req>,
impl<SF, Req> ServiceFactoryExt<Req> for SFwhere
SF: ServiceFactory<Req>,
Source§fn map<F, R>(self, f: F) -> MapServiceFactory<Self, F, Req, R>
fn map<F, R>(self, f: F) -> MapServiceFactory<Self, F, Req, R>
Map this service’s output to a different type, returning a new service
of the resulting type.
Source§fn map_err<F, E>(self, f: F) -> MapErrServiceFactory<Self, Req, F, E>
fn map_err<F, E>(self, f: F) -> MapErrServiceFactory<Self, Req, F, E>
Map this service’s error to a different error, returning a new service.
Source§fn map_init_err<F, E>(self, f: F) -> MapInitErr<Self, F, Req, E>
fn map_init_err<F, E>(self, f: F) -> MapInitErr<Self, F, Req, E>
Map this factory’s init error to a different error, returning a new service.
Source§fn and_then<I, SF1>(self, factory: I) -> AndThenServiceFactory<Self, SF1, Req>where
Self: Sized,
Self::Config: Clone,
I: IntoServiceFactory<SF1, Self::Response>,
SF1: ServiceFactory<Self::Response, Config = Self::Config, Error = Self::Error, InitError = Self::InitError>,
fn and_then<I, SF1>(self, factory: I) -> AndThenServiceFactory<Self, SF1, Req>where
Self: Sized,
Self::Config: Clone,
I: IntoServiceFactory<SF1, Self::Response>,
SF1: ServiceFactory<Self::Response, Config = Self::Config, Error = Self::Error, InitError = Self::InitError>,
Call another service after call to this one has resolved successfully.