use crate::{extensions, Extras}; use gltf_derive::Validate; use serde_derive::{Deserialize, Serialize}; /// Metadata about the glTF asset. #[derive(Clone, Debug, Deserialize, Serialize, Validate)] pub struct Asset { /// A copyright message suitable for display to credit the content creator. #[serde(skip_serializing_if = "Option::is_none")] pub copyright: Option, /// Extension specific data. #[serde(default, skip_serializing_if = "Option::is_none")] pub extensions: Option, /// Optional application specific data. #[serde(default)] #[cfg_attr(feature = "extras", serde(skip_serializing_if = "Option::is_none"))] #[cfg_attr(not(feature = "extras"), serde(skip_serializing))] pub extras: Extras, /// Tool that generated this glTF model. #[serde(skip_serializing_if = "Option::is_none")] pub generator: Option, /// The minimum glTF version that this asset targets. #[serde(rename = "minVersion")] #[serde(skip_serializing_if = "Option::is_none")] pub min_version: Option, /// The glTF version of this asset. pub version: String, } impl Default for Asset { fn default() -> Self { Self { copyright: None, extensions: Default::default(), extras: Default::default(), generator: None, min_version: None, version: "2.0".to_string(), } } }