pub enum PathRewrite {
StripPrefix {},
ReplacePrefix {
prefix: String,
replacement: String,
},
Regex {
pattern: String,
substitution: String,
},
}Expand description
Path rewrite applied before proxying (DW-010). Exactly one variant per proxy action; there is no rewrite chaining in v1. All variants operate on the path component only — the inbound query string is re-attached untouched.
Variants§
StripPrefix
Strip the route’s matched prefix (the match.path.value with
trailing slashes trimmed) from the front of the request path.
Meaningful for prefix-kind routes; for other kinds it strips the
pattern’s byte length when the path starts with the pattern value
and is a no-op otherwise. If nothing remains (or the remainder
lacks a leading /), the result is normalized to /rest.
ReplacePrefix
Replace a literal prefix: when the request path starts with
prefix, that prefix is replaced by replacement; otherwise this
rewrite is a no-op (the path is forwarded unchanged).
Regex
Replace the FIRST regex match on the request path with
substitution. Substitution references: $1..$9 / ${n} for
capture groups of pattern; $name / ${name} for named capture
groups of pattern, falling back to path parameters captured by
the route’s {param} template. Unknown references expand to the
empty string. The pattern must compile — checked at config compile
time, never at request time.
Trait Implementations§
Source§impl Clone for PathRewrite
impl Clone for PathRewrite
Source§fn clone(&self) -> PathRewrite
fn clone(&self) -> PathRewrite
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PathRewrite
impl Debug for PathRewrite
Source§impl<'de> Deserialize<'de> for PathRewrite
impl<'de> Deserialize<'de> for PathRewrite
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for PathRewrite
impl JsonSchema for PathRewrite
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl PartialEq for PathRewrite
impl PartialEq for PathRewrite
Source§impl Serialize for PathRewrite
impl Serialize for PathRewrite
impl StructuralPartialEq for PathRewrite
Auto Trait Implementations§
impl Freeze for PathRewrite
impl RefUnwindSafe for PathRewrite
impl Send for PathRewrite
impl Sync for PathRewrite
impl Unpin for PathRewrite
impl UnwindSafe for PathRewrite
Blanket Implementations§
§impl<T> AnyExt for T
impl<T> AnyExt for T
§fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
T behind reference§fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
T behind mutable reference§fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
T behind Rc pointer§fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
T behind Arc pointer§fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
T behind Box pointer§fn downcast_move<T>(this: Self) -> Option<T>
fn downcast_move<T>(this: Self) -> Option<T>
Self to T,
useful only in generic context as a workaround for specializationSource§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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
fn coerce_rc_to(self: Rc<X>) -> Rc<T>
fn coerce_box_to(self: Box<X>) -> Box<T>
fn coerce_ref_to(&self) -> &T
fn coerce_mut_to(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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>
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>
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 more