Skip to main content

PathBuilder

Trait PathBuilder 

Source
pub trait PathBuilder: Sized {
    type Input<'a>;

    // Required methods
    fn select_path(
        &self,
        input: Self::Input<'_>,
    ) -> Result<&'static str, IntoHttpError>;
    fn all_paths(&self) -> impl Iterator<Item = &'static str>;

    // Provided method
    fn make_endpoint_url(
        &self,
        input: Self::Input<'_>,
        base_url: &str,
        path_args: &[&dyn Display],
        query_string: &str,
    ) -> Result<String, IntoHttpError> { ... }
}
Available on crate feature api only.
Expand description

Trait implemented by types providing a method to construct the path used to query an endpoint.

Types implementing this must enforce that all possible paths returned from select_path() must contain the same number of variables.

Required Associated Types§

Source

type Input<'a>

The input necessary to generate the endpoint URL.

Required Methods§

Source

fn select_path( &self, input: Self::Input<'_>, ) -> Result<&'static str, IntoHttpError>

Pick the right path according to the given input.

Returns an error if no path could be selected for the given input.

Source

fn all_paths(&self) -> impl Iterator<Item = &'static str>

All the possible paths used by the endpoint in canon form.

This is meant to be used to register paths in server routers.

Provided Methods§

Source

fn make_endpoint_url( &self, input: Self::Input<'_>, base_url: &str, path_args: &[&dyn Display], query_string: &str, ) -> Result<String, IntoHttpError>

Generate the endpoint URL for this data, considering the given input.

§Arguments
  • input - The input necessary to select the path.
  • base_url - The base URL (i.e. the scheme and host) to which the endpoint path will be appended. Since all paths begin with a slash, it is not necessary for the this to have a trailing slash. If it has one however, it will be ignored.
  • path_args - The values of the variables in the endpoint’s path. The order and number must match the order and number of the variables in the path.
  • query_string - The serialized query string to append to the URL.
§Errors

Returns an error if the PathBuilder::select_path() implementation returns an error.

Panics if the number of path_args doesn’t match the number of variables in the path returned by PathBuilder::select_path() must contain the same variables.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§