Struct actix_web::web::Path [−][src]
pub struct Path<T>(pub T);Expand description
Extract typed information from the request’s path.
PathConfig allows to configure extraction process.
Example
use actix_web::{web, App};
/// extract path info from "/{username}/{count}/index.html" url
/// {username} - deserializes to a String
/// {count} - - deserializes to a u32
async fn index(web::Path((username, count)): web::Path<(String, u32)>) -> String {
format!("Welcome {}! {}", username, count)
}
fn main() {
let app = App::new().service(
web::resource("/{username}/{count}/index.html") // <- define path parameters
.route(web::get().to(index)) // <- register handler with `Path` extractor
);
}It is possible to extract path information to a specific type that
implements Deserialize trait from serde.
use actix_web::{web, App, Error};
use serde_derive::Deserialize;
#[derive(Deserialize)]
struct Info {
username: String,
}
/// extract `Info` from a path using serde
async fn index(info: web::Path<Info>) -> Result<String, Error> {
Ok(format!("Welcome {}!", info.username))
}
fn main() {
let app = App::new().service(
web::resource("/{username}/index.html") // <- define path parameters
.route(web::get().to(index)) // <- use handler with Path` extractor
);
}Tuple Fields
0: TImplementations
Deconstruct to an inner value
Trait Implementations
Extract typed information from the request’s path.
Example
use actix_web::{web, App};
/// extract path info from "/{username}/{count}/index.html" url
/// {username} - deserializes to a String
/// {count} - - deserializes to a u32
async fn index(web::Path((username, count)): web::Path<(String, u32)>) -> String {
format!("Welcome {}! {}", username, count)
}
fn main() {
let app = App::new().service(
web::resource("/{username}/{count}/index.html") // <- define path parameters
.route(web::get().to(index)) // <- register handler with `Path` extractor
);
}It is possible to extract path information to a specific type that
implements Deserialize trait from serde.
use actix_web::{web, App, Error};
use serde_derive::Deserialize;
#[derive(Deserialize)]
struct Info {
username: String,
}
/// extract `Info` from a path using serde
async fn index(info: web::Path<Info>) -> Result<String, Error> {
Ok(format!("Welcome {}!", info.username))
}
fn main() {
let app = App::new().service(
web::resource("/{username}/index.html") // <- define path parameters
.route(web::get().to(index)) // <- use handler with Path` extractor
);
}type Config = PathConfig
type Config = PathConfig
Configuration for this extractor
Convert request to a Self
Convert request to a Self Read more
This method returns an ordering between self and other values if one exists. Read more
This method tests less than (for self and other) and is used by the < operator. Read more
This method tests less than or equal to (for self and other) and is used by the <=
operator. Read more
This method tests greater than (for self and other) and is used by the > operator. Read more
Auto Trait Implementations
impl<T> RefUnwindSafe for Path<T> where
T: RefUnwindSafe,
impl<T> UnwindSafe for Path<T> where
T: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more
Compare self to key and return true if they are equal.
Instruments this type with the provided Span, returning an
Instrumented wrapper. Read more
pub fn vzip(self) -> V
Attaches the provided Subscriber to this type, returning a
WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a
WithDispatch wrapper. Read more
