pub struct BoxedService<Request, Response, E> { /* private fields */ }
Expand description
A type-erased wrapper for services, enabling dynamic dispatch.
A type-erased wrapper for services, enabling dynamic dispatch.
BoxedService
allows for storing and using services of different types
through a common interface.
Implementations§
Source§impl<Request, Response, E> BoxedService<Request, Response, E>
impl<Request, Response, E> BoxedService<Request, Response, E>
pub fn new<S>(s: S) -> Selfwhere
S: Service<Request, Response = Response, Error = E> + 'static,
Request: 'static,
pub fn downcast_ref<T: Any>(&self) -> Option<&T>
Sourcepub unsafe fn downcast_ref_unchecked<T: Any>(&self) -> &T
pub unsafe fn downcast_ref_unchecked<T: Any>(&self) -> &T
§Safety
If you are sure the inner type is T, you can downcast it.
Trait Implementations§
Source§impl<Request, Response, E> Drop for BoxedService<Request, Response, E>
impl<Request, Response, E> Drop for BoxedService<Request, Response, E>
Source§impl<Request, Response, E> Service<Request> for BoxedService<Request, Response, E>
impl<Request, Response, E> Service<Request> for BoxedService<Request, Response, E>
Auto Trait Implementations§
impl<Request, Response, E> Freeze for BoxedService<Request, Response, E>
impl<Request, Response, E> RefUnwindSafe for BoxedService<Request, Response, E>
impl<Request, Response, E> !Send for BoxedService<Request, Response, E>
impl<Request, Response, E> !Sync for BoxedService<Request, Response, E>
impl<Request, Response, E> Unpin for BoxedService<Request, Response, E>
impl<Request, Response, E> UnwindSafe for BoxedService<Request, Response, E>
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