basyx_rs/
asset_information.rs

1// SPDX-FileCopyrightText: 2021 Fraunhofer Institute for Experimental Software Engineering IESE
2// SPDX-FileCopyrightText: 2023 Jan Hecht
3//
4// SPDX-License-Identifier: MIT
5
6use serde::{Deserialize, Serialize};
7
8use crate::asset_kind::AssetKind;
9use crate::{Resource, SpecificAssetId};
10
11#[derive(Clone, PartialEq, Debug, Deserialize, Serialize)]
12pub struct AssetInformation {
13    #[serde(rename = "assetKind")]
14    pub asset_kind: AssetKind,
15
16    #[serde(skip_serializing_if = "Option::is_none")]
17    #[serde(rename = "globalAssetId")]
18    pub global_asset_id: Option<String>,
19
20    #[serde(skip_serializing_if = "Option::is_none")]
21    #[serde(rename = "specificAssetIds")]
22    pub specific_asset_ids: Option<Vec<SpecificAssetId>>,
23
24    #[serde(skip_serializing_if = "Option::is_none")]
25    #[serde(rename = "assetType")]
26    pub asset_type: Option<String>,
27
28    #[serde(skip_serializing_if = "Option::is_none")]
29    #[serde(rename = "defaultThumbnail")]
30    pub default_thumbnail: Option<Resource>,
31}
32
33impl AssetInformation {
34    pub fn new(asset_kind: AssetKind) -> Self {
35        Self {
36            asset_kind,
37            global_asset_id: None,
38            specific_asset_ids: None,
39            asset_type: None,
40            default_thumbnail: None,
41        }
42    }
43}