tf2_enum/item_attribute.rs
1//! Serialization utilities.
2
3use crate::AttributeValue;
4use crate::serialize::option_float_as_integers_when_whole;
5use serde::{Deserialize, Serialize};
6
7/// Container type for item attributes.
8#[derive(Debug, Clone, Serialize, Deserialize)]
9pub struct ItemAttribute {
10 /// The defindex of this attribute.
11 pub defindex: u32,
12 /// The attribute value.
13 #[serde(default)]
14 pub value: AttributeValue,
15 /// The attribute float value. This is usually only `None` when value is a string.
16 #[serde(skip_serializing_if = "Option::is_none")]
17 #[serde(serialize_with = "option_float_as_integers_when_whole")]
18 pub float_value: Option<f32>,
19}