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 fn try_new() -> Result<Self, AppError>
pub fn try_new() -> Result<Self, AppError>
Creates a new client instance from the environment, without performing initial authentication, returning an error if the underlying HTTP client cannot be constructed.
This is the environment convenience path: the configuration comes from
Config::default, which loads a local .env file and reads the
IG_* environment namespace. Embedders that supply their own
configuration should use Client::with_config instead, which touches
neither.
§Returns
Ok(Client)- A client ready to use with the default configuration.Err(AppError)- If the underlying HTTP client cannot be constructed.
§Errors
Returns AppError::Network if the underlying reqwest client cannot
be built (e.g. the system TLS backend fails to initialize).
Sourcepub fn with_config(config: Config) -> Result<Self, AppError>
pub fn with_config(config: Config) -> Result<Self, AppError>
Creates a new client instance from a caller-supplied Config, without
reading a .env file or the IG_* environment namespace.
This is the injection path for applications that own their
configuration source (their own namespaced environment variables, a
config file, a secrets manager) and must not have the crate reach for
globals. Build the Config with
Config::from_credentials,
which is likewise env-free; Client::try_new remains the .env
convenience path.
As with try_new, no authentication is performed here:
session login and token refresh happen transparently on the first API
call.
Two knobs live outside Config and are still resolved from the
process environment on this path: the retry policy (MAX_RETRY_COUNT /
RETRY_DELAY_SECS, read per request by
RetryConfig::default) and
IG_PRICING_ADAPTER (the Lightstreamer price adapter name). Neither
carries a credential and both have safe defaults, so an embedder that
sets neither is unaffected.
For streaming, pair this with
StreamerClient::with_client:
StreamerClient::new
builds its own client via try_new and would go back
to the .env / IG_* path.
use ig_client::prelude::*;
// Fail fast on a missing variable: an empty credential would only
// surface later as a confusing authentication failure.
fn required_var(name: &str) -> Result<String, AppError> {
std::env::var(name).map_err(|_| AppError::InvalidInput(format!("{name} is not set")))
}
let credentials = Credentials::new(
required_var("MYAPP_IG_USERNAME")?,
required_var("MYAPP_IG_PASSWORD")?,
required_var("MYAPP_IG_ACCOUNT_ID")?,
required_var("MYAPP_IG_API_KEY")?,
);
let client = Client::with_config(Config::from_credentials(credentials))?;§Arguments
config- The configuration the client and its session layer will use.
§Returns
Ok(Client)- A client ready to use withconfig.Err(AppError)- If the underlying HTTP client cannot be constructed.
§Errors
Returns AppError::Network if the underlying reqwest client cannot
be built (e.g. the system TLS backend fails to initialize).
Sourcepub fn config(&self) -> &Config
pub fn config(&self) -> &Config
Returns the configuration this client was built with.
Useful to confirm which environment the client is pointed at (e.g.
client.config().rest_api.base_url). Config’s Debug / Display
redact credentials and the database URL, so rendering it that way is
safe. Its Serialize impl does not redact — never serialize a
Config into logs, telemetry or an error payload.
Sourcepub async fn ws_info(&self) -> Result<WebsocketInfo, AppError>
pub async fn ws_info(&self) -> Result<WebsocketInfo, AppError>
Gets WebSocket connection information for Lightstreamer, reusing the cached session.
Delegates to HttpClient::ws_info, which returns the cached session
when it is valid and only logs in when needed.
§Returns
Ok(WebsocketInfo)- Server endpoint, authentication tokens, and account ID for the current session.Err(AppError)- If session retrieval (login / refresh) fails.
§Errors
Returns AppError when the session cannot be retrieved.
Sourcepub async fn get_ws_info(&self) -> WebsocketInfo
👎Deprecated: use ws_info() which reuses the cached session and returns a typed error instead of a default-on-error WebsocketInfo
pub async fn get_ws_info(&self) -> WebsocketInfo
use ws_info() which reuses the cached session and returns a typed error instead of a default-on-error 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,
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,
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,
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,
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,
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,
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,
Source§fn get_preferences<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<AccountPreferencesResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_preferences<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<AccountPreferencesResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§impl CostsService for Client
impl CostsService for Client
Source§fn get_indicative_costs_open<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 OpenCostsRequest,
) -> Pin<Box<dyn Future<Output = Result<IndicativeCostsResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_indicative_costs_open<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 OpenCostsRequest,
) -> Pin<Box<dyn Future<Output = Result<IndicativeCostsResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn get_indicative_costs_close<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 CloseCostsRequest,
) -> Pin<Box<dyn Future<Output = Result<IndicativeCostsResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_indicative_costs_close<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 CloseCostsRequest,
) -> Pin<Box<dyn Future<Output = Result<IndicativeCostsResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn get_indicative_costs_edit<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 EditCostsRequest,
) -> Pin<Box<dyn Future<Output = Result<IndicativeCostsResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_indicative_costs_edit<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 EditCostsRequest,
) -> Pin<Box<dyn Future<Output = Result<IndicativeCostsResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn get_costs_history<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
from: &'life1 str,
to: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<CostsHistoryResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn get_costs_history<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
from: &'life1 str,
to: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<CostsHistoryResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn get_durable_medium<'life0, 'life1, 'async_trait>(
&'life0 self,
quote_reference: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<DurableMediumResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_durable_medium<'life0, 'life1, 'async_trait>(
&'life0 self,
quote_reference: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<DurableMediumResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
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,
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,
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,
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,
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,
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,
Source§fn get_historical_prices_by_count_v1<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
epic: &'life1 str,
resolution: &'life2 str,
num_points: u32,
) -> 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: u32,
) -> Pin<Box<dyn Future<Output = Result<HistoricalPricesResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn get_historical_prices_by_count_v2<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
epic: &'life1 str,
resolution: &'life2 str,
num_points: u32,
) -> 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: u32,
) -> Pin<Box<dyn Future<Output = Result<HistoricalPricesResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn get_all_markets<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<MarketData>, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_all_markets<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<MarketData>, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_vec_db_entries<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<DBEntryResponse>, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_vec_db_entries<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<DBEntryResponse>, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_categories<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<CategoriesResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_categories<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<CategoriesResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_category_instruments<'life0, 'life1, 'async_trait>(
&'life0 self,
category_id: &'life1 str,
page_number: Option<u32>,
page_size: Option<u32>,
) -> Pin<Box<dyn Future<Output = Result<CategoryInstrumentsResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_category_instruments<'life0, 'life1, 'async_trait>(
&'life0 self,
category_id: &'life1 str,
page_number: Option<u32>,
page_size: Option<u32>,
) -> Pin<Box<dyn Future<Output = Result<CategoryInstrumentsResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§impl OperationsService for Client
impl OperationsService for Client
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,
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,
Source§fn get_order_confirmation_w_retry<'life0, 'life1, 'async_trait>(
&'life0 self,
deal_reference: &'life1 str,
retries: u64,
delay_ms: u64,
) -> 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_w_retry<'life0, 'life1, 'async_trait>(
&'life0 self,
deal_reference: &'life1 str,
retries: u64,
delay_ms: u64,
) -> Pin<Box<dyn Future<Output = Result<OrderConfirmationResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
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,
Source§fn update_level_in_position<'life0, 'life1, 'async_trait>(
&'life0 self,
deal_id: &'life1 str,
limit_level: Option<f64>,
) -> Pin<Box<dyn Future<Output = Result<UpdatePositionResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn update_level_in_position<'life0, 'life1, 'async_trait>(
&'life0 self,
deal_id: &'life1 str,
limit_level: Option<f64>,
) -> Pin<Box<dyn Future<Output = Result<UpdatePositionResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
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,
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,
Source§fn delete_working_order<'life0, 'life1, 'async_trait>(
&'life0 self,
deal_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete_working_order<'life0, 'life1, 'async_trait>(
&'life0 self,
deal_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn get_position<'life0, 'life1, 'async_trait>(
&'life0 self,
deal_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<SinglePositionResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_position<'life0, 'life1, 'async_trait>(
&'life0 self,
deal_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<SinglePositionResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn update_working_order<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
deal_id: &'life1 str,
update: &'life2 UpdateWorkingOrderRequest,
) -> Pin<Box<dyn Future<Output = Result<CreateWorkingOrderResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn update_working_order<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
deal_id: &'life1 str,
update: &'life2 UpdateWorkingOrderRequest,
) -> Pin<Box<dyn Future<Output = Result<CreateWorkingOrderResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§impl SentimentService for Client
impl SentimentService for Client
Source§fn get_client_sentiment<'life0, 'life1, 'async_trait>(
&'life0 self,
market_ids: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Result<ClientSentimentResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_client_sentiment<'life0, 'life1, 'async_trait>(
&'life0 self,
market_ids: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Result<ClientSentimentResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn get_client_sentiment_by_market<'life0, 'life1, 'async_trait>(
&'life0 self,
market_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<MarketSentiment, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_client_sentiment_by_market<'life0, 'life1, 'async_trait>(
&'life0 self,
market_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<MarketSentiment, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§impl WatchlistService for Client
impl WatchlistService for Client
Source§fn get_watchlists<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<WatchlistsResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_watchlists<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<WatchlistsResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn create_watchlist<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
name: &'life1 str,
epics: Option<&'life2 [String]>,
) -> Pin<Box<dyn Future<Output = Result<CreateWatchlistResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn create_watchlist<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
name: &'life1 str,
epics: Option<&'life2 [String]>,
) -> Pin<Box<dyn Future<Output = Result<CreateWatchlistResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn get_watchlist<'life0, 'life1, 'async_trait>(
&'life0 self,
watchlist_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<WatchlistMarketsResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_watchlist<'life0, 'life1, 'async_trait>(
&'life0 self,
watchlist_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<WatchlistMarketsResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn delete_watchlist<'life0, 'life1, 'async_trait>(
&'life0 self,
watchlist_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<StatusResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete_watchlist<'life0, 'life1, 'async_trait>(
&'life0 self,
watchlist_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<StatusResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn add_to_watchlist<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
watchlist_id: &'life1 str,
epic: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<StatusResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn add_to_watchlist<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
watchlist_id: &'life1 str,
epic: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<StatusResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn remove_from_watchlist<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
watchlist_id: &'life1 str,
epic: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<StatusResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn remove_from_watchlist<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
watchlist_id: &'life1 str,
epic: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<StatusResponse, AppError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Auto Trait Implementations§
impl !RefUnwindSafe for Client
impl !UnwindSafe for Client
impl Freeze for Client
impl Send for Client
impl Sync for Client
impl Unpin for Client
impl UnsafeUnpin 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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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>
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>
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