pub struct PathParams<T>(pub T);
Expand description
Extract (typed) path parameters from the path of an incoming request.
§Guide
Check out the guide for more information on how to use this extractor.
§Example
use pavex::f;
use pavex::blueprint::{router::GET, Blueprint, constructor::Lifecycle};
use pavex::request::path::PathParams;
fn blueprint() -> Blueprint {
let mut bp = Blueprint::new();
// Register the default constructor and error handler for `PathParams`.
PathParams::register(&mut bp);
// Register a route with a path parameter, `:home_id`.
bp.route(GET, "/home/:home_id", f!(crate::get_home));
bp
}
// The PathParams attribute macro derives the necessary (de)serialization traits.
#[PathParams]
pub struct Home {
// The name of the field must match the name of the path parameter
// used in `bp.route`.
home_id: u32
}
// The `PathParams` extractor deserializes the extracted path parameters into
// the type you specified—`HomePathParams` in this case.
pub fn get_home(params: &PathParams<Home>) -> String {
format!("The identifier for this home is: {}", params.0.home_id)
}
home_id
will be set to 1
for an incoming /home/1
request.
Extraction will fail, instead, if we receive an /home/abc
request.
Tuple Fields§
§0: T
The extracted path parameters, deserialized into T
, the type you specified.
Implementations§
source§impl<T> PathParams<T>
impl<T> PathParams<T>
sourcepub fn extract<'server, 'request>(
params: RawPathParams<'server, 'request>,
) -> Result<Self, ExtractPathParamsError>where
T: Deserialize<'request>,
'server: 'request,
pub fn extract<'server, 'request>(
params: RawPathParams<'server, 'request>,
) -> Result<Self, ExtractPathParamsError>where
T: Deserialize<'request>,
'server: 'request,
The default constructor for PathParams
.
If the extraction fails, an ExtractPathParamsError
is returned.
source§impl PathParams<()>
impl PathParams<()>
sourcepub fn register(bp: &mut Blueprint) -> RegisteredConstructor<'_>
pub fn register(bp: &mut Blueprint) -> RegisteredConstructor<'_>
Register the default constructor
for PathParams
with a Blueprint
.
sourcepub fn default_constructor() -> Constructor
pub fn default_constructor() -> Constructor
The default constructor
and error handler
for PathParams
.
Auto Trait Implementations§
impl<T> Freeze for PathParams<T>where
T: Freeze,
impl<T> RefUnwindSafe for PathParams<T>where
T: RefUnwindSafe,
impl<T> Send for PathParams<T>where
T: Send,
impl<T> Sync for PathParams<T>where
T: Sync,
impl<T> Unpin for PathParams<T>where
T: Unpin,
impl<T> UnwindSafe for PathParams<T>where
T: UnwindSafe,
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