Struct ResourceFlow

Source
pub struct ResourceFlow<E, R>
where E: Endpoint<R>, R: WebRequest,
{ /* private fields */ }
Expand description

Guards resources by requiring OAuth authorization.

Implementations§

Source§

impl<E, R> ResourceFlow<E, R>
where E: Endpoint<R> + Send + Sync, R: WebRequest + Send + Sync, <R as WebRequest>::Error: Send + Sync,

Source

pub fn prepare(endpoint: E) -> Result<Self, E::Error>

Check that the endpoint supports the necessary operations for handling requests.

Binds the endpoint to a particular type of request that it supports, for many implementations this is probably single type anyways.

§Panics

Indirectly execute may panic when this flow is instantiated with an inconsistent endpoint, for details see the documentation of Endpoint and execute. For consistent endpoints, the panic is instead caught as an error here.

Source

pub async fn execute( &mut self, request: R, ) -> Result<Grant, Result<R::Response, E::Error>>

Use the checked endpoint to check for authorization for a resource.

§Panics

When the issuer returned by the endpoint is suddenly None when previously it was Some(_).

Auto Trait Implementations§

§

impl<E, R> Freeze for ResourceFlow<E, R>
where E: Freeze,

§

impl<E, R> RefUnwindSafe for ResourceFlow<E, R>

§

impl<E, R> Send for ResourceFlow<E, R>
where E: Send, R: Send,

§

impl<E, R> Sync for ResourceFlow<E, R>
where E: Sync, R: Sync,

§

impl<E, R> Unpin for ResourceFlow<E, R>
where E: Unpin, R: Unpin,

§

impl<E, R> UnwindSafe for ResourceFlow<E, R>
where E: UnwindSafe, R: 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, 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> Same for T

Source§

type Output = T

Should always be Self
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> ErasedDestructor for T
where T: 'static,