rusftx 0.4.0

Rust bindings for the FTX REST and Websocket API
Documentation
use crate::rest::model::fill::Fill;
use crate::ws::incoming_message::UpdateType;

#[derive(Debug)]
pub struct FillsUpdatedMessage {
    pub fill: Fill,
}

#[derive(Debug, serde::Deserialize)]
pub struct RawFillsUpdatedMessage {
    #[serde(rename = "type")]
    pub _type: UpdateType,
    #[serde(rename = "channel")]
    pub _channel: FillsChannel,
    pub data: Fill,
}

#[derive(Debug, serde::Deserialize)]
pub enum FillsChannel {
    #[serde(rename = "fills")]
    Fills,
}

impl From<RawFillsUpdatedMessage> for FillsUpdatedMessage {
    fn from(raw_fills_updated_message: RawFillsUpdatedMessage) -> Self {
        FillsUpdatedMessage {
            fill: raw_fills_updated_message.data,
        }
    }
}

#[cfg(test)]
mod tests {
    #[test]
    fn deserialize_from_json() {
        let json = include_str!("../../../tests/ws/fills_message.json");
        let _fills_updated_message: super::RawFillsUpdatedMessage =
            serde_json::from_str(json).unwrap();
    }
}