tmflib/tmf909/
usage_volume_balance.rs1use super::Quantity;
2use crate::TimePeriod;
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Serialize, Deserialize, Default)]
7pub struct UsageVolumeBalance {
8 #[serde(rename = "@baseType")]
10 #[serde(default, skip_serializing_if = "Option::is_none")]
11 pub base_type: Option<String>,
12 #[serde(rename = "@schemaLocation")]
14 #[serde(default, skip_serializing_if = "Option::is_none")]
15 pub schema_location: Option<String>,
16 #[serde(rename = "@type")]
18 #[serde(default, skip_serializing_if = "Option::is_none")]
19 pub type_: Option<String>,
20 #[serde(default, skip_serializing_if = "Option::is_none")]
22 pub href: Option<String>,
23 #[serde(default, skip_serializing_if = "Option::is_none")]
25 pub id: Option<String>,
26 #[serde(rename = "remainingValue")]
28 #[serde(default, skip_serializing_if = "Option::is_none")]
29 pub remaining_value: Option<Quantity>,
30 #[serde(rename = "remainingValueName")]
32 #[serde(default, skip_serializing_if = "Option::is_none")]
33 pub remaining_value_name: Option<String>,
34 #[serde(rename = "validFor")]
36 #[serde(default, skip_serializing_if = "Option::is_none")]
37 pub valid_for: Option<TimePeriod>,
38}
39impl std::fmt::Display for UsageVolumeBalance {
40 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
41 write!(f, "{}", serde_json::to_string(self).unwrap())
42 }
43}