use {
crate::models,
serde::{Deserialize, Serialize},
};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct AssetResponse {
#[serde(rename = "legacyId")]
pub legacy_id: String,
#[serde(rename = "assetClass")]
pub asset_class: AssetClass,
#[serde(rename = "onchain")]
pub onchain: models::AssetOnchain,
#[serde(rename = "metadata")]
pub metadata: models::AssetMetadata,
}
impl AssetResponse {
pub fn new(
legacy_id: String,
asset_class: AssetClass,
onchain: models::AssetOnchain,
metadata: models::AssetMetadata,
) -> AssetResponse {
AssetResponse {
legacy_id,
asset_class,
onchain,
metadata,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum AssetClass {
#[serde(rename = "NATIVE")]
Native,
#[serde(rename = "FT")]
Ft,
#[serde(rename = "NFT")]
Nft,
#[serde(rename = "SFT")]
Sft,
}
impl Default for AssetClass {
fn default() -> AssetClass {
Self::Native
}
}