Skip to main content

Params

Struct Params 

Source
pub struct Params<'k, 'v> { /* private fields */ }
Expand description

Matcher parameters.

This is a thin wrapper around the Params data type of the matchit crate to shield against unforeseen changes in the crate’s implementation.

Note that Params should be used without lifetime parameters, as it’s designed to be used in a context where lifetimes are irrelevant, i.e., in the signature of an Action, ensuring that third-party integrations don’t break when the implementation changes, albeit unlikely.

Implementations§

Source§

impl<'k, 'v> Params<'k, 'v>

Source

pub fn get<K>(&self, key: K) -> Option<&'v str>
where K: AsRef<str>,

Returns the value for the given key.

§Examples
use zapient::http::{Request, Response, Status};
use zapient::router::{Router, Params};

// Create router and add route
let router = Router::default()
    .get("/coffee/{kind}", |req: Request, params: Params| {
        if let Some(kind) = params.get("kind") {
            Response::default() // Handle request
        } else {
            Response::new().status(Status::BadRequest)
        }
    });
Source

pub fn contains<K>(&self, key: K) -> bool
where K: AsRef<str>,

Returns whether the parameter is contained.

§Examples
use zapient::http::{Request, Response, Status};
use zapient::router::{Router, Params};

// Create router and add route
let router = Router::default()
    .get("/coffee/{kind}", |req: Request, params: Params| {
        if params.contains("kind") {
            Response::default() // Handle request
        } else {
            Response::new().status(Status::BadRequest)
        }
    });
Source

pub fn iter(&self) -> ParamsIter<'_, 'k, 'v>

Returns an iterator over all parameters.

§Examples
use zapient::http::{Request, Response};
use zapient::router::{Router, Params};

// Create router and add route
let router = Router::default()
    .get("/coffee/{kind}", |req: Request, params: Params| {
        for (key, value) in params.iter() {
            println!("{key}: {value}");
        }
        Response::default() // Handle request
    });
Source§

impl Params<'_, '_>

Source

pub fn len(&self) -> usize

Returns the number of parameters.

Source

pub fn is_empty(&self) -> bool

Returns whether the parameter map is empty.

Trait Implementations§

Source§

impl<'k, 'v> Clone for Params<'k, 'v>

Source§

fn clone(&self) -> Params<'k, 'v>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'k, 'v> Debug for Params<'k, 'v>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'a, 'k, 'v> IntoIterator for &'a Params<'k, 'v>

Source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator over all parameters.

§Examples
use zapient::http::{Request, Response};
use zapient::router::{Router, Params};

// Create router and add route
let router = Router::default()
    .get("/coffee/{kind}", |req: Request, params: Params| {
        for (key, value) in &params {
            println!("{key}: {value}");
        }
        Response::default() // Handle request
    });
Source§

type Item = (&'k str, &'v str)

The type of the elements being iterated over.
Source§

type IntoIter = ParamsIter<'a, 'k, 'v>

Which kind of iterator are we turning this into?

Auto Trait Implementations§

§

impl<'k, 'v> Freeze for Params<'k, 'v>

§

impl<'k, 'v> RefUnwindSafe for Params<'k, 'v>

§

impl<'k, 'v> Send for Params<'k, 'v>

§

impl<'k, 'v> Sync for Params<'k, 'v>

§

impl<'k, 'v> Unpin for Params<'k, 'v>

§

impl<'k, 'v> UnsafeUnpin for Params<'k, 'v>

§

impl<'k, 'v> UnwindSafe for Params<'k, 'v>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.