pub struct Client { /* private fields */ }Expand description
Main client for interacting with IG Markets API
This client provides a unified interface for all IG Markets API operations, including market data, account management, and order execution.
Implementations§
Source§impl Client
impl Client
Sourcepub async fn get_ws_info(&self) -> WebsocketInfo
pub async fn get_ws_info(&self) -> WebsocketInfo
Gets WebSocket connection information for Lightstreamer
§Returns
WebsocketInfocontaining server endpoint, authentication tokens, and account ID
Trait Implementations§
Source§impl AccountService for Client
impl AccountService for Client
Source§fn get_accounts<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<AccountsResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_accounts<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<AccountsResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Gets information about all user accounts
Source§fn get_positions<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<PositionsResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_positions<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<PositionsResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Gets open positions
Source§fn get_positions_w_filter<'life0, 'life1, 'async_trait>(
&'life0 self,
filter: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<PositionsResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_positions_w_filter<'life0, 'life1, 'async_trait>(
&'life0 self,
filter: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<PositionsResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Gets open positions base in filter
Source§fn get_working_orders<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<WorkingOrdersResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_working_orders<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<WorkingOrdersResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Gets working orders
Source§fn get_activity<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
from: &'life1 str,
to: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<AccountActivityResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn get_activity<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
from: &'life1 str,
to: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<AccountActivityResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Gets account activity Read more
Source§fn get_activity_with_details<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
from: &'life1 str,
to: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<AccountActivityResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn get_activity_with_details<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
from: &'life1 str,
to: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<AccountActivityResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Gets detailed account activity Read more
Source§fn get_transactions<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
from: &'life1 str,
to: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<TransactionHistoryResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn get_transactions<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
from: &'life1 str,
to: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<TransactionHistoryResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Gets transaction history for a given period, handling pagination automatically.
Source§impl MarketService for Client
impl MarketService for Client
Source§fn search_markets<'life0, 'life1, 'async_trait>(
&'life0 self,
search_term: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<MarketSearchResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn search_markets<'life0, 'life1, 'async_trait>(
&'life0 self,
search_term: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<MarketSearchResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Searches markets by search term
Source§fn get_market_details<'life0, 'life1, 'async_trait>(
&'life0 self,
epic: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<MarketDetails, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_market_details<'life0, 'life1, 'async_trait>(
&'life0 self,
epic: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<MarketDetails, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Gets details of a specific market by its EPIC
Source§fn get_multiple_market_details<'life0, 'life1, 'async_trait>(
&'life0 self,
epics: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Result<MultipleMarketDetailsResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_multiple_market_details<'life0, 'life1, 'async_trait>(
&'life0 self,
epics: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Result<MultipleMarketDetailsResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Gets details of multiple markets by their EPICs in a single request Read more
Source§fn get_historical_prices<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
epic: &'life1 str,
resolution: &'life2 str,
from: &'life3 str,
to: &'life4 str,
) -> Pin<Box<dyn Future<Output = Result<HistoricalPricesResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn get_historical_prices<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
epic: &'life1 str,
resolution: &'life2 str,
from: &'life3 str,
to: &'life4 str,
) -> Pin<Box<dyn Future<Output = Result<HistoricalPricesResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Gets historical prices for a market
Source§fn get_historical_prices_by_date_range<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
epic: &'life1 str,
resolution: &'life2 str,
start_date: &'life3 str,
end_date: &'life4 str,
) -> Pin<Box<dyn Future<Output = Result<HistoricalPricesResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn get_historical_prices_by_date_range<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
epic: &'life1 str,
resolution: &'life2 str,
start_date: &'life3 str,
end_date: &'life4 str,
) -> Pin<Box<dyn Future<Output = Result<HistoricalPricesResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Gets historical prices for a market using path parameters (API v2) Read more
Source§fn get_recent_prices<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
params: &'life1 RecentPricesRequest<'life2>,
) -> Pin<Box<dyn Future<Output = Result<HistoricalPricesResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn get_recent_prices<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
params: &'life1 RecentPricesRequest<'life2>,
) -> Pin<Box<dyn Future<Output = Result<HistoricalPricesResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Gets recent historical prices with custom parameters Read more
Source§fn get_historical_prices_by_count_v1<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
epic: &'life1 str,
resolution: &'life2 str,
num_points: i32,
) -> Pin<Box<dyn Future<Output = Result<HistoricalPricesResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn get_historical_prices_by_count_v1<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
epic: &'life1 str,
resolution: &'life2 str,
num_points: i32,
) -> Pin<Box<dyn Future<Output = Result<HistoricalPricesResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Gets historical prices by number of data points (API v1) Read more
Source§fn get_historical_prices_by_count_v2<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
epic: &'life1 str,
resolution: &'life2 str,
num_points: i32,
) -> Pin<Box<dyn Future<Output = Result<HistoricalPricesResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn get_historical_prices_by_count_v2<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
epic: &'life1 str,
resolution: &'life2 str,
num_points: i32,
) -> Pin<Box<dyn Future<Output = Result<HistoricalPricesResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Gets historical prices by number of data points (API v2) Read more
Gets the top-level market navigation nodes Read more
Gets the market navigation node with the specified ID Read more
Source§impl OrderService for Client
impl OrderService for Client
Source§fn create_order<'life0, 'life1, 'async_trait>(
&'life0 self,
order: &'life1 CreateOrderRequest,
) -> Pin<Box<dyn Future<Output = Result<CreateOrderResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn create_order<'life0, 'life1, 'async_trait>(
&'life0 self,
order: &'life1 CreateOrderRequest,
) -> Pin<Box<dyn Future<Output = Result<CreateOrderResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Creates a new order
Source§fn get_order_confirmation<'life0, 'life1, 'async_trait>(
&'life0 self,
deal_reference: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<OrderConfirmationResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_order_confirmation<'life0, 'life1, 'async_trait>(
&'life0 self,
deal_reference: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<OrderConfirmationResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Gets the confirmation of an order
Source§fn update_position<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
deal_id: &'life1 str,
update: &'life2 UpdatePositionRequest,
) -> Pin<Box<dyn Future<Output = Result<UpdatePositionResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn update_position<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
deal_id: &'life1 str,
update: &'life2 UpdatePositionRequest,
) -> Pin<Box<dyn Future<Output = Result<UpdatePositionResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Updates an existing position
Source§fn close_position<'life0, 'life1, 'async_trait>(
&'life0 self,
close_request: &'life1 ClosePositionRequest,
) -> Pin<Box<dyn Future<Output = Result<ClosePositionResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn close_position<'life0, 'life1, 'async_trait>(
&'life0 self,
close_request: &'life1 ClosePositionRequest,
) -> Pin<Box<dyn Future<Output = Result<ClosePositionResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Closes an existing position
Source§fn create_working_order<'life0, 'life1, 'async_trait>(
&'life0 self,
order: &'life1 CreateWorkingOrderRequest,
) -> Pin<Box<dyn Future<Output = Result<CreateWorkingOrderResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn create_working_order<'life0, 'life1, 'async_trait>(
&'life0 self,
order: &'life1 CreateWorkingOrderRequest,
) -> Pin<Box<dyn Future<Output = Result<CreateWorkingOrderResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Creates a new working order
Auto Trait Implementations§
impl Freeze for Client
impl !RefUnwindSafe for Client
impl Send for Client
impl Sync for Client
impl Unpin for Client
impl !UnwindSafe for Client
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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