oca_bundle/state/
entries.rs1use serde::{ser::SerializeMap, Deserialize, Serialize};
2use std::collections::HashMap;
3
4impl Serialize for EntriesElement {
5 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
6 where
7 S: serde::Serializer,
8 {
9 use std::collections::BTreeMap;
10
11 match self {
12 Self::Sai(sai) => serializer.serialize_str(sai),
13 Self::Object(entries) => {
14 let sorted_entries: BTreeMap<_, _> = entries.iter().collect();
15 let mut map = serializer.serialize_map(Some(entries.len()))?;
16 for (k, v) in sorted_entries {
17 map.serialize_entry(k, v)?;
18 }
19 map.end()
20 }
21 }
22 }
23}
24
25#[derive(Deserialize, Debug, Clone)]
26#[serde(untagged)]
27pub enum EntriesElement {
28 Sai(String),
29 Object(HashMap<String, String>),
30}