Struct BoxCloneSyncService
pub struct BoxCloneSyncService<T, U, E>(/* private field */);
A Clone + Send + Sync boxed Service.
BoxCloneSyncService turns a service into a trait object, allowing the
response future type to be dynamic, and allowing the service to be cloned and shared.
This is similar to BoxCloneService except the resulting
service implements Sync.
Implementations
impl<T, U, E> BoxCloneSyncService<T, U, E>
fn new<S>(inner: S) -> Self where S: Service<T, Response = U, Error = E> + Clone + Send + Sync + 'static, S::Future: Send + 'static,Create a new
BoxCloneSyncService.fn layer<S>() -> LayerFn<fn(S) -> Self> where S: Service<T, Response = U, Error = E> + Clone + Send + Sync + 'static, S::Future: Send + 'static,Returns a
Layerfor wrapping aServicein aBoxCloneSyncServicemiddleware.
Trait Implementations
impl<T, U, E> Clone for BoxCloneSyncService<T, U, E>
fn clone(&self) -> Self
impl<T, U, E> Debug for BoxCloneSyncService<T, U, E>
fn fmt(&self, fmt: &mut Formatter<'_>) -> Result
impl<T, U, E> Service<T> for BoxCloneSyncService<T, U, E>
type Response = U;type Error = E;type Future = Pin<Box<dyn Future<Output = Result<U, E>> + Send>>;fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), E>>fn call(&mut self, request: T) -> Self::Future
Auto Trait Implementations
impl<T, U, E> !RefUnwindSafe for BoxCloneSyncService<T, U, E>
impl<T, U, E> !UnwindSafe for BoxCloneSyncService<T, U, E>
impl<T, U, E> Freeze for BoxCloneSyncService<T, U, E>
where
Box<dyn CloneService<T, Error = E, Future = Pin<Box<dyn Future<Output = Result<U, E>> + Send>>, Response = U> + Sync + Send>: Freeze,
impl<T, U, E> Send for BoxCloneSyncService<T, U, E>
where
Box<dyn CloneService<T, Error = E, Future = Pin<Box<dyn Future<Output = Result<U, E>> + Send>>, Response = U> + Sync + Send>: Send,
impl<T, U, E> Sync for BoxCloneSyncService<T, U, E>
where
Box<dyn CloneService<T, Error = E, Future = Pin<Box<dyn Future<Output = Result<U, E>> + Send>>, Response = U> + Sync + Send>: Sync,
impl<T, U, E> Unpin for BoxCloneSyncService<T, U, E>
where
Box<dyn CloneService<T, Error = E, Future = Pin<Box<dyn Future<Output = Result<U, E>> + Send>>, Response = U> + Sync + Send>: Unpin,
impl<T, U, E> UnsafeUnpin for BoxCloneSyncService<T, U, E>
where
Box<dyn CloneService<T, Error = E, Future = Pin<Box<dyn Future<Output = Result<U, E>> + Send>>, Response = U> + Sync + Send>: UnsafeUnpin,
Blanket Implementations
impl<C, Target> MakeConnection<Target> for BoxCloneSyncService<T, U, E>
where
C: Service<Target>,
<C as Service<Target>>::Response: AsyncRead + AsyncWrite,
type Connection = <C as Service<Target>>::Response;type Error = <C as Service<Target>>::Error;type Future = <C as Service<Target>>::Future;fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), <C as MakeConnection<Target>>::Error>>fn make_connection(&mut self, target: Target) -> <C as MakeConnection<Target>>::Future
impl<M, S, Target, Request> MakeService<Target, Request> for BoxCloneSyncService<T, U, E>
where
M: Service<Target, Response = S>,
S: Service<Request>,
type Response = <S as Service<Request>>::Response;type Error = <S as Service<Request>>::Error;type Service = S;type MakeError = <M as Service<Target>>::Error;type Future = <M as Service<Target>>::Future;fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), <M as MakeService<Target, Request>>::MakeError>>fn make_service(&mut self, target: Target) -> <M as MakeService<Target, Request>>::Future
impl<T> Any for BoxCloneSyncService<T, U, E>
where
T: 'static + ?Sized,
fn type_id(&self) -> TypeId
impl<T> Borrow<T> for BoxCloneSyncService<T, U, E>
where
T: ?Sized,
fn borrow(&self) -> &T
impl<T> BorrowMut<T> for BoxCloneSyncService<T, U, E>
where
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> CloneToUninit for BoxCloneSyncService<T, U, E>
where
T: Clone,
unsafe fn clone_to_uninit(&self, dest: *mut u8)
impl<T> From<T> for BoxCloneSyncService<T, U, E>
fn from(t: T) -> TReturns the argument unchanged.
impl<T> Instrument for BoxCloneSyncService<T, U, E>
impl<T> ToOwned for BoxCloneSyncService<T, U, E>
where
T: Clone,
type Owned = T;fn to_owned(&self) -> Tfn clone_into(&self, target: &mut T)
impl<T> WithSubscriber for BoxCloneSyncService<T, U, E>
impl<T, Request> ServiceExt<Request> for BoxCloneSyncService<T, U, E>
where
T: Service<Request> + ?Sized,
impl<T, U> Into<U> for BoxCloneSyncService<T, U, E>
where
U: From<T>,
fn into(self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom<U> for BoxCloneSyncService<T, U, E>
where
U: Into<T>,
type Error = never;fn try_from(value: U) -> Result<T, never>
impl<T, U> TryInto<U> for BoxCloneSyncService<T, U, E>
where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error;fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>