reifydb_sub_server/
format.rs1use serde::{Deserialize, Deserializer, Serialize, de::Error as _};
5
6#[derive(Debug, Clone, Copy, Serialize, PartialEq, Eq, Default)]
7#[serde(rename_all = "lowercase")]
8pub enum WireFormat {
9 Json,
10 #[default]
11 Frames,
12 Rbcf,
13}
14
15impl<'de> Deserialize<'de> for WireFormat {
16 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
17 where
18 D: Deserializer<'de>,
19 {
20 let raw = String::deserialize(deserializer)?;
21 match raw.to_ascii_lowercase().as_str() {
22 "json" => Ok(WireFormat::Json),
23 "frames" => Ok(WireFormat::Frames),
24 "rbcf" => Ok(WireFormat::Rbcf),
25 other => Err(D::Error::custom(format!(
26 "unknown wire format `{other}`: expected json, frames, or rbcf"
27 ))),
28 }
29 }
30}