pub trait FromUriParam<P: Part, T> {
    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 to String
  • String to &str
  • T to Form<T>

The following conversions are implemented only in Path:

  • &str to &Path
  • &str to PathBuf
  • PathBuf to &Path
  • T to Option<T>
  • T to Result<T, E>

The following conversions are implemented only in Query:

  • Option<T> to Result<T, E> (for any E)
  • Result<T, E> to Option<T> (for any E)

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§

source

type Target: UriDisplay<P>

The resulting type of this conversion.

Required Methods§

source

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§

source§

impl<'a, P: Part> FromUriParam<P, String> for &'a str

source§

impl<A, E, T: FromUriParam<Query, A>> FromUriParam<Query, Result<A, E>> for Result<T, E>

§

type Target = Result<<T as FromUriParam<Query, A>>::Target, E>

source§

fn from_uri_param(param: Result<A, E>) -> Self::Target

source§

impl<P: Part> FromUriParam<P, u32> for u32

source§

impl<P: Part> FromUriParam<P, Time> for Time

source§

impl<'x, 'a> FromUriParam<Path, &'x &'a Path> for &'a Path

§

type Target = &'x &'a Path

source§

fn from_uri_param(param: &'x &'a Path) -> &'x &'a Path

source§

impl<'x, P: Part> FromUriParam<P, &'x mut u16> for u16

§

type Target = &'x mut u16

source§

fn from_uri_param(param: &'x mut u16) -> &'x mut u16

source§

impl<P: Part> FromUriParam<P, u8> for u8

§

type Target = u8

source§

fn from_uri_param(param: u8) -> u8

source§

impl<'x, P: Part> FromUriParam<P, &'x mut u128> for u128

§

type Target = &'x mut u128

source§

fn from_uri_param(param: &'x mut u128) -> &'x mut u128

source§

impl<'x, P: Part> FromUriParam<P, &'x i32> for i32

§

type Target = &'x i32

source§

fn from_uri_param(param: &'x i32) -> &'x i32

source§

impl<'x, P: Part> FromUriParam<P, &'x mut u64> for u64

§

type Target = &'x mut u64

source§

fn from_uri_param(param: &'x mut u64) -> &'x mut u64

source§

impl<P: Part> FromUriParam<P, NonZeroI128> for NonZeroI128

source§

impl<'x, P: Part> FromUriParam<P, &'x SocketAddr> for SocketAddr

source§

impl<'x, P: Part> FromUriParam<P, &'x mut NonZeroI32> for NonZeroI32

§

type Target = &'x mut NonZeroI32

source§

fn from_uri_param(param: &'x mut NonZeroI32) -> &'x mut NonZeroI32

source§

impl<'x, P: Part> FromUriParam<P, &'x NonZeroU32> for NonZeroU32

source§

impl<P: Part> FromUriParam<P, NonZeroU8> for NonZeroU8

source§

impl<'a, P: Part> FromUriParam<P, Cow<'a, str>> for Cow<'a, str>

§

type Target = Cow<'a, str>

source§

fn from_uri_param(param: Cow<'a, str>) -> Cow<'a, str>

source§

impl<'x, P: Part> FromUriParam<P, &'x mut isize> for isize

§

type Target = &'x mut isize

source§

fn from_uri_param(param: &'x mut isize) -> &'x mut isize

source§

impl<'x, P: Part> FromUriParam<P, &'x PrimitiveDateTime> for PrimitiveDateTime

source§

impl<'x, P: Part> FromUriParam<P, &'x NonZeroI32> for NonZeroI32

source§

impl<'x, P: Part> FromUriParam<P, &'x mut NonZeroI64> for NonZeroI64

§

type Target = &'x mut NonZeroI64

source§

fn from_uri_param(param: &'x mut NonZeroI64) -> &'x mut NonZeroI64

source§

impl<'x, P: Part> FromUriParam<P, &'x mut Ipv6Addr> for Ipv6Addr

§

type Target = &'x mut Ipv6Addr

source§

fn from_uri_param(param: &'x mut Ipv6Addr) -> &'x mut Ipv6Addr

source§

impl<'x, 'a> FromUriParam<Path, &'x mut &'a Path> for &'a Path

§

type Target = &'x mut &'a Path

source§

fn from_uri_param(param: &'x mut &'a Path) -> &'x mut &'a Path

source§

impl<'x, P: Part> FromUriParam<P, &'x mut u8> for u8

§

type Target = &'x mut u8

source§

fn from_uri_param(param: &'x mut u8) -> &'x mut u8

source§

impl<'x, P: Part> FromUriParam<P, &'x mut NonZeroIsize> for NonZeroIsize

§

type Target = &'x mut NonZeroIsize

source§

fn from_uri_param(param: &'x mut NonZeroIsize) -> &'x mut NonZeroIsize

source§

impl<P: Part> FromUriParam<P, usize> for usize

source§

impl<P: Part> FromUriParam<P, u16> for u16

source§

impl<P: Part> FromUriParam<P, i64> for i64

source§

impl<'x, P: Part> FromUriParam<P, &'x u32> for u32

§

type Target = &'x u32

source§

fn from_uri_param(param: &'x u32) -> &'x u32

source§

impl<P: Part> FromUriParam<P, String> for String

source§

impl<'x, P: Part> FromUriParam<P, &'x mut f32> for f32

§

type Target = &'x mut f32

source§

fn from_uri_param(param: &'x mut f32) -> &'x mut f32

source§

impl<'a, P: Part> FromUriParam<P, &'a str> for String

§

type Target = &'a str

source§

fn from_uri_param(param: &'a str) -> &'a str

source§

impl<'x, P: Part> FromUriParam<P, &'x mut i32> for i32

§

type Target = &'x mut i32

source§

fn from_uri_param(param: &'x mut i32) -> &'x mut i32

source§

impl<P: Part> FromUriParam<P, NonZeroU16> for NonZeroU16

source§

impl<'x, P: Part> FromUriParam<P, &'x mut usize> for usize

§

type Target = &'x mut usize

source§

fn from_uri_param(param: &'x mut usize) -> &'x mut usize

source§

impl<'x, P: Part> FromUriParam<P, &'x SocketAddrV6> for SocketAddrV6

source§

impl<'x, P: Part> FromUriParam<P, &'x IpAddr> for IpAddr

§

type Target = &'x IpAddr

source§

fn from_uri_param(param: &'x IpAddr) -> &'x IpAddr

source§

impl<'x, P: Part> FromUriParam<P, &'x u16> for u16

§

type Target = &'x u16

source§

fn from_uri_param(param: &'x u16) -> &'x u16

source§

impl<'x, P: Part> FromUriParam<P, &'x mut SocketAddr> for SocketAddr

§

type Target = &'x mut SocketAddr

source§

fn from_uri_param(param: &'x mut SocketAddr) -> &'x mut SocketAddr

source§

impl<'a, K, V, A, B> FromUriParam<Query, &'a BTreeMap<A, B, Global>> for HashMap<K, V>where A: UriDisplay<Query>, K: FromUriParam<Query, A>, B: UriDisplay<Query>, V: FromUriParam<Query, B>,

§

type Target = &'a BTreeMap<A, B, Global>

source§

fn from_uri_param(param: &'a BTreeMap<A, B>) -> Self::Target

source§

impl<'x, P: Part> FromUriParam<P, &'x mut i128> for i128

§

type Target = &'x mut i128

source§

fn from_uri_param(param: &'x mut i128) -> &'x mut i128

source§

impl<P: Part> FromUriParam<P, i128> for i128

source§

impl<'x, 'a> FromUriParam<Path, &'x mut &'a Path> for PathBuf

§

type Target = &'x mut &'a Path

source§

fn from_uri_param(param: &'x mut &'a Path) -> &'x mut &'a Path

source§

impl<'x> FromUriParam<Path, &'x PathBuf> for PathBuf

§

type Target = &'x PathBuf

source§

fn from_uri_param(param: &'x PathBuf) -> &'x PathBuf

source§

impl<'x, P: Part> FromUriParam<P, &'x mut PrimitiveDateTime> for PrimitiveDateTime

source§

impl<'a> FromUriParam<Path, &'a str> for PathBuf

A no cost conversion allowing an &str to be used in place of a PathBuf.

§

type Target = &'a Path

source§

fn from_uri_param(param: &'a str) -> &'a Path

source§

impl<P: Part> FromUriParam<P, SocketAddrV4> for SocketAddrV4

source§

impl<'x, P: Part> FromUriParam<P, &'x Date> for Date

§

type Target = &'x Date

source§

fn from_uri_param(param: &'x Date) -> &'x Date

source§

impl<P: Part> FromUriParam<P, SocketAddr> for SocketAddr

source§

impl<'x, 'a, P: Part> FromUriParam<P, &'x String> for &'a str

§

type Target = &'x String

source§

fn from_uri_param(param: &'x String) -> &'x String

source§

impl<'x, 'a, P: Part> FromUriParam<P, &'x mut &'a str> for &'a str

§

type Target = &'x mut &'a str

source§

fn from_uri_param(param: &'x mut &'a str) -> &'x mut &'a str

source§

impl<'a, P: Part> FromUriParam<P, &'a str> for &'a str

§

type Target = &'a str

source§

fn from_uri_param(param: &'a str) -> &'a str

source§

impl<'x, P: Part> FromUriParam<P, &'x mut i16> for i16

§

type Target = &'x mut i16

source§

fn from_uri_param(param: &'x mut i16) -> &'x mut i16

source§

impl<'x, P: Part> FromUriParam<P, &'x i16> for i16

§

type Target = &'x i16

source§

fn from_uri_param(param: &'x i16) -> &'x i16

source§

impl<P: Part> FromUriParam<P, i8> for i8

§

type Target = i8

source§

fn from_uri_param(param: i8) -> i8

source§

impl<'x, P: Part> FromUriParam<P, &'x isize> for isize

§

type Target = &'x isize

source§

fn from_uri_param(param: &'x isize) -> &'x isize

source§

impl<'x, P: Part> FromUriParam<P, &'x usize> for usize

§

type Target = &'x usize

source§

fn from_uri_param(param: &'x usize) -> &'x usize

source§

impl<'a, K, V, A, B> FromUriParam<Query, &'a mut BTreeMap<A, B, Global>> for HashMap<K, V>where A: UriDisplay<Query>, K: FromUriParam<Query, A>, B: UriDisplay<Query>, V: FromUriParam<Query, B>,

§

type Target = &'a BTreeMap<A, B, Global>

source§

fn from_uri_param(param: &'a mut BTreeMap<A, B>) -> Self::Target

source§

impl<P: Part> FromUriParam<P, bool> for bool

source§

impl<P: Part> FromUriParam<P, NonZeroIsize> for NonZeroIsize

source§

impl<'x, P: Part> FromUriParam<P, &'x f64> for f64

§

type Target = &'x f64

source§

fn from_uri_param(param: &'x f64) -> &'x f64

source§

impl<'x, P: Part> FromUriParam<P, &'x mut NonZeroU32> for NonZeroU32

§

type Target = &'x mut NonZeroU32

source§

fn from_uri_param(param: &'x mut NonZeroU32) -> &'x mut NonZeroU32

source§

impl<P: Part> FromUriParam<P, i32> for i32

source§

impl<'x, P: Part> FromUriParam<P, &'x mut SocketAddrV6> for SocketAddrV6

§

type Target = &'x mut SocketAddrV6

source§

fn from_uri_param(param: &'x mut SocketAddrV6) -> &'x mut SocketAddrV6

source§

impl<'x, P: Part> FromUriParam<P, &'x Ipv4Addr> for Ipv4Addr

§

type Target = &'x Ipv4Addr

source§

fn from_uri_param(param: &'x Ipv4Addr) -> &'x Ipv4Addr

source§

impl<'x, P: Part> FromUriParam<P, &'x mut NonZeroI16> for NonZeroI16

§

type Target = &'x mut NonZeroI16

source§

fn from_uri_param(param: &'x mut NonZeroI16) -> &'x mut NonZeroI16

source§

impl<'a> FromUriParam<Path, &'a Path> for PathBuf

§

type Target = &'a Path

source§

fn from_uri_param(param: &'a Path) -> &'a Path

source§

impl<'x, 'a, P: Part> FromUriParam<P, &'x &'a str> for &'a str

§

type Target = &'x &'a str

source§

fn from_uri_param(param: &'x &'a str) -> &'x &'a str

source§

impl<K, V, A, B> FromUriParam<Query, HashMap<A, B, RandomState>> for BTreeMap<K, V>where A: UriDisplay<Query>, K: FromUriParam<Query, A>, B: UriDisplay<Query>, V: FromUriParam<Query, B>,

§

type Target = HashMap<A, B, RandomState>

source§

fn from_uri_param(param: HashMap<A, B>) -> Self::Target

source§

impl<P: Part> FromUriParam<P, Ipv4Addr> for Ipv4Addr

source§

impl<'x, P: Part> FromUriParam<P, &'x NonZeroI16> for NonZeroI16

source§

impl<P: Part> FromUriParam<P, IpAddr> for IpAddr

source§

impl<P: Part> FromUriParam<P, f64> for f64

source§

impl<P: Part> FromUriParam<P, u128> for u128

source§

impl<'x, P: Part> FromUriParam<P, &'x NonZeroI8> for NonZeroI8

source§

impl<'x, 'a, P: Part> FromUriParam<P, &'x Cow<'a, str>> for Cow<'a, str>

§

type Target = &'x Cow<'a, str>

source§

fn from_uri_param(param: &'x Cow<'a, str>) -> &'x Cow<'a, str>

source§

impl<P: Part> FromUriParam<P, PrimitiveDateTime> for PrimitiveDateTime

source§

impl<'a, K, V, A, B> FromUriParam<Query, &'a mut BTreeMap<A, B, Global>> for BTreeMap<K, V>where A: UriDisplay<Query>, K: FromUriParam<Query, A>, B: UriDisplay<Query>, V: FromUriParam<Query, B>,

§

type Target = &'a BTreeMap<A, B, Global>

source§

fn from_uri_param(param: &'a mut BTreeMap<A, B>) -> Self::Target

source§

impl<'x, P: Part> FromUriParam<P, &'x mut f64> for f64

§

type Target = &'x mut f64

source§

fn from_uri_param(param: &'x mut f64) -> &'x mut f64

source§

impl<A, T: FromUriParam<Path, A>> FromUriParam<Path, A> for Option<T>

A no cost conversion allowing any T to be used in place of an Option<T>.

§

type Target = <T as FromUriParam<Path, A>>::Target

source§

fn from_uri_param(param: A) -> Self::Target

source§

impl<P: Part> FromUriParam<P, NonZeroUsize> for NonZeroUsize

source§

impl<'a> FromUriParam<Path, PathBuf> for &'a Path

source§

impl<'x, P: Part> FromUriParam<P, &'x f32> for f32

§

type Target = &'x f32

source§

fn from_uri_param(param: &'x f32) -> &'x f32

source§

impl<P: Part> FromUriParam<P, isize> for isize

source§

impl<'x, P: Part> FromUriParam<P, &'x NonZeroIsize> for NonZeroIsize

source§

impl<'a, K, V, A, B> FromUriParam<Query, &'a mut HashMap<A, B, RandomState>> for BTreeMap<K, V>where A: UriDisplay<Query>, K: FromUriParam<Query, A>, B: UriDisplay<Query>, V: FromUriParam<Query, B>,

§

type Target = &'a HashMap<A, B, RandomState>

source§

fn from_uri_param(param: &'a mut HashMap<A, B>) -> Self::Target

source§

impl<'x, 'a, P: Part> FromUriParam<P, &'x &'a str> for String

§

type Target = &'x &'a str

source§

fn from_uri_param(param: &'x &'a str) -> &'x &'a str

source§

impl<K, V, A, B> FromUriParam<Query, BTreeMap<A, B, Global>> for HashMap<K, V>where A: UriDisplay<Query>, K: FromUriParam<Query, A>, B: UriDisplay<Query>, V: FromUriParam<Query, B>,

§

type Target = BTreeMap<A, B, Global>

source§

fn from_uri_param(param: BTreeMap<A, B>) -> Self::Target

source§

impl<'x, P: Part> FromUriParam<P, &'x NonZeroU16> for NonZeroU16

source§

impl<'x, 'a, P: Part> FromUriParam<P, &'x mut &'a str> for String

§

type Target = &'x mut &'a str

source§

fn from_uri_param(param: &'x mut &'a str) -> &'x mut &'a str

source§

impl<'x, P: Part> FromUriParam<P, &'x mut i64> for i64

§

type Target = &'x mut i64

source§

fn from_uri_param(param: &'x mut i64) -> &'x mut i64

source§

impl<'x, P: Part> FromUriParam<P, &'x u128> for u128

§

type Target = &'x u128

source§

fn from_uri_param(param: &'x u128) -> &'x u128

source§

impl<P: Part> FromUriParam<P, NonZeroI64> for NonZeroI64

source§

impl<'x, P: Part> FromUriParam<P, &'x mut Time> for Time

§

type Target = &'x mut Time

source§

fn from_uri_param(param: &'x mut Time) -> &'x mut Time

source§

impl<'x, P: Part> FromUriParam<P, &'x u8> for u8

§

type Target = &'x u8

source§

fn from_uri_param(param: &'x u8) -> &'x u8

source§

impl<'x, P: Part> FromUriParam<P, &'x mut NonZeroU64> for NonZeroU64

§

type Target = &'x mut NonZeroU64

source§

fn from_uri_param(param: &'x mut NonZeroU64) -> &'x mut NonZeroU64

source§

impl<'a, K, V, A, B> FromUriParam<Query, &'a HashMap<A, B, RandomState>> for HashMap<K, V>where A: UriDisplay<Query>, K: FromUriParam<Query, A>, B: UriDisplay<Query>, V: FromUriParam<Query, B>,

§

type Target = &'a HashMap<A, B, RandomState>

source§

fn from_uri_param(param: &'a HashMap<A, B>) -> Self::Target

source§

impl<P: Part> FromUriParam<P, f32> for f32

source§

impl<'a, K, V, A, B> FromUriParam<Query, &'a BTreeMap<A, B, Global>> for BTreeMap<K, V>where A: UriDisplay<Query>, K: FromUriParam<Query, A>, B: UriDisplay<Query>, V: FromUriParam<Query, B>,

§

type Target = &'a BTreeMap<A, B, Global>

source§

fn from_uri_param(param: &'a BTreeMap<A, B>) -> Self::Target

source§

impl<'x, P: Part> FromUriParam<P, &'x NonZeroI128> for NonZeroI128

source§

impl<'a, K, V, A, B> FromUriParam<Query, &'a HashMap<A, B, RandomState>> for BTreeMap<K, V>where A: UriDisplay<Query>, K: FromUriParam<Query, A>, B: UriDisplay<Query>, V: FromUriParam<Query, B>,

§

type Target = &'a HashMap<A, B, RandomState>

source§

fn from_uri_param(param: &'a HashMap<A, B>) -> Self::Target

source§

impl<P: Part> FromUriParam<P, i16> for i16

source§

impl<'x, P: Part> FromUriParam<P, &'x mut SocketAddrV4> for SocketAddrV4

§

type Target = &'x mut SocketAddrV4

source§

fn from_uri_param(param: &'x mut SocketAddrV4) -> &'x mut SocketAddrV4

source§

impl<P: Part> FromUriParam<P, NonZeroU128> for NonZeroU128

source§

impl<P: Part> FromUriParam<P, SocketAddrV6> for SocketAddrV6

source§

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.

§

type Target = &'b Path

source§

fn from_uri_param(param: &'a &'b str) -> &'b Path

source§

impl<'x, P: Part> FromUriParam<P, &'x String> for String

§

type Target = &'x String

source§

fn from_uri_param(param: &'x String) -> &'x String

source§

impl<P: Part> FromUriParam<P, NonZeroU64> for NonZeroU64

source§

impl<P: Part> FromUriParam<P, Date> for Date

source§

impl<A, E, T: FromUriParam<Path, A>> FromUriParam<Path, A> for Result<T, E>

A no cost conversion allowing T to be used in place of an Result<T, E>.

§

type Target = <T as FromUriParam<Path, A>>::Target

source§

fn from_uri_param(param: A) -> Self::Target

source§

impl<'x, P: Part> FromUriParam<P, &'x mut Date> for Date

§

type Target = &'x mut Date

source§

fn from_uri_param(param: &'x mut Date) -> &'x mut Date

source§

impl<'x, P: Part> FromUriParam<P, &'x mut IpAddr> for IpAddr

§

type Target = &'x mut IpAddr

source§

fn from_uri_param(param: &'x mut IpAddr) -> &'x mut IpAddr

source§

impl<'x, P: Part> FromUriParam<P, &'x mut Ipv4Addr> for Ipv4Addr

§

type Target = &'x mut Ipv4Addr

source§

fn from_uri_param(param: &'x mut Ipv4Addr) -> &'x mut Ipv4Addr

source§

impl<'x, P: Part> FromUriParam<P, &'x i128> for i128

§

type Target = &'x i128

source§

fn from_uri_param(param: &'x i128) -> &'x i128

source§

impl<A, E, T: FromUriParam<Query, A>> FromUriParam<Query, Option<A>> for Result<T, E>

§

type Target = Option<<T as FromUriParam<Query, A>>::Target>

source§

fn from_uri_param(param: Option<A>) -> Self::Target

source§

impl<'x, P: Part> FromUriParam<P, &'x i8> for i8

§

type Target = &'x i8

source§

fn from_uri_param(param: &'x i8) -> &'x i8

source§

impl<'x, P: Part> FromUriParam<P, &'x mut NonZeroU16> for NonZeroU16

§

type Target = &'x mut NonZeroU16

source§

fn from_uri_param(param: &'x mut NonZeroU16) -> &'x mut NonZeroU16

source§

impl<'x, 'a, P: Part> FromUriParam<P, &'x mut Cow<'a, str>> for Cow<'a, str>

§

type Target = &'x mut Cow<'a, str>

source§

fn from_uri_param(param: &'x mut Cow<'a, str>) -> &'x mut Cow<'a, str>

source§

impl<'x, P: Part> FromUriParam<P, &'x mut NonZeroUsize> for NonZeroUsize

§

type Target = &'x mut NonZeroUsize

source§

fn from_uri_param(param: &'x mut NonZeroUsize) -> &'x mut NonZeroUsize

source§

impl<'a> FromUriParam<Path, &'a Path> for &'a Path

§

type Target = &'a Path

source§

fn from_uri_param(param: &'a Path) -> &'a Path

source§

impl<'x, P: Part> FromUriParam<P, &'x mut u32> for u32

§

type Target = &'x mut u32

source§

fn from_uri_param(param: &'x mut u32) -> &'x mut u32

source§

impl<'a, K, V, A, B> FromUriParam<Query, &'a mut HashMap<A, B, RandomState>> for HashMap<K, V>where A: UriDisplay<Query>, K: FromUriParam<Query, A>, B: UriDisplay<Query>, V: FromUriParam<Query, B>,

§

type Target = &'a HashMap<A, B, RandomState>

source§

fn from_uri_param(param: &'a mut HashMap<A, B>) -> Self::Target

source§

impl<K, V, A, B> FromUriParam<Query, HashMap<A, B, RandomState>> for HashMap<K, V>where A: UriDisplay<Query>, K: FromUriParam<Query, A>, B: UriDisplay<Query>, V: FromUriParam<Query, B>,

§

type Target = HashMap<A, B, RandomState>

source§

fn from_uri_param(param: HashMap<A, B>) -> Self::Target

source§

impl<A, E, T: FromUriParam<Query, A>> FromUriParam<Query, Result<A, E>> for Option<T>

§

type Target = Result<<T as FromUriParam<Query, A>>::Target, E>

source§

fn from_uri_param(param: Result<A, E>) -> Self::Target

source§

impl<'x, 'a> FromUriParam<Path, &'x PathBuf> for &'a Path

§

type Target = &'x PathBuf

source§

fn from_uri_param(param: &'x PathBuf) -> &'x PathBuf

source§

impl<'x, P: Part> FromUriParam<P, &'x mut NonZeroU8> for NonZeroU8

§

type Target = &'x mut NonZeroU8

source§

fn from_uri_param(param: &'x mut NonZeroU8) -> &'x mut NonZeroU8

source§

impl<'x, P: Part> FromUriParam<P, &'x mut String> for String

§

type Target = &'x mut String

source§

fn from_uri_param(param: &'x mut String) -> &'x mut String

source§

impl FromUriParam<Path, PathBuf> for PathBuf

source§

impl<'x, P: Part> FromUriParam<P, &'x Ipv6Addr> for Ipv6Addr

§

type Target = &'x Ipv6Addr

source§

fn from_uri_param(param: &'x Ipv6Addr) -> &'x Ipv6Addr

source§

impl<P: Part> FromUriParam<P, NonZeroU32> for NonZeroU32

source§

impl<P: Part> FromUriParam<P, NonZeroI16> for NonZeroI16

source§

impl<'x, P: Part> FromUriParam<P, &'x mut NonZeroU128> for NonZeroU128

§

type Target = &'x mut NonZeroU128

source§

fn from_uri_param(param: &'x mut NonZeroU128) -> &'x mut NonZeroU128

source§

impl<'x, P: Part> FromUriParam<P, &'x NonZeroU64> for NonZeroU64

source§

impl<P: Part> FromUriParam<P, NonZeroI8> for NonZeroI8

source§

impl<'x, P: Part> FromUriParam<P, &'x mut NonZeroI128> for NonZeroI128

§

type Target = &'x mut NonZeroI128

source§

fn from_uri_param(param: &'x mut NonZeroI128) -> &'x mut NonZeroI128

source§

impl<'x, P: Part> FromUriParam<P, &'x Time> for Time

§

type Target = &'x Time

source§

fn from_uri_param(param: &'x Time) -> &'x Time

source§

impl<K, V, A, B> FromUriParam<Query, BTreeMap<A, B, Global>> for BTreeMap<K, V>where A: UriDisplay<Query>, K: FromUriParam<Query, A>, B: UriDisplay<Query>, V: FromUriParam<Query, B>,

§

type Target = BTreeMap<A, B, Global>

source§

fn from_uri_param(param: BTreeMap<A, B>) -> Self::Target

source§

impl<P: Part> FromUriParam<P, NonZeroI32> for NonZeroI32

source§

impl<'x, P: Part> FromUriParam<P, &'x mut i8> for i8

§

type Target = &'x mut i8

source§

fn from_uri_param(param: &'x mut i8) -> &'x mut i8

source§

impl<'x, P: Part> FromUriParam<P, &'x NonZeroUsize> for NonZeroUsize

source§

impl<'x, 'a> FromUriParam<Path, &'x mut PathBuf> for &'a Path

§

type Target = &'x mut PathBuf

source§

fn from_uri_param(param: &'x mut PathBuf) -> &'x mut PathBuf

source§

impl<'x, P: Part> FromUriParam<P, &'x NonZeroU8> for NonZeroU8

source§

impl<'x, P: Part> FromUriParam<P, &'x SocketAddrV4> for SocketAddrV4

source§

impl<'x, 'a, P: Part> FromUriParam<P, &'x mut String> for &'a str

§

type Target = &'x mut String

source§

fn from_uri_param(param: &'x mut String) -> &'x mut String

source§

impl<'x, 'a> FromUriParam<Path, &'x &'a Path> for PathBuf

§

type Target = &'x &'a Path

source§

fn from_uri_param(param: &'x &'a Path) -> &'x &'a Path

source§

impl<P: Part> FromUriParam<P, u64> for u64

source§

impl<'x, P: Part> FromUriParam<P, &'x i64> for i64

§

type Target = &'x i64

source§

fn from_uri_param(param: &'x i64) -> &'x i64

source§

impl<'x, P: Part> FromUriParam<P, &'x mut bool> for bool

§

type Target = &'x mut bool

source§

fn from_uri_param(param: &'x mut bool) -> &'x mut bool

source§

impl<'x, P: Part> FromUriParam<P, &'x mut NonZeroI8> for NonZeroI8

§

type Target = &'x mut NonZeroI8

source§

fn from_uri_param(param: &'x mut NonZeroI8) -> &'x mut NonZeroI8

source§

impl<A, T: FromUriParam<Query, A>> FromUriParam<Query, Option<A>> for Option<T>

§

type Target = Option<<T as FromUriParam<Query, A>>::Target>

source§

fn from_uri_param(param: Option<A>) -> Self::Target

source§

impl<'x, P: Part> FromUriParam<P, &'x NonZeroU128> for NonZeroU128

source§

impl<'x, P: Part> FromUriParam<P, &'x u64> for u64

§

type Target = &'x u64

source§

fn from_uri_param(param: &'x u64) -> &'x u64

source§

impl<'x, P: Part> FromUriParam<P, &'x NonZeroI64> for NonZeroI64

source§

impl<'x> FromUriParam<Path, &'x mut PathBuf> for PathBuf

§

type Target = &'x mut PathBuf

source§

fn from_uri_param(param: &'x mut PathBuf) -> &'x mut PathBuf

source§

impl<P: Part> FromUriParam<P, Ipv6Addr> for Ipv6Addr

source§

impl<'x, P: Part> FromUriParam<P, &'x bool> for bool

§

type Target = &'x bool

source§

fn from_uri_param(param: &'x bool) -> &'x bool

Implementors§