parallel_disk_usage/
json_data.rs1pub mod binary_version;
2pub mod schema_version;
3
4pub use binary_version::BinaryVersion;
5pub use schema_version::SchemaVersion;
6
7use crate::{
8 data_tree::Reflection,
9 size::{Blocks, Bytes},
10};
11use derive_more::{From, TryInto};
12
13#[cfg(feature = "json")]
14use serde::{Deserialize, Serialize};
15
16#[derive(Debug, Clone, From, TryInto)]
18#[cfg_attr(feature = "json", derive(Deserialize, Serialize))]
19#[cfg_attr(feature = "json", serde(tag = "unit", content = "tree"))]
20#[cfg_attr(feature = "json", serde(rename_all = "kebab-case"))]
21pub enum UnitAndTree {
22 Bytes(Reflection<String, Bytes>),
24 Blocks(Reflection<String, Blocks>),
26}
27
28#[derive(Debug, Clone)]
31#[cfg_attr(feature = "json", derive(Deserialize, Serialize))]
32#[cfg_attr(feature = "json", serde(rename_all = "kebab-case"))]
33pub struct JsonData {
34 pub schema_version: SchemaVersion,
36 #[cfg_attr(feature = "json", serde(rename = "pdu"))]
38 pub binary_version: Option<BinaryVersion>,
39 #[cfg_attr(feature = "json", serde(flatten))]
41 pub unit_and_tree: UnitAndTree,
42}