IgAuth

Struct IgAuth 

Source
pub struct IgAuth<'a> { /* private fields */ }
Expand description

Authentication handler for IG Markets API

Implementations§

Source§

impl<'a> IgAuth<'a>

Source

pub fn new(cfg: &'a Config) -> Self

Creates a new IG authentication handler

§Arguments
  • cfg - Reference to the configuration
§Returns
  • A new IgAuth instance

Trait Implementations§

Source§

impl IgAuthenticator for IgAuth<'_>

Source§

fn login<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<IgSession, AuthError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Logs in to the IG Markets API and returns a new session Read more
Source§

fn login_v2<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<IgSession, AuthError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Logs in using API v2 (CST/X-SECURITY-TOKEN authentication) Read more
Source§

fn login_v3<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<IgSession, AuthError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Logs in using API v3 (OAuth authentication) Read more
Source§

fn refresh<'life0, 'life1, 'async_trait>( &'life0 self, sess: &'life1 IgSession, ) -> Pin<Box<dyn Future<Output = Result<IgSession, AuthError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Refreshes an existing session with the IG Markets API
Source§

fn switch_account<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, session: &'life1 IgSession, account_id: &'life2 str, default_account: Option<bool>, ) -> Pin<Box<dyn Future<Output = Result<IgSession, AuthError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Switches the active account for the current session Read more
Source§

fn relogin<'life0, 'life1, 'async_trait>( &'life0 self, session: &'life1 IgSession, ) -> Pin<Box<dyn Future<Output = Result<IgSession, AuthError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Re-authenticates only if the current session tokens are expired or close to expiring. This method checks the token expiration with a safety margin and only performs login if necessary, making it more efficient than always calling login(). Read more
Source§

fn relogin_and_switch_account<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, session: &'life1 IgSession, account_id: &'life2 str, default_account: Option<bool>, ) -> Pin<Box<dyn Future<Output = Result<IgSession, AuthError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Attempts to relogin (if needed) and switch to the specified account. This method uses relogin() instead of login() to avoid unnecessary authentication when tokens are still valid. Read more
Source§

fn login_and_switch_account<'life0, 'life1, 'async_trait>( &'life0 self, account_id: &'life1 str, default_account: Option<bool>, ) -> Pin<Box<dyn Future<Output = Result<IgSession, AuthError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Attempts to login and switch to the specified account, optionally setting it as the default account. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for IgAuth<'a>

§

impl<'a> !RefUnwindSafe for IgAuth<'a>

§

impl<'a> Send for IgAuth<'a>

§

impl<'a> Sync for IgAuth<'a>

§

impl<'a> Unpin for IgAuth<'a>

§

impl<'a> !UnwindSafe for IgAuth<'a>

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

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
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> 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,