Skip to main content

BitmexDataClientConfigBuilder

Struct BitmexDataClientConfigBuilder 

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

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

Implementations§

Source§

impl<S: State> BitmexDataClientConfigBuilder<S>

Source

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

Finish building and return the requested object

Source

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

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

Source

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

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

Source

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

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

Source

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

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

Source

pub fn base_url_http( self, value: String, ) -> BitmexDataClientConfigBuilder<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>, ) -> BitmexDataClientConfigBuilder<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, ) -> BitmexDataClientConfigBuilder<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>, ) -> BitmexDataClientConfigBuilder<SetBaseUrlWs<S>>
where S::BaseUrlWs: IsUnset,

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

Source

pub fn proxy_url( self, value: String, ) -> BitmexDataClientConfigBuilder<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>, ) -> BitmexDataClientConfigBuilder<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, ) -> BitmexDataClientConfigBuilder<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>, ) -> BitmexDataClientConfigBuilder<SetHttpTimeoutSecs<S>>
where S::HttpTimeoutSecs: IsUnset,

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

REST timeout in seconds.

Source

pub fn max_retries( self, value: u32, ) -> BitmexDataClientConfigBuilder<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>, ) -> BitmexDataClientConfigBuilder<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, ) -> BitmexDataClientConfigBuilder<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>, ) -> BitmexDataClientConfigBuilder<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, ) -> BitmexDataClientConfigBuilder<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>, ) -> BitmexDataClientConfigBuilder<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, ) -> BitmexDataClientConfigBuilder<SetHeartbeatIntervalSecs<S>>
where S::HeartbeatIntervalSecs: IsUnset,

Optional (Some / Option setters). Optional heartbeat interval (seconds) for the WebSocket client.

Source

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

Optional (Some / Option setters). Optional heartbeat interval (seconds) for the WebSocket client.

Source

pub fn recv_window_ms( self, value: u64, ) -> BitmexDataClientConfigBuilder<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 30_000ms = 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>, ) -> BitmexDataClientConfigBuilder<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 30_000ms = 30s) if you experience request expiration errors due to clock drift or high network latency.

Source

pub fn active_only( self, value: bool, ) -> BitmexDataClientConfigBuilder<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>, ) -> BitmexDataClientConfigBuilder<SetActiveOnly<S>>
where S::ActiveOnly: IsUnset,

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

When true, only active instruments are requested during bootstrap.

Source

pub fn update_instruments_interval_mins( self, value: u64, ) -> BitmexDataClientConfigBuilder<SetUpdateInstrumentsIntervalMins<S>>
where S::UpdateInstrumentsIntervalMins: IsUnset,

Optional (Some / Option setters). Optional interval (minutes) for instrument refresh from REST.

Source

pub fn maybe_update_instruments_interval_mins( self, value: Option<u64>, ) -> BitmexDataClientConfigBuilder<SetUpdateInstrumentsIntervalMins<S>>
where S::UpdateInstrumentsIntervalMins: IsUnset,

Optional (Some / Option setters). Optional interval (minutes) for instrument refresh from REST.

Source

pub fn environment( self, value: BitmexEnvironment, ) -> BitmexDataClientConfigBuilder<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>, ) -> BitmexDataClientConfigBuilder<SetEnvironment<S>>
where S::Environment: IsUnset,

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

BitMEX environment (mainnet or testnet).

Source

pub fn max_requests_per_second( self, value: u32, ) -> BitmexDataClientConfigBuilder<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>, ) -> BitmexDataClientConfigBuilder<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, ) -> BitmexDataClientConfigBuilder<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>, ) -> BitmexDataClientConfigBuilder<SetMaxRequestsPerMinute<S>>
where S::MaxRequestsPerMinute: IsUnset,

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

Maximum number of requests per minute (rolling window).

Source

pub fn transport_backend( self, value: TransportBackend, ) -> BitmexDataClientConfigBuilder<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>, ) -> BitmexDataClientConfigBuilder<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,