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 Error(String),
15 OrderPostback(Result<Order, String>),
17 Message(serde_json::Value),
19 ClosingMessage(serde_json::Value),
21}
22
23impl From<TextMessage> for TickerMessage {
24 fn from(value: TextMessage) -> Self {
25 let message_type: TextMessageType = value.message_type.into();
26 match message_type {
27 TextMessageType::Order => Self::OrderPostback(
28 serde_json::from_value(value.data).map_err(|e| e.to_string()),
29 ),
30 TextMessageType::Error => Self::Error(value.data.to_string()),
31 TextMessageType::Message => Self::Message(value.data),
32 }
33 }
34}