probe_rs_target/serialize/
hex_jep106.rs1use jep106::JEP106Code;
2use serde::{Serialize, Serializer};
3
4use crate::serialize::hex_u_int;
5
6#[derive(Copy, Clone, PartialEq, Eq, Serialize)]
7struct HexJep106 {
8 #[serde(with = "hex_u_int")]
9 id: u8,
10 #[serde(with = "hex_u_int")]
11 cc: u8,
12}
13
14impl From<JEP106Code> for HexJep106 {
15 fn from(jep: JEP106Code) -> Self {
16 Self {
17 id: jep.id,
18 cc: jep.cc,
19 }
20 }
21}
22
23pub fn serialize_option<S>(
24 variant_value: &Option<JEP106Code>,
25 serializer: S,
26) -> Result<S::Ok, S::Error>
27where
28 S: Serializer,
29{
30 match variant_value {
31 Some(val) => {
32 let val = HexJep106::from(*val);
33 serializer.serialize_some(&val)
34 }
35 None => serializer.serialize_none(),
36 }
37}