Skip to main content

BitmexExecClientConfigBuilder

Struct BitmexExecClientConfigBuilder 

Source
pub struct BitmexExecClientConfigBuilder<S: State = Empty> { /* private fields */ }
Expand description

Use builder syntax to set the inputs and finish with build().

Implementations§

Source§

impl<S: State> BitmexExecClientConfigBuilder<S>

Source

pub fn build(self) -> BitmexExecClientConfig
where S: IsComplete,

Finish building and return the requested object

Source

pub fn api_key( self, value: String, ) -> BitmexExecClientConfigBuilder<SetApiKey<S>>
where S::ApiKey: IsUnset,

Optional (Some / Option setters). API key used for authenticated requests.

Source

pub fn maybe_api_key( self, value: Option<String>, ) -> BitmexExecClientConfigBuilder<SetApiKey<S>>
where S::ApiKey: IsUnset,

Optional (Some / Option setters). API key used for authenticated requests.

Source

pub fn api_secret( self, value: String, ) -> BitmexExecClientConfigBuilder<SetApiSecret<S>>
where S::ApiSecret: IsUnset,

Optional (Some / Option setters). API secret used for authenticated requests.

Source

pub fn maybe_api_secret( self, value: Option<String>, ) -> BitmexExecClientConfigBuilder<SetApiSecret<S>>
where S::ApiSecret: IsUnset,

Optional (Some / Option setters). API secret used for authenticated requests.

Source

pub fn base_url_http( self, value: String, ) -> BitmexExecClientConfigBuilder<SetBaseUrlHttp<S>>
where S::BaseUrlHttp: IsUnset,

Optional (Some / Option setters). Optional override for the REST base URL.

Source

pub fn maybe_base_url_http( self, value: Option<String>, ) -> BitmexExecClientConfigBuilder<SetBaseUrlHttp<S>>
where S::BaseUrlHttp: IsUnset,

Optional (Some / Option setters). Optional override for the REST base URL.

Source

pub fn base_url_ws( self, value: String, ) -> BitmexExecClientConfigBuilder<SetBaseUrlWs<S>>
where S::BaseUrlWs: IsUnset,

Optional (Some / Option setters). Optional override for the WebSocket URL.

Source

pub fn maybe_base_url_ws( self, value: Option<String>, ) -> BitmexExecClientConfigBuilder<SetBaseUrlWs<S>>
where S::BaseUrlWs: IsUnset,

Optional (Some / Option setters). Optional override for the WebSocket URL.

Source

pub fn proxy_url( self, value: String, ) -> BitmexExecClientConfigBuilder<SetProxyUrl<S>>
where S::ProxyUrl: IsUnset,

Optional (Some / Option setters). Optional proxy URL for HTTP and WebSocket transports.

Source

pub fn maybe_proxy_url( self, value: Option<String>, ) -> BitmexExecClientConfigBuilder<SetProxyUrl<S>>
where S::ProxyUrl: IsUnset,

Optional (Some / Option setters). Optional proxy URL for HTTP and WebSocket transports.

Source

pub fn http_timeout_secs( self, value: u64, ) -> BitmexExecClientConfigBuilder<SetHttpTimeoutSecs<S>>
where S::HttpTimeoutSecs: IsUnset,

Optional (Some / Option setters). Default: 60.

REST timeout in seconds.

Source

pub fn maybe_http_timeout_secs( self, value: Option<u64>, ) -> BitmexExecClientConfigBuilder<SetHttpTimeoutSecs<S>>
where S::HttpTimeoutSecs: IsUnset,

Optional (Some / Option setters). Default: 60.

REST timeout in seconds.

Source

pub fn max_retries( self, value: u32, ) -> BitmexExecClientConfigBuilder<SetMaxRetries<S>>
where S::MaxRetries: IsUnset,

Optional (Some / Option setters). Default: 3.

Maximum retry attempts for REST requests.

Source

pub fn maybe_max_retries( self, value: Option<u32>, ) -> BitmexExecClientConfigBuilder<SetMaxRetries<S>>
where S::MaxRetries: IsUnset,

Optional (Some / Option setters). Default: 3.

Maximum retry attempts for REST requests.

Source

pub fn retry_delay_initial_ms( self, value: u64, ) -> BitmexExecClientConfigBuilder<SetRetryDelayInitialMs<S>>
where S::RetryDelayInitialMs: IsUnset,

Optional (Some / Option setters). Default: 1_000.

Initial retry backoff in milliseconds.

Source

pub fn maybe_retry_delay_initial_ms( self, value: Option<u64>, ) -> BitmexExecClientConfigBuilder<SetRetryDelayInitialMs<S>>
where S::RetryDelayInitialMs: IsUnset,

Optional (Some / Option setters). Default: 1_000.

Initial retry backoff in milliseconds.

Source

pub fn retry_delay_max_ms( self, value: u64, ) -> BitmexExecClientConfigBuilder<SetRetryDelayMaxMs<S>>
where S::RetryDelayMaxMs: IsUnset,

Optional (Some / Option setters). Default: 10_000.

Maximum retry backoff in milliseconds.

Source

pub fn maybe_retry_delay_max_ms( self, value: Option<u64>, ) -> BitmexExecClientConfigBuilder<SetRetryDelayMaxMs<S>>
where S::RetryDelayMaxMs: IsUnset,

Optional (Some / Option setters). Default: 10_000.

Maximum retry backoff in milliseconds.

Source

pub fn heartbeat_interval_secs( self, value: u64, ) -> BitmexExecClientConfigBuilder<SetHeartbeatIntervalSecs<S>>
where S::HeartbeatIntervalSecs: IsUnset,

Optional (Some / Option setters). Default: 5.

Heartbeat interval (seconds) for the WebSocket client.

Source

pub fn maybe_heartbeat_interval_secs( self, value: Option<u64>, ) -> BitmexExecClientConfigBuilder<SetHeartbeatIntervalSecs<S>>
where S::HeartbeatIntervalSecs: IsUnset,

Optional (Some / Option setters). Default: 5.

Heartbeat interval (seconds) for the WebSocket client.

Source

pub fn recv_window_ms( self, value: u64, ) -> BitmexExecClientConfigBuilder<SetRecvWindowMs<S>>
where S::RecvWindowMs: IsUnset,

Optional (Some / Option setters). Default: 10_000.

Receive window in milliseconds for signed requests.

This value determines how far in the future the api-expires timestamp will be set for signed REST requests. BitMEX uses seconds-granularity Unix timestamps in the api-expires header, calculated as: current_timestamp + (recv_window_ms / 1000).

Note: This parameter is specified in milliseconds for consistency with other adapter configurations (e.g., Bybit’s recv_window_ms), but BitMEX only supports seconds-granularity timestamps. The value is converted via integer division, so 10000ms becomes 10 seconds, 15500ms becomes 15 seconds, etc.

A larger window provides more tolerance for clock skew and network latency, but increases the replay attack window. The default of 10 seconds should be sufficient for most deployments. Consider increasing this value (e.g., to 30000ms = 30s) if you experience request expiration errors due to clock drift or high network latency.

Source

pub fn maybe_recv_window_ms( self, value: Option<u64>, ) -> BitmexExecClientConfigBuilder<SetRecvWindowMs<S>>
where S::RecvWindowMs: IsUnset,

Optional (Some / Option setters). Default: 10_000.

Receive window in milliseconds for signed requests.

This value determines how far in the future the api-expires timestamp will be set for signed REST requests. BitMEX uses seconds-granularity Unix timestamps in the api-expires header, calculated as: current_timestamp + (recv_window_ms / 1000).

Note: This parameter is specified in milliseconds for consistency with other adapter configurations (e.g., Bybit’s recv_window_ms), but BitMEX only supports seconds-granularity timestamps. The value is converted via integer division, so 10000ms becomes 10 seconds, 15500ms becomes 15 seconds, etc.

A larger window provides more tolerance for clock skew and network latency, but increases the replay attack window. The default of 10 seconds should be sufficient for most deployments. Consider increasing this value (e.g., to 30000ms = 30s) if you experience request expiration errors due to clock drift or high network latency.

Source

pub fn active_only( self, value: bool, ) -> BitmexExecClientConfigBuilder<SetActiveOnly<S>>
where S::ActiveOnly: IsUnset,

Optional (Some / Option setters). Default: true.

When true, only active instruments are requested during bootstrap.

Source

pub fn maybe_active_only( self, value: Option<bool>, ) -> BitmexExecClientConfigBuilder<SetActiveOnly<S>>
where S::ActiveOnly: IsUnset,

Optional (Some / Option setters). Default: true.

When true, only active instruments are requested during bootstrap.

Source

pub fn environment( self, value: BitmexEnvironment, ) -> BitmexExecClientConfigBuilder<SetEnvironment<S>>
where S::Environment: IsUnset,

Optional (Some / Option setters). Default: <BitmexEnvironment as Default>::default().

BitMEX environment (mainnet or testnet).

Source

pub fn maybe_environment( self, value: Option<BitmexEnvironment>, ) -> BitmexExecClientConfigBuilder<SetEnvironment<S>>
where S::Environment: IsUnset,

Optional (Some / Option setters). Default: <BitmexEnvironment as Default>::default().

BitMEX environment (mainnet or testnet).

Source

pub fn account_id( self, value: AccountId, ) -> BitmexExecClientConfigBuilder<SetAccountId<S>>
where S::AccountId: IsUnset,

Optional (Some / Option setters). Optional account identifier to associate with the execution client.

Source

pub fn maybe_account_id( self, value: Option<AccountId>, ) -> BitmexExecClientConfigBuilder<SetAccountId<S>>
where S::AccountId: IsUnset,

Optional (Some / Option setters). Optional account identifier to associate with the execution client.

Source

pub fn max_requests_per_second( self, value: u32, ) -> BitmexExecClientConfigBuilder<SetMaxRequestsPerSecond<S>>
where S::MaxRequestsPerSecond: IsUnset,

Optional (Some / Option setters). Default: 10.

Maximum number of requests per second (burst limit).

Source

pub fn maybe_max_requests_per_second( self, value: Option<u32>, ) -> BitmexExecClientConfigBuilder<SetMaxRequestsPerSecond<S>>
where S::MaxRequestsPerSecond: IsUnset,

Optional (Some / Option setters). Default: 10.

Maximum number of requests per second (burst limit).

Source

pub fn max_requests_per_minute( self, value: u32, ) -> BitmexExecClientConfigBuilder<SetMaxRequestsPerMinute<S>>
where S::MaxRequestsPerMinute: IsUnset,

Optional (Some / Option setters). Default: 120.

Maximum number of requests per minute (rolling window).

Source

pub fn maybe_max_requests_per_minute( self, value: Option<u32>, ) -> BitmexExecClientConfigBuilder<SetMaxRequestsPerMinute<S>>
where S::MaxRequestsPerMinute: IsUnset,

Optional (Some / Option setters). Default: 120.

Maximum number of requests per minute (rolling window).

Source

pub fn submitter_pool_size( self, value: usize, ) -> BitmexExecClientConfigBuilder<SetSubmitterPoolSize<S>>
where S::SubmitterPoolSize: IsUnset,

Optional (Some / Option setters). Number of HTTP clients in the submit broadcaster pool (defaults to 1).

Source

pub fn maybe_submitter_pool_size( self, value: Option<usize>, ) -> BitmexExecClientConfigBuilder<SetSubmitterPoolSize<S>>
where S::SubmitterPoolSize: IsUnset,

Optional (Some / Option setters). Number of HTTP clients in the submit broadcaster pool (defaults to 1).

Source

pub fn canceller_pool_size( self, value: usize, ) -> BitmexExecClientConfigBuilder<SetCancellerPoolSize<S>>
where S::CancellerPoolSize: IsUnset,

Optional (Some / Option setters). Number of HTTP clients in the cancel broadcaster pool (defaults to 1).

Source

pub fn maybe_canceller_pool_size( self, value: Option<usize>, ) -> BitmexExecClientConfigBuilder<SetCancellerPoolSize<S>>
where S::CancellerPoolSize: IsUnset,

Optional (Some / Option setters). Number of HTTP clients in the cancel broadcaster pool (defaults to 1).

Source

pub fn submitter_proxy_urls( self, value: Vec<String>, ) -> BitmexExecClientConfigBuilder<SetSubmitterProxyUrls<S>>
where S::SubmitterProxyUrls: IsUnset,

Optional (Some / Option setters). Optional list of proxy URLs for submit broadcaster pool (path diversity).

Source

pub fn maybe_submitter_proxy_urls( self, value: Option<Vec<String>>, ) -> BitmexExecClientConfigBuilder<SetSubmitterProxyUrls<S>>
where S::SubmitterProxyUrls: IsUnset,

Optional (Some / Option setters). Optional list of proxy URLs for submit broadcaster pool (path diversity).

Source

pub fn canceller_proxy_urls( self, value: Vec<String>, ) -> BitmexExecClientConfigBuilder<SetCancellerProxyUrls<S>>
where S::CancellerProxyUrls: IsUnset,

Optional (Some / Option setters). Optional list of proxy URLs for cancel broadcaster pool (path diversity).

Source

pub fn maybe_canceller_proxy_urls( self, value: Option<Vec<String>>, ) -> BitmexExecClientConfigBuilder<SetCancellerProxyUrls<S>>
where S::CancellerProxyUrls: IsUnset,

Optional (Some / Option setters). Optional list of proxy URLs for cancel broadcaster pool (path diversity).

Source

pub fn deadmans_switch_timeout_secs( self, value: u64, ) -> BitmexExecClientConfigBuilder<SetDeadmansSwitchTimeoutSecs<S>>
where S::DeadmansSwitchTimeoutSecs: IsUnset,

Optional (Some / Option setters). Optional dead man’s switch timeout in seconds.

When set, a background task periodically calls the BitMEX cancelAllAfter endpoint to keep a server-side timer alive. If the client loses connectivity the timer expires and BitMEX cancels all open orders. Calling with timeout=0 disarms the switch. The refresh interval is derived as timeout / 4 (minimum 1 second).

Source

pub fn maybe_deadmans_switch_timeout_secs( self, value: Option<u64>, ) -> BitmexExecClientConfigBuilder<SetDeadmansSwitchTimeoutSecs<S>>
where S::DeadmansSwitchTimeoutSecs: IsUnset,

Optional (Some / Option setters). Optional dead man’s switch timeout in seconds.

When set, a background task periodically calls the BitMEX cancelAllAfter endpoint to keep a server-side timer alive. If the client loses connectivity the timer expires and BitMEX cancels all open orders. Calling with timeout=0 disarms the switch. The refresh interval is derived as timeout / 4 (minimum 1 second).

Source

pub fn transport_backend( self, value: TransportBackend, ) -> BitmexExecClientConfigBuilder<SetTransportBackend<S>>
where S::TransportBackend: IsUnset,

Optional (Some / Option setters). Default: <TransportBackend as Default>::default().

WebSocket transport backend (defaults to Tungstenite).

Source

pub fn maybe_transport_backend( self, value: Option<TransportBackend>, ) -> BitmexExecClientConfigBuilder<SetTransportBackend<S>>
where S::TransportBackend: IsUnset,

Optional (Some / Option setters). Default: <TransportBackend as Default>::default().

WebSocket transport backend (defaults to Tungstenite).

Auto Trait Implementations§

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.

§

impl<T> Instrument for T

§

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

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

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
§

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

§

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
§

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.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,

§

impl<T> Ungil for T
where T: Send,