kiteticker_async_manager/models/
ticker_message.rs1use crate::{Order, TextMessage, TickMessage};
2use serde::{Deserialize, Serialize};
3
4use super::text_message::TextMessageType;
5
6#[derive(Debug, Clone, Serialize, Deserialize)]
7pub enum TickerMessage {
11 Ticks(Vec<TickMessage>),
13 Raw(Vec<u8>),
15 Error(String),
17 OrderPostback(Result<Order, String>),
19 Message(serde_json::Value),
21 ClosingMessage(serde_json::Value),
23}
24
25impl From<TextMessage> for TickerMessage {
26 fn from(value: TextMessage) -> Self {
27 let message_type: TextMessageType = value.message_type.into();
28 match message_type {
29 TextMessageType::Order => Self::OrderPostback(
30 serde_json::from_value(value.data).map_err(|e| e.to_string()),
31 ),
32 TextMessageType::Error => Self::Error(value.data.to_string()),
33 TextMessageType::Message => Self::Message(value.data),
34 }
35 }
36}