[−][src]Crate structpath
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.
Examples
Basic example
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) }
Structs
Schema | Schema hold the schema definition for a particular url path pattern. |
SegmentValueSchema | SegmentValueSchema holds the schema for a particular value segment. |
Enums
DeserializerState | Internal state for Deserializer, usually only useful for debugging. |
PathSchemaParseError | Error type for parsing Schemas from a String |
SegmentSchema | SegmentSchema is the schema for a particular path segment |
SegmentType | SegmentType is a basic enum for specifying what type a segment's value is. |
SegmentValue | SegmentValue holds a parsed value |
SerializerState | Internal state used by the Serializer, typically only used for debugging. |
StructPathError | General error type for errors when parsing or generating urls |
Functions
generate_path | Generate a string url path given parameters and a |
parse_path | Parse a particular path using a |