Struct OriginalUri
struct OriginalUri(2266)
Extractor that gets the original request URI regardless of nesting.
This is necessary since Uri, when used as an extractor, will
have the prefix stripped if used in a nested service.
Example
use ;
let api_routes = new
.route;
let app = new.nest;
# let _: Router = app;
Extracting via request extensions
OriginalUri can also be accessed from middleware via request extensions.
This is useful for example with Trace to
create a span that contains the full path, if your service might be nested:
use ;
use TraceLayer;
let api_routes = new
.route
.layer;
let app = new.nest;
# let _: Router = app;
Implementations
impl Clone for OriginalUri
fn clone(self: &Self) -> OriginalUri
impl Debug for OriginalUri
fn fmt(self: &Self, f: &mut Formatter<'_>) -> Result
impl Deref for OriginalUri
fn deref(self: &Self) -> &<Self as >::Target
impl DerefMut for OriginalUri
fn deref_mut(self: &mut Self) -> &mut <Self as >::Target
impl Freeze for OriginalUri
impl RefUnwindSafe for OriginalUri
impl Send for OriginalUri
impl Sync for OriginalUri
impl Unpin for OriginalUri
impl UnsafeUnpin for OriginalUri
impl UnwindSafe for OriginalUri
impl<P, T> Receiver for OriginalUri
impl<S> FromRequestParts for OriginalUri
async fn from_request_parts(parts: &mut Parts, state: &S) -> Result<Self, <Self as >::Rejection>
impl<S, T> FromRequest for OriginalUri
fn from_request(req: Request<Body>, state: &S) -> impl Future<Output = Result<T, <T as FromRequest<S, ViaParts>>::Rejection>>
impl<T> Any for OriginalUri
fn type_id(self: &Self) -> TypeId
impl<T> Borrow for OriginalUri
fn borrow(self: &Self) -> &T
impl<T> BorrowMut for OriginalUri
fn borrow_mut(self: &mut Self) -> &mut T
impl<T> CloneToUninit for OriginalUri
unsafe fn clone_to_uninit(self: &Self, dest: *mut u8)
impl<T> From for OriginalUri
fn from(t: T) -> TReturns the argument unchanged.
impl<T> FromRef for OriginalUri
fn from_ref(input: &T) -> T
impl<T> Instrument for OriginalUri
impl<T> Same for OriginalUri
impl<T> ToOwned for OriginalUri
fn to_owned(self: &Self) -> Tfn clone_into(self: &Self, target: &mut T)
impl<T> WithSubscriber for OriginalUri
impl<T, U> Into for OriginalUri
fn into(self: Self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom for OriginalUri
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T, U> TryInto for OriginalUri
fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>
impl<V, T> VZip for OriginalUri
fn vzip(self: Self) -> V