Struct DeribitWebSocketClient

Source
pub struct DeribitWebSocketClient {
    pub config: Arc<WebSocketConfig>,
    pub session: Arc<WebSocketSession>,
    /* private fields */
}
Expand description

WebSocket client for Deribit

Fields§

§config: Arc<WebSocketConfig>

WebSocket configuration

§session: Arc<WebSocketSession>

WebSocket session

Implementations§

Source§

impl DeribitWebSocketClient

Source

pub fn new(config: &WebSocketConfig) -> Result<Self, WebSocketError>

Create a new WebSocket client

Source

pub fn new_with_url(ws_url: String) -> Result<Self, WebSocketError>

Create a new WebSocket client with default configuration

Source

pub fn new_testnet() -> Result<Self, WebSocketError>

Create a new WebSocket client for testnet

Source

pub fn new_production() -> Result<Self, WebSocketError>

Create a new WebSocket client for production

Source

pub async fn connect(&self) -> Result<(), WebSocketError>

Connect to the WebSocket server

Source

pub async fn disconnect(&self) -> Result<(), WebSocketError>

Disconnect from the WebSocket server

Source

pub async fn is_connected(&self) -> bool

Check if connected

Source

pub async fn authenticate( &self, client_id: &str, client_secret: &str, ) -> Result<JsonRpcResponse, WebSocketError>

Authenticate with the server

Source

pub async fn subscribe( &self, channels: Vec<String>, ) -> Result<JsonRpcResponse, WebSocketError>

Subscribe to channels

Source

pub async fn unsubscribe( &self, channels: Vec<String>, ) -> Result<JsonRpcResponse, WebSocketError>

Unsubscribe from channels

Source

pub async fn send_request( &self, request: JsonRpcRequest, ) -> Result<JsonRpcResponse, WebSocketError>

Send a JSON-RPC request

Source

pub async fn send_message(&self, message: String) -> Result<(), WebSocketError>

Send a raw message

Source

pub async fn receive_message(&self) -> Result<String, WebSocketError>

Receive a message

Source

pub async fn get_subscriptions(&self) -> Vec<String>

Get active subscriptions

Source

pub async fn test_connection(&self) -> Result<JsonRpcResponse, WebSocketError>

Test connection

Source

pub async fn get_time(&self) -> Result<JsonRpcResponse, WebSocketError>

Get server time

Source

pub async fn mass_quote( &self, request: MassQuoteRequest, ) -> Result<MassQuoteResult, WebSocketError>

Place mass quotes

Source

pub async fn cancel_quotes( &self, request: CancelQuotesRequest, ) -> Result<CancelQuotesResponse, WebSocketError>

Cancel quotes

Source

pub async fn set_mmp_config( &self, config: MmpGroupConfig, ) -> Result<(), WebSocketError>

Set MMP group configuration

Source

pub async fn get_mmp_config( &self, mmp_group: Option<String>, ) -> Result<Vec<MmpGroupConfig>, WebSocketError>

Get MMP group configuration

Source

pub async fn reset_mmp( &self, mmp_group: Option<String>, ) -> Result<(), WebSocketError>

Reset MMP group

Source

pub async fn get_open_orders( &self, currency: Option<String>, kind: Option<String>, type_filter: Option<String>, ) -> Result<Vec<QuoteInfo>, WebSocketError>

Get open orders (including quotes)

Source

pub fn set_message_handler<F, E>( &mut self, message_callback: F, error_callback: E, )
where F: Fn(&str) -> Result<(), WebSocketError> + Send + Sync + 'static, E: Fn(&str, &WebSocketError) + Send + Sync + 'static,

Set message handler with callbacks The message_callback processes each incoming message and returns Result<(), Error> The error_callback is called only when message_callback returns an error

Source

pub fn set_message_handler_builder(&mut self, handler: MessageHandler)

Set message handler using builder pattern

Source

pub fn clear_message_handler(&mut self)

Remove the current message handler

Source

pub fn has_message_handler(&self) -> bool

Check if message handler is set

Source

pub async fn receive_and_process_message(&self) -> Result<(), WebSocketError>

Receive and process a message using the registered callbacks This method will:

  1. Receive a message from the WebSocket
  2. Call the primary callback with the message
  3. If primary callback returns error, call error callback with message and error
Source

pub async fn start_message_processing_loop(&self) -> Result<(), WebSocketError>

Start message processing loop with callbacks This will continuously receive messages and process them using the registered callbacks The loop will continue until an error occurs or the connection is closed

Trait Implementations§

Source§

impl Debug for DeribitWebSocketClient

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for DeribitWebSocketClient

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

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.

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> 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,