Enum glimesh::Auth[][src]

pub enum Auth {
    ClientId(String),
    AccessToken(String),
    RefreshableAccessToken(RefreshableAccessToken),
    ClientCredentials(ClientCredentials),
}
Expand description

Authentication method. The Glimesh API requires an authentication method to be used. The most basic is the ClientId method, which gives you read only access to the api.

Variants

ClientId(String)

Use Client-ID authentication. When using this method, you can only ‘read’ from the API.

AccessToken(String)

Use Bearer authentication. The supplied access token is assumed to be valid. If you would like the client to handle token refreshing, use Auth::RefreshableAccessToken instead.

RefreshableAccessToken(RefreshableAccessToken)

Use Bearer authentication. This will use the provided refresh token to refresh the access token when/if it expires.

ClientCredentials(ClientCredentials)

Use Bearer authentication via the client_credentials flow.

This allows you to log in to the api as the account that created the developer application.

Implementations

impl Auth[src]

pub fn client_id(client_id: impl Into<String>) -> Self[src]

Use Client-ID authentication. When using this method, you can only ‘read’ from the API.

pub fn access_token(access_token: impl Into<String>) -> Self[src]

Use Bearer authentication. The supplied access token is assumed to be valid. If you would like the client to handle token refreshing, use Auth::RefreshableAccessToken instead.

pub fn refreshable_access_token(
    client_id: impl Into<String>,
    client_secret: impl Into<String>,
    redirect_uri: impl Into<String>,
    access_token: AccessToken
) -> (Self, Receiver<AccessToken>)
[src]

Use Bearer authentication. This will use the provided refresh token to refresh the access token when/if it expires.

You can listen for updates to the token using the tokio::sync::watch::Receiver returned as the second part of the tuple.

Example

let (auth, token_receiver) = Auth::refreshable_access_token(
    "<client_id>",
    "<client_secret>",
    "<redirect_uri>",
    AccessToken { .. },
);

tokio::spawn(async move {
    while token_receiver.changed().await.is_ok() {
        println!("new token = {:#?}", *token_receiver.borrow());
    }
});

Panics

This function panics if the TLS backend cannot be initialized, or the resolver cannot load the system configuration.

pub fn client_credentials(
    client_id: impl Into<String>,
    client_secret: impl Into<String>
) -> Self
[src]

Use Bearer authentication via the client_credentials flow.

This allows you to log in to the api as the account that created the developer application.

Panics

This function panics if the TLS backend cannot be initialized, or the resolver cannot load the system configuration.

Trait Implementations

impl Debug for Auth[src]

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

Formats the value using the given formatter. Read more

Auto Trait Implementations

impl !RefUnwindSafe for Auth

impl Send for Auth

impl Sync for Auth

impl Unpin for Auth

impl !UnwindSafe for Auth

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T> Instrument for T[src]

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

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

fn in_current_span(self) -> Instrumented<Self>[src]

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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

Performs the conversion.

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

pub fn vzip(self) -> V