Struct NestedEndpoint

Source
pub struct NestedEndpoint<T> { /* private fields */ }
Available on crate feature wiremock only.
Expand description

A Django nested route.

A nested route in Django is a way of specifying that a particular filter field must be present when querying for a particular object type, and that the filter type must be exact match. So for example, if all objects of type Foo have a reference to a Bar, and its too expensive or undesirable to query for Foos without specifying which Bar they come from, then you can express this in Django as a nested route:

http://example.com/bars/1/foos

where in order to ask any question about Foos you must first identify a particular associated Bar.

Since the django-query crate operates on query parameters, the simplest way to handle this is to convert any relevant parts of the path into query parameters as required, which is all this type does. See its construction parameters NestedEndpointParams for the details. This type is otherwise identical to Endpoint.

Implementations§

Source§

impl<'q, T> NestedEndpoint<T>
where T: Send + Sync + RowSource, for<'t> &'t <<T as RowSource>::Rows as RowSet>::Target: IntoIterator<Item = &'t <T as RowSource>::Item>, <T as RowSource>::Item: Send + Sync + Filterable<'q> + Sortable<'q>,

Source

pub fn new(row_source: T, p: NestedEndpointParams<'_>) -> Self

Create a new NestedEndpoint.

The arguments to this function are wrapped in their own structure: NestedEndpointParams.

Source

pub fn default_limit(&mut self, limit: usize)

Set the default number of results returned

This is the value used when no limit is specified in the query. This value is configurable in Django; the default behaviour of this mock endpoint is to return everything, but that makes testing code that uses the default pagination more difficult.

Trait Implementations§

Source§

impl<'q, T> Respond for NestedEndpoint<T>
where T: Send + Sync + RowSource, for<'t> &'t <<T as RowSource>::Rows as RowSet>::Target: IntoIterator<Item = &'t <T as RowSource>::Item>, <T as RowSource>::Item: Send + Sync + Filterable<'q> + Sortable<'q> + IntoRow<'q> + 'q,

Source§

fn respond(&self, request: &Request) -> ResponseTemplate

Given a reference to a Request return a ResponseTemplate that will be used by the MockServer as blueprint for the response returned to the client.

Auto Trait Implementations§

§

impl<T> Freeze for NestedEndpoint<T>
where T: Freeze,

§

impl<T> RefUnwindSafe for NestedEndpoint<T>
where T: RefUnwindSafe,

§

impl<T> Send for NestedEndpoint<T>
where T: Send,

§

impl<T> Sync for NestedEndpoint<T>
where T: Sync,

§

impl<T> Unpin for NestedEndpoint<T>
where T: Unpin,

§

impl<T> UnwindSafe for NestedEndpoint<T>
where T: UnwindSafe,

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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, 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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,