kiteticker_async_manager/models/
ticker_message.rs1use crate::{Order, TextMessage, TickMessage};
2
3use super::text_message::TextMessageType;
4
5#[derive(Debug, Clone)]
6pub enum TickerMessage {
10 Ticks(Vec<TickMessage>),
12 Error(String),
14 OrderPostback(Result<Order, String>),
16 Message(serde_json::Value),
18 ClosingMessage(serde_json::Value),
20}
21
22impl From<TextMessage> for TickerMessage {
23 fn from(value: TextMessage) -> Self {
24 let message_type: TextMessageType = value.message_type.into();
25 match message_type {
26 TextMessageType::Order => Self::OrderPostback(
27 serde_json::from_value(value.data).map_err(|e| e.to_string()),
28 ),
29 TextMessageType::Error => Self::Error(value.data.to_string()),
30 TextMessageType::Message => Self::Message(value.data),
31 }
32 }
33}