Crates.io | structpath |
lib.rs | structpath |
version | 0.2.1 |
source | src |
created_at | 2020-11-19 00:06:01.056153 |
updated_at | 2020-11-19 22:30:44.709332 |
description | library type-safe parsing and generation of url paths |
homepage | https://github.com/firba1/structpath |
repository | https://github.com/firba1/structpath |
max_upload_size | |
id | 313850 |
size | 54,982 |
Library for parsing url paths into structs and generating url paths from structs in rust
structpath is a libary which allows parsing and generating url paths in a convenient type safe way.
structpath leverages serde to help parse values into structs.
use serde::{Deserialize, Serialize};
use structpath::Schema;
#[derive(Deserialize)]
struct FooParams {
foo_id: u128,
bar: String,
}
const foo_path = "/foo/<foo_id:u128>/bar/<bar>";
// This is a general idea of a web request handler, not important for the demonstration
fn foo_bar(request: Request) -> Response {
let params: FooParams = Schema::path(foo_path).parse(request.path);
}
fn baz(request: Request) -> Response {
let foo_path = Schema::path(foo_path).generate(FooParams{foo_id: foo_id, bar: bar});
Response::Redirect(foo_path)
}