1use crate::{extensions, Extras};
2use gltf_derive::Validate;
3use serde_derive::{Deserialize, Serialize};
4
5#[derive(Clone, Debug, Deserialize, Serialize, Validate)]
7pub struct Asset {
8 #[serde(skip_serializing_if = "Option::is_none")]
10 pub copyright: Option<String>,
11
12 #[serde(default, skip_serializing_if = "Option::is_none")]
14 pub extensions: Option<extensions::asset::Asset>,
15
16 #[serde(default)]
18 #[cfg_attr(feature = "extras", serde(skip_serializing_if = "Option::is_none"))]
19 #[cfg_attr(not(feature = "extras"), serde(skip_serializing))]
20 pub extras: Extras,
21
22 #[serde(skip_serializing_if = "Option::is_none")]
24 pub generator: Option<String>,
25
26 #[serde(rename = "minVersion")]
28 #[serde(skip_serializing_if = "Option::is_none")]
29 pub min_version: Option<String>,
30
31 pub version: String,
33}
34
35impl Default for Asset {
36 fn default() -> Self {
37 Self {
38 copyright: None,
39 extensions: Default::default(),
40 extras: Default::default(),
41 generator: None,
42 min_version: None,
43 version: "2.0".to_string(),
44 }
45 }
46}