Trait rocket::http::uri::fmt::FromUriParam
pub trait FromUriParam<P, T>where
P: Part,{
type Target: UriDisplay<P>;
// Required method
fn from_uri_param(param: T) -> Self::Target;
}
Expand description
Conversion trait for parameters used in uri!
invocations.
Overview
In addition to implementing UriDisplay
, to use a custom type in a uri!
expression, the FromUriParam
trait must be implemented. The UriDisplay
derive automatically generates identity implementations of FromUriParam
,
so in the majority of cases, as with UriDisplay
, this trait is never
implemented manually.
In the rare case that UriDisplay
is implemented manually, this trait, too,
must be implemented explicitly. In the majority of cases, implementation can
be automated. Rocket provides [impl_from_uri_param_identity
] to generate
the identity implementations automatically. For a type T
, these are:
impl<P: Part> FromUriParam<P, T> for T
impl<'x, P: Part> FromUriParam<P, &'x T> for T
impl<'x, P: Part> FromUriParam<P, &'x mut T> for T
See impl_from_uri_param_identity!
for usage details.
Code Generation
This trait is invoked once per expression passed into a uri!
invocation.
In particular, for a route URI parameter of type T
and a user-supplied
expression e
of type S
, <T as FromUriParam<S>>::from_uri_param(e)
is
invoked. The returned value of type T::Target
is used in place of the
user’s value and rendered using its UriDisplay
implementation.
This trait allows types that differ from the route URI parameter’s types to
be used in their place at no cost. For instance, the following
implementation, provided by Rocket, allows an &str
to be used in a uri!
invocation for route URI parameters declared as String
:
impl<'a, P: Part> FromUriParam<P, &'a str> for String {
type Target = &'a str;
}
Because the FromUriParam::Target
type is the same as the input type, the
conversion is a no-op and free of cost, allowing an &str
to be used in
place of a String
without penalty.
Provided Implementations
The following types have identity implementations:
String
,i8
,i16
,i32
,i64
,i128
,isize
,u8
,u16
,u32
,u64
,u128
,usize
,f32
,f64
,bool
,IpAddr
,Ipv4Addr
,Ipv6Addr
,&str
,Cow<str>
The following types have identity implementations only in Path
:
&Path
,PathBuf
The following types have identity implementations only in Query
:
Option<T>
,Result<T, E>
The following conversions are implemented for both paths and queries, allowing a value of the type on the left to be used when a type on the right is expected by a route:
&str
toString
String
to&str
T
toForm<T>
The following conversions are implemented only in Path
:
&str
to&Path
&str
toPathBuf
PathBuf
to&Path
T
toOption<T>
T
toResult<T, E>
The following conversions are implemented only in Query
:
Option<T>
toResult<T, E>
(for anyE
)Result<T, E>
toOption<T>
(for anyE
)
See Foreign Impls for all provided implementations.
Implementing
This trait should only be implemented when you’d like to allow a type
different from the route’s declared type to be used in its place in a uri!
invocation. For instance, if the route has a type of T
and you’d like to
use a type of S
in a uri!
invocation, you’d implement FromUriParam<P, T> for S
where P
is Path
for conversions valid in the path part of a
URI, Uri
for conversions valid in the query part of a URI, or P: Part
when a conversion is valid in either case.
This is typically only warranted for owned-value types with corresponding
reference types: String
and &str
, for instance. In this case, it’s
desirable to allow an &str
to be used in place of a String
.
When implementing FromUriParam
, be aware that Rocket will use the
UriDisplay
implementation of FromUriParam::Target
, not of the
source type. Incorrect implementations can result in creating unsafe URIs.
Example
The following example implements FromUriParam<Query, (&str, &str)>
for a
User
type. The implementation allows an (&str, &str)
type to be used in
a uri!
invocation where a User
type is expected in the query part of the
URI.
use std::fmt;
use rocket::http::uri::fmt::{Formatter, UriDisplay, FromUriParam, Query};
#[derive(FromForm)]
struct User<'a> {
name: &'a str,
nickname: String,
}
impl UriDisplay<Query> for User<'_> {
fn fmt(&self, f: &mut Formatter<Query>) -> fmt::Result {
f.write_named_value("name", &self.name)?;
f.write_named_value("nickname", &self.nickname)
}
}
impl<'a, 'b> FromUriParam<Query, (&'a str, &'b str)> for User<'a> {
type Target = User<'a>;
fn from_uri_param((name, nickname): (&'a str, &'b str)) -> User<'a> {
User { name: name.into(), nickname: nickname.to_string() }
}
}
With these implementations, the following typechecks:
#[post("/<name>?<user..>")]
fn some_route(name: &str, user: User<'_>) { /* .. */ }
let uri = uri!(some_route(name = "hey", user = ("Robert Mike", "Bob")));
assert_eq!(uri.path(), "/hey");
assert_eq!(uri.query().unwrap(), "name=Robert%20Mike&nickname=Bob");
Required Associated Types§
type Target: UriDisplay<P>
type Target: UriDisplay<P>
The resulting type of this conversion.
Required Methods§
fn from_uri_param(param: T) -> Self::Target
fn from_uri_param(param: T) -> Self::Target
Converts a value of type T
into a value of type Self::Target
. The
resulting value of type Self::Target
will be rendered into a URI using
its UriDisplay
implementation.
Implementations on Foreign Types§
§impl<'x, P> FromUriParam<P, &'x NonZeroU32> for NonZeroU32where
P: Part,
impl<'x, P> FromUriParam<P, &'x NonZeroU32> for NonZeroU32where P: Part,
type Target = &'x NonZeroU32
fn from_uri_param(param: &'x NonZeroU32) -> &'x NonZeroU32
§impl<P> FromUriParam<P, Ipv6Addr> for Ipv6Addrwhere
P: Part,
impl<P> FromUriParam<P, Ipv6Addr> for Ipv6Addrwhere P: Part,
§impl<'x, P> FromUriParam<P, &'x usize> for usizewhere
P: Part,
impl<'x, P> FromUriParam<P, &'x usize> for usizewhere P: Part,
§impl<'x, P> FromUriParam<P, &'x mut NonZeroUsize> for NonZeroUsizewhere
P: Part,
impl<'x, P> FromUriParam<P, &'x mut NonZeroUsize> for NonZeroUsizewhere P: Part,
type Target = &'x mut NonZeroUsize
fn from_uri_param(param: &'x mut NonZeroUsize) -> &'x mut NonZeroUsize
§impl<P> FromUriParam<P, NonZeroU64> for NonZeroU64where
P: Part,
impl<P> FromUriParam<P, NonZeroU64> for NonZeroU64where P: Part,
type Target = NonZeroU64
fn from_uri_param(param: NonZeroU64) -> NonZeroU64
§impl<'x, P> FromUriParam<P, &'x NonZeroU8> for NonZeroU8where
P: Part,
impl<'x, P> FromUriParam<P, &'x NonZeroU8> for NonZeroU8where P: Part,
§impl<P> FromUriParam<P, NonZeroI32> for NonZeroI32where
P: Part,
impl<P> FromUriParam<P, NonZeroI32> for NonZeroI32where P: Part,
type Target = NonZeroI32
fn from_uri_param(param: NonZeroI32) -> NonZeroI32
§impl<'x, P> FromUriParam<P, &'x mut NonZeroI32> for NonZeroI32where
P: Part,
impl<'x, P> FromUriParam<P, &'x mut NonZeroI32> for NonZeroI32where P: Part,
type Target = &'x mut NonZeroI32
fn from_uri_param(param: &'x mut NonZeroI32) -> &'x mut NonZeroI32
§impl<'x, 'a> FromUriParam<Path, &'x mut PathBuf> for &'a Path
impl<'x, 'a> FromUriParam<Path, &'x mut PathBuf> for &'a Path
§impl<'x, P> FromUriParam<P, &'x mut f32> for f32where
P: Part,
impl<'x, P> FromUriParam<P, &'x mut f32> for f32where P: Part,
§impl<'a> FromUriParam<Path, PathBuf> for &'a Path
impl<'a> FromUriParam<Path, PathBuf> for &'a Path
§impl<'x, P> FromUriParam<P, &'x NonZeroU128> for NonZeroU128where
P: Part,
impl<'x, P> FromUriParam<P, &'x NonZeroU128> for NonZeroU128where P: Part,
type Target = &'x NonZeroU128
fn from_uri_param(param: &'x NonZeroU128) -> &'x NonZeroU128
§impl<'x, 'a> FromUriParam<Path, &'x mut &'a Path> for PathBuf
impl<'x, 'a> FromUriParam<Path, &'x mut &'a Path> for PathBuf
§impl<P> FromUriParam<P, isize> for isizewhere
P: Part,
impl<P> FromUriParam<P, isize> for isizewhere P: Part,
§impl<P> FromUriParam<P, NonZeroU16> for NonZeroU16where
P: Part,
impl<P> FromUriParam<P, NonZeroU16> for NonZeroU16where P: Part,
type Target = NonZeroU16
fn from_uri_param(param: NonZeroU16) -> NonZeroU16
§impl<P> FromUriParam<P, u32> for u32where
P: Part,
impl<P> FromUriParam<P, u32> for u32where P: Part,
§impl<'a> FromUriParam<Path, &'a Path> for &'a Path
impl<'a> FromUriParam<Path, &'a Path> for &'a Path
§impl<P> FromUriParam<P, u16> for u16where
P: Part,
impl<P> FromUriParam<P, u16> for u16where P: Part,
§impl<'x, P> FromUriParam<P, &'x mut i32> for i32where
P: Part,
impl<'x, P> FromUriParam<P, &'x mut i32> for i32where P: Part,
§impl<'x> FromUriParam<Path, &'x PathBuf> for PathBuf
impl<'x> FromUriParam<Path, &'x PathBuf> for PathBuf
§impl<'x, P> FromUriParam<P, &'x SocketAddrV4> for SocketAddrV4where
P: Part,
impl<'x, P> FromUriParam<P, &'x SocketAddrV4> for SocketAddrV4where P: Part,
type Target = &'x SocketAddrV4
fn from_uri_param(param: &'x SocketAddrV4) -> &'x SocketAddrV4
§impl<P> FromUriParam<P, NonZeroU8> for NonZeroU8where
P: Part,
impl<P> FromUriParam<P, NonZeroU8> for NonZeroU8where P: Part,
§impl<'x, P> FromUriParam<P, &'x u32> for u32where
P: Part,
impl<'x, P> FromUriParam<P, &'x u32> for u32where P: Part,
§impl<P> FromUriParam<P, NonZeroI64> for NonZeroI64where
P: Part,
impl<P> FromUriParam<P, NonZeroI64> for NonZeroI64where P: Part,
type Target = NonZeroI64
fn from_uri_param(param: NonZeroI64) -> NonZeroI64
§impl<P> FromUriParam<P, i8> for i8where
P: Part,
impl<P> FromUriParam<P, i8> for i8where P: Part,
§impl<'x, P> FromUriParam<P, &'x mut bool> for boolwhere
P: Part,
impl<'x, P> FromUriParam<P, &'x mut bool> for boolwhere P: Part,
§impl<'x, P> FromUriParam<P, &'x isize> for isizewhere
P: Part,
impl<'x, P> FromUriParam<P, &'x isize> for isizewhere P: Part,
§impl<'x, 'a, P> FromUriParam<P, &'x String> for &'a strwhere
P: Part,
impl<'x, 'a, P> FromUriParam<P, &'x String> for &'a strwhere P: Part,
§impl<'x, 'a> FromUriParam<Path, &'x &'a Path> for PathBuf
impl<'x, 'a> FromUriParam<Path, &'x &'a Path> for PathBuf
§impl<P> FromUriParam<P, Date> for Datewhere
P: Part,
impl<P> FromUriParam<P, Date> for Datewhere P: Part,
§impl<P> FromUriParam<P, NonZeroU32> for NonZeroU32where
P: Part,
impl<P> FromUriParam<P, NonZeroU32> for NonZeroU32where P: Part,
type Target = NonZeroU32
fn from_uri_param(param: NonZeroU32) -> NonZeroU32
§impl<'x, 'a> FromUriParam<Path, &'x PathBuf> for &'a Path
impl<'x, 'a> FromUriParam<Path, &'x PathBuf> for &'a Path
§impl<'x, P> FromUriParam<P, &'x u8> for u8where
P: Part,
impl<'x, P> FromUriParam<P, &'x u8> for u8where P: Part,
§impl<'x, P> FromUriParam<P, &'x Ipv6Addr> for Ipv6Addrwhere
P: Part,
impl<'x, P> FromUriParam<P, &'x Ipv6Addr> for Ipv6Addrwhere P: Part,
§impl<'a> FromUriParam<Path, &'a str> for PathBuf
impl<'a> FromUriParam<Path, &'a str> for PathBuf
A no cost conversion allowing an &str
to be used in place of a PathBuf
.
§impl<'x, P> FromUriParam<P, &'x mut NonZeroU32> for NonZeroU32where
P: Part,
impl<'x, P> FromUriParam<P, &'x mut NonZeroU32> for NonZeroU32where P: Part,
type Target = &'x mut NonZeroU32
fn from_uri_param(param: &'x mut NonZeroU32) -> &'x mut NonZeroU32
§impl<'x, P> FromUriParam<P, &'x mut NonZeroI128> for NonZeroI128where
P: Part,
impl<'x, P> FromUriParam<P, &'x mut NonZeroI128> for NonZeroI128where P: Part,
type Target = &'x mut NonZeroI128
fn from_uri_param(param: &'x mut NonZeroI128) -> &'x mut NonZeroI128
§impl<P> FromUriParam<P, NonZeroU128> for NonZeroU128where
P: Part,
impl<P> FromUriParam<P, NonZeroU128> for NonZeroU128where P: Part,
type Target = NonZeroU128
fn from_uri_param(param: NonZeroU128) -> NonZeroU128
§impl<P> FromUriParam<P, NonZeroI16> for NonZeroI16where
P: Part,
impl<P> FromUriParam<P, NonZeroI16> for NonZeroI16where P: Part,
type Target = NonZeroI16
fn from_uri_param(param: NonZeroI16) -> NonZeroI16
§impl<'x, P> FromUriParam<P, &'x u64> for u64where
P: Part,
impl<'x, P> FromUriParam<P, &'x u64> for u64where P: Part,
§impl<'x, P> FromUriParam<P, &'x mut NonZeroI16> for NonZeroI16where
P: Part,
impl<'x, P> FromUriParam<P, &'x mut NonZeroI16> for NonZeroI16where P: Part,
type Target = &'x mut NonZeroI16
fn from_uri_param(param: &'x mut NonZeroI16) -> &'x mut NonZeroI16
§impl<'x, P> FromUriParam<P, &'x Time> for Timewhere
P: Part,
impl<'x, P> FromUriParam<P, &'x Time> for Timewhere P: Part,
§impl<P> FromUriParam<P, i32> for i32where
P: Part,
impl<P> FromUriParam<P, i32> for i32where P: Part,
§impl<'x, P> FromUriParam<P, &'x NonZeroU16> for NonZeroU16where
P: Part,
impl<'x, P> FromUriParam<P, &'x NonZeroU16> for NonZeroU16where P: Part,
type Target = &'x NonZeroU16
fn from_uri_param(param: &'x NonZeroU16) -> &'x NonZeroU16
§impl<P> FromUriParam<P, Time> for Timewhere
P: Part,
impl<P> FromUriParam<P, Time> for Timewhere P: Part,
§impl<P> FromUriParam<P, NonZeroIsize> for NonZeroIsizewhere
P: Part,
impl<P> FromUriParam<P, NonZeroIsize> for NonZeroIsizewhere P: Part,
type Target = NonZeroIsize
fn from_uri_param(param: NonZeroIsize) -> NonZeroIsize
§impl<'x, P> FromUriParam<P, &'x mut Ipv6Addr> for Ipv6Addrwhere
P: Part,
impl<'x, P> FromUriParam<P, &'x mut Ipv6Addr> for Ipv6Addrwhere P: Part,
§impl<'a, P> FromUriParam<P, String> for &'a strwhere
P: Part,
impl<'a, P> FromUriParam<P, String> for &'a strwhere P: Part,
§impl<P> FromUriParam<P, usize> for usizewhere
P: Part,
impl<P> FromUriParam<P, usize> for usizewhere P: Part,
§impl<'x, P> FromUriParam<P, &'x PrimitiveDateTime> for PrimitiveDateTimewhere
P: Part,
impl<'x, P> FromUriParam<P, &'x PrimitiveDateTime> for PrimitiveDateTimewhere P: Part,
type Target = &'x PrimitiveDateTime
fn from_uri_param(param: &'x PrimitiveDateTime) -> &'x PrimitiveDateTime
§impl<'x, P> FromUriParam<P, &'x mut i128> for i128where
P: Part,
impl<'x, P> FromUriParam<P, &'x mut i128> for i128where P: Part,
§impl<'x, P> FromUriParam<P, &'x mut NonZeroU64> for NonZeroU64where
P: Part,
impl<'x, P> FromUriParam<P, &'x mut NonZeroU64> for NonZeroU64where P: Part,
type Target = &'x mut NonZeroU64
fn from_uri_param(param: &'x mut NonZeroU64) -> &'x mut NonZeroU64
§impl<P> FromUriParam<P, u128> for u128where
P: Part,
impl<P> FromUriParam<P, u128> for u128where P: Part,
§impl<P> FromUriParam<P, SocketAddrV6> for SocketAddrV6where
P: Part,
impl<P> FromUriParam<P, SocketAddrV6> for SocketAddrV6where P: Part,
type Target = SocketAddrV6
fn from_uri_param(param: SocketAddrV6) -> SocketAddrV6
§impl<'x, P> FromUriParam<P, &'x mut Ipv4Addr> for Ipv4Addrwhere
P: Part,
impl<'x, P> FromUriParam<P, &'x mut Ipv4Addr> for Ipv4Addrwhere P: Part,
§impl<'x, P> FromUriParam<P, &'x mut SocketAddr> for SocketAddrwhere
P: Part,
impl<'x, P> FromUriParam<P, &'x mut SocketAddr> for SocketAddrwhere P: Part,
type Target = &'x mut SocketAddr
fn from_uri_param(param: &'x mut SocketAddr) -> &'x mut SocketAddr
§impl<P> FromUriParam<P, f64> for f64where
P: Part,
impl<P> FromUriParam<P, f64> for f64where P: Part,
§impl<'x, P> FromUriParam<P, &'x Ipv4Addr> for Ipv4Addrwhere
P: Part,
impl<'x, P> FromUriParam<P, &'x Ipv4Addr> for Ipv4Addrwhere P: Part,
§impl<'x, 'a, P> FromUriParam<P, &'x mut String> for &'a strwhere
P: Part,
impl<'x, 'a, P> FromUriParam<P, &'x mut String> for &'a strwhere P: Part,
§impl<P> FromUriParam<P, Ipv4Addr> for Ipv4Addrwhere
P: Part,
impl<P> FromUriParam<P, Ipv4Addr> for Ipv4Addrwhere P: Part,
§impl<'x, P> FromUriParam<P, &'x NonZeroU64> for NonZeroU64where
P: Part,
impl<'x, P> FromUriParam<P, &'x NonZeroU64> for NonZeroU64where P: Part,
type Target = &'x NonZeroU64
fn from_uri_param(param: &'x NonZeroU64) -> &'x NonZeroU64
§impl<'a> FromUriParam<Path, &'a Path> for PathBuf
impl<'a> FromUriParam<Path, &'a Path> for PathBuf
§impl<'x, P> FromUriParam<P, &'x mut u16> for u16where
P: Part,
impl<'x, P> FromUriParam<P, &'x mut u16> for u16where P: Part,
§impl<P> FromUriParam<P, i64> for i64where
P: Part,
impl<P> FromUriParam<P, i64> for i64where P: Part,
§impl<P> FromUriParam<P, u64> for u64where
P: Part,
impl<P> FromUriParam<P, u64> for u64where P: Part,
§impl<'x, 'a> FromUriParam<Path, &'x &'a Path> for &'a Path
impl<'x, 'a> FromUriParam<Path, &'x &'a Path> for &'a Path
§impl<'x, P> FromUriParam<P, &'x i128> for i128where
P: Part,
impl<'x, P> FromUriParam<P, &'x i128> for i128where P: Part,
§impl<'x, P> FromUriParam<P, &'x mut Date> for Datewhere
P: Part,
impl<'x, P> FromUriParam<P, &'x mut Date> for Datewhere P: Part,
§impl<'x, P> FromUriParam<P, &'x i8> for i8where
P: Part,
impl<'x, P> FromUriParam<P, &'x i8> for i8where P: Part,
§impl<'x, 'a> FromUriParam<Path, &'x mut &'a Path> for &'a Path
impl<'x, 'a> FromUriParam<Path, &'x mut &'a Path> for &'a Path
§impl<'x, P> FromUriParam<P, &'x SocketAddr> for SocketAddrwhere
P: Part,
impl<'x, P> FromUriParam<P, &'x SocketAddr> for SocketAddrwhere P: Part,
type Target = &'x SocketAddr
fn from_uri_param(param: &'x SocketAddr) -> &'x SocketAddr
§impl FromUriParam<Path, PathBuf> for PathBuf
impl FromUriParam<Path, PathBuf> for PathBuf
§impl<'x, P> FromUriParam<P, &'x mut NonZeroU8> for NonZeroU8where
P: Part,
impl<'x, P> FromUriParam<P, &'x mut NonZeroU8> for NonZeroU8where P: Part,
§impl<'x, P> FromUriParam<P, &'x u128> for u128where
P: Part,
impl<'x, P> FromUriParam<P, &'x u128> for u128where P: Part,
§impl<'a, P> FromUriParam<P, &'a str> for &'a strwhere
P: Part,
impl<'a, P> FromUriParam<P, &'a str> for &'a strwhere P: Part,
§impl<'x, P> FromUriParam<P, &'x IpAddr> for IpAddrwhere
P: Part,
impl<'x, P> FromUriParam<P, &'x IpAddr> for IpAddrwhere P: Part,
§impl<P> FromUriParam<P, SocketAddr> for SocketAddrwhere
P: Part,
impl<P> FromUriParam<P, SocketAddr> for SocketAddrwhere P: Part,
type Target = SocketAddr
fn from_uri_param(param: SocketAddr) -> SocketAddr
§impl<P> FromUriParam<P, f32> for f32where
P: Part,
impl<P> FromUriParam<P, f32> for f32where P: Part,
§impl<'x, P> FromUriParam<P, &'x mut u64> for u64where
P: Part,
impl<'x, P> FromUriParam<P, &'x mut u64> for u64where P: Part,
§impl<'x, P> FromUriParam<P, &'x mut NonZeroU128> for NonZeroU128where
P: Part,
impl<'x, P> FromUriParam<P, &'x mut NonZeroU128> for NonZeroU128where P: Part,
type Target = &'x mut NonZeroU128
fn from_uri_param(param: &'x mut NonZeroU128) -> &'x mut NonZeroU128
§impl<'x, P> FromUriParam<P, &'x mut i16> for i16where
P: Part,
impl<'x, P> FromUriParam<P, &'x mut i16> for i16where P: Part,
§impl<P> FromUriParam<P, NonZeroI8> for NonZeroI8where
P: Part,
impl<P> FromUriParam<P, NonZeroI8> for NonZeroI8where P: Part,
§impl<'x, P> FromUriParam<P, &'x i64> for i64where
P: Part,
impl<'x, P> FromUriParam<P, &'x i64> for i64where P: Part,
§impl<'x, P> FromUriParam<P, &'x NonZeroUsize> for NonZeroUsizewhere
P: Part,
impl<'x, P> FromUriParam<P, &'x NonZeroUsize> for NonZeroUsizewhere P: Part,
type Target = &'x NonZeroUsize
fn from_uri_param(param: &'x NonZeroUsize) -> &'x NonZeroUsize
§impl<'x, P> FromUriParam<P, &'x mut NonZeroI64> for NonZeroI64where
P: Part,
impl<'x, P> FromUriParam<P, &'x mut NonZeroI64> for NonZeroI64where P: Part,
type Target = &'x mut NonZeroI64
fn from_uri_param(param: &'x mut NonZeroI64) -> &'x mut NonZeroI64
§impl<'x, P> FromUriParam<P, &'x NonZeroI8> for NonZeroI8where
P: Part,
impl<'x, P> FromUriParam<P, &'x NonZeroI8> for NonZeroI8where P: Part,
§impl<'x, P> FromUriParam<P, &'x SocketAddrV6> for SocketAddrV6where
P: Part,
impl<'x, P> FromUriParam<P, &'x SocketAddrV6> for SocketAddrV6where P: Part,
type Target = &'x SocketAddrV6
fn from_uri_param(param: &'x SocketAddrV6) -> &'x SocketAddrV6
§impl<'x, P> FromUriParam<P, &'x f32> for f32where
P: Part,
impl<'x, P> FromUriParam<P, &'x f32> for f32where P: Part,
§impl<P> FromUriParam<P, IpAddr> for IpAddrwhere
P: Part,
impl<P> FromUriParam<P, IpAddr> for IpAddrwhere P: Part,
§impl<'x, P> FromUriParam<P, &'x NonZeroI64> for NonZeroI64where
P: Part,
impl<'x, P> FromUriParam<P, &'x NonZeroI64> for NonZeroI64where P: Part,
type Target = &'x NonZeroI64
fn from_uri_param(param: &'x NonZeroI64) -> &'x NonZeroI64
§impl<'x, P> FromUriParam<P, &'x i32> for i32where
P: Part,
impl<'x, P> FromUriParam<P, &'x i32> for i32where P: Part,
§impl<'x, P> FromUriParam<P, &'x mut f64> for f64where
P: Part,
impl<'x, P> FromUriParam<P, &'x mut f64> for f64where P: Part,
§impl<'x, P> FromUriParam<P, &'x mut SocketAddrV6> for SocketAddrV6where
P: Part,
impl<'x, P> FromUriParam<P, &'x mut SocketAddrV6> for SocketAddrV6where P: Part,
type Target = &'x mut SocketAddrV6
fn from_uri_param(param: &'x mut SocketAddrV6) -> &'x mut SocketAddrV6
§impl<'x, P> FromUriParam<P, &'x mut u8> for u8where
P: Part,
impl<'x, P> FromUriParam<P, &'x mut u8> for u8where P: Part,
§impl<'x> FromUriParam<Path, &'x mut PathBuf> for PathBuf
impl<'x> FromUriParam<Path, &'x mut PathBuf> for PathBuf
§impl<'x, P> FromUriParam<P, &'x bool> for boolwhere
P: Part,
impl<'x, P> FromUriParam<P, &'x bool> for boolwhere P: Part,
§impl<P> FromUriParam<P, u8> for u8where
P: Part,
impl<P> FromUriParam<P, u8> for u8where P: Part,
§impl<'x, P> FromUriParam<P, &'x mut NonZeroI8> for NonZeroI8where
P: Part,
impl<'x, P> FromUriParam<P, &'x mut NonZeroI8> for NonZeroI8where P: Part,
§impl<'x, P> FromUriParam<P, &'x i16> for i16where
P: Part,
impl<'x, P> FromUriParam<P, &'x i16> for i16where P: Part,
§impl<P> FromUriParam<P, PrimitiveDateTime> for PrimitiveDateTimewhere
P: Part,
impl<P> FromUriParam<P, PrimitiveDateTime> for PrimitiveDateTimewhere P: Part,
type Target = PrimitiveDateTime
fn from_uri_param(param: PrimitiveDateTime) -> PrimitiveDateTime
§impl<'a, 'b> FromUriParam<Path, &'a &'b str> for PathBuf
impl<'a, 'b> FromUriParam<Path, &'a &'b str> for PathBuf
A no cost conversion allowing an &&str
to be used in place of a PathBuf
.
§impl<'x, P> FromUriParam<P, &'x mut i64> for i64where
P: Part,
impl<'x, P> FromUriParam<P, &'x mut i64> for i64where P: Part,
§impl<'x, P> FromUriParam<P, &'x mut usize> for usizewhere
P: Part,
impl<'x, P> FromUriParam<P, &'x mut usize> for usizewhere P: Part,
§impl<'x, P> FromUriParam<P, &'x f64> for f64where
P: Part,
impl<'x, P> FromUriParam<P, &'x f64> for f64where P: Part,
§impl<'x, P> FromUriParam<P, &'x mut NonZeroIsize> for NonZeroIsizewhere
P: Part,
impl<'x, P> FromUriParam<P, &'x mut NonZeroIsize> for NonZeroIsizewhere P: Part,
type Target = &'x mut NonZeroIsize
fn from_uri_param(param: &'x mut NonZeroIsize) -> &'x mut NonZeroIsize
§impl<P> FromUriParam<P, i128> for i128where
P: Part,
impl<P> FromUriParam<P, i128> for i128where P: Part,
§impl<'x, P> FromUriParam<P, &'x mut isize> for isizewhere
P: Part,
impl<'x, P> FromUriParam<P, &'x mut isize> for isizewhere P: Part,
§impl<'x, P> FromUriParam<P, &'x Date> for Datewhere
P: Part,
impl<'x, P> FromUriParam<P, &'x Date> for Datewhere P: Part,
§impl<'x, P> FromUriParam<P, &'x NonZeroI128> for NonZeroI128where
P: Part,
impl<'x, P> FromUriParam<P, &'x NonZeroI128> for NonZeroI128where P: Part,
type Target = &'x NonZeroI128
fn from_uri_param(param: &'x NonZeroI128) -> &'x NonZeroI128
§impl<P> FromUriParam<P, SocketAddrV4> for SocketAddrV4where
P: Part,
impl<P> FromUriParam<P, SocketAddrV4> for SocketAddrV4where P: Part,
type Target = SocketAddrV4
fn from_uri_param(param: SocketAddrV4) -> SocketAddrV4
§impl<P> FromUriParam<P, NonZeroI128> for NonZeroI128where
P: Part,
impl<P> FromUriParam<P, NonZeroI128> for NonZeroI128where P: Part,
type Target = NonZeroI128
fn from_uri_param(param: NonZeroI128) -> NonZeroI128
§impl<'x, P> FromUriParam<P, &'x mut i8> for i8where
P: Part,
impl<'x, P> FromUriParam<P, &'x mut i8> for i8where P: Part,
§impl<'x, P> FromUriParam<P, &'x mut Time> for Timewhere
P: Part,
impl<'x, P> FromUriParam<P, &'x mut Time> for Timewhere P: Part,
§impl<'x, 'a, P> FromUriParam<P, &'x mut &'a str> for &'a strwhere
P: Part,
impl<'x, 'a, P> FromUriParam<P, &'x mut &'a str> for &'a strwhere P: Part,
§impl<'x, P> FromUriParam<P, &'x NonZeroI16> for NonZeroI16where
P: Part,
impl<'x, P> FromUriParam<P, &'x NonZeroI16> for NonZeroI16where P: Part,
type Target = &'x NonZeroI16
fn from_uri_param(param: &'x NonZeroI16) -> &'x NonZeroI16
§impl<'x, P> FromUriParam<P, &'x mut u32> for u32where
P: Part,
impl<'x, P> FromUriParam<P, &'x mut u32> for u32where P: Part,
§impl<'x, P> FromUriParam<P, &'x u16> for u16where
P: Part,
impl<'x, P> FromUriParam<P, &'x u16> for u16where P: Part,
§impl<P> FromUriParam<P, NonZeroUsize> for NonZeroUsizewhere
P: Part,
impl<P> FromUriParam<P, NonZeroUsize> for NonZeroUsizewhere P: Part,
type Target = NonZeroUsize
fn from_uri_param(param: NonZeroUsize) -> NonZeroUsize
§impl<'x, P> FromUriParam<P, &'x NonZeroIsize> for NonZeroIsizewhere
P: Part,
impl<'x, P> FromUriParam<P, &'x NonZeroIsize> for NonZeroIsizewhere P: Part,
type Target = &'x NonZeroIsize
fn from_uri_param(param: &'x NonZeroIsize) -> &'x NonZeroIsize
§impl<'x, P> FromUriParam<P, &'x mut PrimitiveDateTime> for PrimitiveDateTimewhere
P: Part,
impl<'x, P> FromUriParam<P, &'x mut PrimitiveDateTime> for PrimitiveDateTimewhere P: Part,
type Target = &'x mut PrimitiveDateTime
fn from_uri_param(param: &'x mut PrimitiveDateTime) -> &'x mut PrimitiveDateTime
§impl<'x, P> FromUriParam<P, &'x mut u128> for u128where
P: Part,
impl<'x, P> FromUriParam<P, &'x mut u128> for u128where P: Part,
§impl<P> FromUriParam<P, bool> for boolwhere
P: Part,
impl<P> FromUriParam<P, bool> for boolwhere P: Part,
§impl<'x, P> FromUriParam<P, &'x NonZeroI32> for NonZeroI32where
P: Part,
impl<'x, P> FromUriParam<P, &'x NonZeroI32> for NonZeroI32where P: Part,
type Target = &'x NonZeroI32
fn from_uri_param(param: &'x NonZeroI32) -> &'x NonZeroI32
§impl<'x, P> FromUriParam<P, &'x mut SocketAddrV4> for SocketAddrV4where
P: Part,
impl<'x, P> FromUriParam<P, &'x mut SocketAddrV4> for SocketAddrV4where P: Part,
type Target = &'x mut SocketAddrV4
fn from_uri_param(param: &'x mut SocketAddrV4) -> &'x mut SocketAddrV4
§impl<'x, P> FromUriParam<P, &'x mut IpAddr> for IpAddrwhere
P: Part,
impl<'x, P> FromUriParam<P, &'x mut IpAddr> for IpAddrwhere P: Part,
§impl<'x, P> FromUriParam<P, &'x mut NonZeroU16> for NonZeroU16where
P: Part,
impl<'x, P> FromUriParam<P, &'x mut NonZeroU16> for NonZeroU16where P: Part,
type Target = &'x mut NonZeroU16
fn from_uri_param(param: &'x mut NonZeroU16) -> &'x mut NonZeroU16
§impl<P> FromUriParam<P, i16> for i16where
P: Part,
impl<P> FromUriParam<P, i16> for i16where P: Part,
§impl<'x, 'a, P> FromUriParam<P, &'x &'a str> for &'a strwhere
P: Part,
impl<'x, 'a, P> FromUriParam<P, &'x &'a str> for &'a strwhere P: Part,
Implementors§
§impl<'a, K, V, A, B> FromUriParam<Query, &'a BTreeMap<A, B, Global>> for BTreeMap<K, V, Global>where
A: UriDisplay<Query>,
K: FromUriParam<Query, A>,
B: UriDisplay<Query>,
V: FromUriParam<Query, B>,
impl<'a, K, V, A, B> FromUriParam<Query, &'a BTreeMap<A, B, Global>> for BTreeMap<K, V, Global>where A: UriDisplay<Query>, K: FromUriParam<Query, A>, B: UriDisplay<Query>, V: FromUriParam<Query, B>,
§impl<'a, K, V, A, B> FromUriParam<Query, &'a BTreeMap<A, B, Global>> for HashMap<K, V, RandomState>where
A: UriDisplay<Query>,
K: FromUriParam<Query, A>,
B: UriDisplay<Query>,
V: FromUriParam<Query, B>,
impl<'a, K, V, A, B> FromUriParam<Query, &'a BTreeMap<A, B, Global>> for HashMap<K, V, RandomState>where A: UriDisplay<Query>, K: FromUriParam<Query, A>, B: UriDisplay<Query>, V: FromUriParam<Query, B>,
§impl<'a, K, V, A, B> FromUriParam<Query, &'a HashMap<A, B, RandomState>> for BTreeMap<K, V, Global>where
A: UriDisplay<Query>,
K: FromUriParam<Query, A>,
B: UriDisplay<Query>,
V: FromUriParam<Query, B>,
impl<'a, K, V, A, B> FromUriParam<Query, &'a HashMap<A, B, RandomState>> for BTreeMap<K, V, Global>where A: UriDisplay<Query>, K: FromUriParam<Query, A>, B: UriDisplay<Query>, V: FromUriParam<Query, B>,
type Target = &'a HashMap<A, B, RandomState>
§impl<'a, K, V, A, B> FromUriParam<Query, &'a HashMap<A, B, RandomState>> for HashMap<K, V, RandomState>where
A: UriDisplay<Query>,
K: FromUriParam<Query, A>,
B: UriDisplay<Query>,
V: FromUriParam<Query, B>,
impl<'a, K, V, A, B> FromUriParam<Query, &'a HashMap<A, B, RandomState>> for HashMap<K, V, RandomState>where A: UriDisplay<Query>, K: FromUriParam<Query, A>, B: UriDisplay<Query>, V: FromUriParam<Query, B>,
type Target = &'a HashMap<A, B, RandomState>
§impl<'a, K, V, A, B> FromUriParam<Query, &'a mut BTreeMap<A, B, Global>> for BTreeMap<K, V, Global>where
A: UriDisplay<Query>,
K: FromUriParam<Query, A>,
B: UriDisplay<Query>,
V: FromUriParam<Query, B>,
impl<'a, K, V, A, B> FromUriParam<Query, &'a mut BTreeMap<A, B, Global>> for BTreeMap<K, V, Global>where A: UriDisplay<Query>, K: FromUriParam<Query, A>, B: UriDisplay<Query>, V: FromUriParam<Query, B>,
§impl<'a, K, V, A, B> FromUriParam<Query, &'a mut BTreeMap<A, B, Global>> for HashMap<K, V, RandomState>where
A: UriDisplay<Query>,
K: FromUriParam<Query, A>,
B: UriDisplay<Query>,
V: FromUriParam<Query, B>,
impl<'a, K, V, A, B> FromUriParam<Query, &'a mut BTreeMap<A, B, Global>> for HashMap<K, V, RandomState>where A: UriDisplay<Query>, K: FromUriParam<Query, A>, B: UriDisplay<Query>, V: FromUriParam<Query, B>,
§impl<'a, K, V, A, B> FromUriParam<Query, &'a mut HashMap<A, B, RandomState>> for BTreeMap<K, V, Global>where
A: UriDisplay<Query>,
K: FromUriParam<Query, A>,
B: UriDisplay<Query>,
V: FromUriParam<Query, B>,
impl<'a, K, V, A, B> FromUriParam<Query, &'a mut HashMap<A, B, RandomState>> for BTreeMap<K, V, Global>where A: UriDisplay<Query>, K: FromUriParam<Query, A>, B: UriDisplay<Query>, V: FromUriParam<Query, B>,
type Target = &'a HashMap<A, B, RandomState>
§impl<'a, K, V, A, B> FromUriParam<Query, &'a mut HashMap<A, B, RandomState>> for HashMap<K, V, RandomState>where
A: UriDisplay<Query>,
K: FromUriParam<Query, A>,
B: UriDisplay<Query>,
V: FromUriParam<Query, B>,
impl<'a, K, V, A, B> FromUriParam<Query, &'a mut HashMap<A, B, RandomState>> for HashMap<K, V, RandomState>where A: UriDisplay<Query>, K: FromUriParam<Query, A>, B: UriDisplay<Query>, V: FromUriParam<Query, B>,
type Target = &'a HashMap<A, B, RandomState>
source§impl<'a, T: Serialize> FromUriParam<Query, &'a T> for Json<T>
Available on crate feature json
only.
impl<'a, T: Serialize> FromUriParam<Query, &'a T> for Json<T>
json
only.source§impl<'a, T: Serialize> FromUriParam<Query, &'a mut T> for Json<T>
Available on crate feature json
only.
impl<'a, T: Serialize> FromUriParam<Query, &'a mut T> for Json<T>
json
only.source§impl<'f, A, T: FromUriParam<Query, A> + FromForm<'f>> FromUriParam<Query, A> for Lenient<T>
impl<'f, A, T: FromUriParam<Query, A> + FromForm<'f>> FromUriParam<Query, A> for Lenient<T>
type Target = <T as FromUriParam<Query, A>>::Target
source§impl<'f, A, T: FromUriParam<Query, A> + FromForm<'f>> FromUriParam<Query, A> for Strict<T>
impl<'f, A, T: FromUriParam<Query, A> + FromForm<'f>> FromUriParam<Query, A> for Strict<T>
type Target = <T as FromUriParam<Query, A>>::Target
§impl<'x, 'a, P> FromUriParam<P, &'x mut &'a str> for Stringwhere
P: Part,
impl<'x, 'a, P> FromUriParam<P, &'x mut &'a str> for Stringwhere P: Part,
source§impl<'x, T: Serialize> FromUriParam<Query, &'x Json<T>> for Json<T>
Available on crate feature json
only.
impl<'x, T: Serialize> FromUriParam<Query, &'x Json<T>> for Json<T>
json
only.source§impl<'x, T: Serialize> FromUriParam<Query, &'x mut Json<T>> for Json<T>
Available on crate feature json
only.
impl<'x, T: Serialize> FromUriParam<Query, &'x mut Json<T>> for Json<T>
json
only.§impl<A, E, T> FromUriParam<Path, A> for Result<T, E>where
T: FromUriParam<Path, A>,
impl<A, E, T> FromUriParam<Path, A> for Result<T, E>where T: FromUriParam<Path, A>,
A no cost conversion allowing T
to be used in place of an Result<T, E>
.
type Target = <T as FromUriParam<Path, A>>::Target
§impl<A, E, T> FromUriParam<Query, Option<A>> for Result<T, E>where
T: FromUriParam<Query, A>,
impl<A, E, T> FromUriParam<Query, Option<A>> for Result<T, E>where T: FromUriParam<Query, A>,
§impl<A, E, T> FromUriParam<Query, Result<A, E>> for Option<T>where
T: FromUriParam<Query, A>,
impl<A, E, T> FromUriParam<Query, Result<A, E>> for Option<T>where T: FromUriParam<Query, A>,
§impl<A, E, T> FromUriParam<Query, Result<A, E>> for Result<T, E>where
T: FromUriParam<Query, A>,
impl<A, E, T> FromUriParam<Query, Result<A, E>> for Result<T, E>where T: FromUriParam<Query, A>,
§impl<A, T> FromUriParam<Path, A> for Option<T>where
T: FromUriParam<Path, A>,
impl<A, T> FromUriParam<Path, A> for Option<T>where T: FromUriParam<Path, A>,
A no cost conversion allowing any T
to be used in place of an Option<T>
.