Struct RefreshFlow

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

Takes requests from clients to refresh their access tokens.

Implementations§

Source§

impl<E, R> RefreshFlow<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>

Wrap the endpoint if it supports handling refresh requests.

Also binds the endpoint to the particular WebRequest type through the type system. The endpoint needs to provide (return Some):

  • a Registrar from registrar
  • an Issuer from issuer_mut
§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<R::Response, E::Error>

Auto Trait Implementations§

§

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

§

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

§

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

§

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

§

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

§

impl<E, R> UnwindSafe for RefreshFlow<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,