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}