kiteticker_async_manager/models/
mode.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(
4  Debug, Clone, Deserialize, Serialize, Default, PartialEq, PartialOrd,
5)]
6#[serde(rename_all = "lowercase")]
7///
8/// Modes in which packets are streamed
9///
10pub enum Mode {
11  Full,
12  #[default]
13  Quote,
14  LTP,
15}
16
17impl TryFrom<usize> for Mode {
18  type Error = String;
19  fn try_from(value: usize) -> Result<Self, Self::Error> {
20    match value {
21      8 => Ok(Self::LTP),
22      44 => Ok(Self::Quote),
23      184 => Ok(Self::Full),
24      _ => Err(format!("Invalid packet size: {}", value)),
25    }
26  }
27}