lighthouse_protocol/payload/
directory_tree.rs1use std::{collections::HashMap, fmt};
2use serde::{Serialize, Deserialize};
3
4#[derive(Debug, Serialize, Deserialize, PartialEq, Eq, Clone)]
6#[serde(transparent)]
7pub struct DirectoryTree {
8 pub entries: HashMap<String, Option<DirectoryTree>>,
9}
10
11impl fmt::Display for DirectoryTree {
12 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
13 write!(f, "{{")?;
14 let count = self.entries.len();
15 for (i, (key, value)) in self.entries.iter().enumerate() {
16 write!(f, "\"{}\": ", key)?;
17 if let Some(value) = value {
18 write!(f, "{}", value)?;
19 } else {
20 write!(f, "None")?;
21 }
22 if i < count - 1 {
23 write!(f, ", ")?;
24 }
25 }
26 write!(f, "}}")?;
27 Ok(())
28 }
29}