use serde::{Deserialize, Serialize}; use super::{AddonScript, File, Hashes, Meta}; #[derive(Debug, Serialize, Deserialize)] pub struct APIAddon { pub id: String, pub namespace: String, pub versions: Vec, #[serde(skip_serializing_if = "Option::is_none")] pub meta: Option, } #[derive(Debug, Serialize, Deserialize)] pub struct APIFile { pub link: Vec, #[serde(skip_serializing_if = "Option::is_none")] pub hashes: Option, #[serde(skip_serializing_if = "Option::is_none")] pub meta: Option, } #[derive(Debug, Serialize, Deserialize)] pub struct AddonDescriptor { pub id: String, pub namespace: String, pub version: String, } #[derive(Debug, Serialize, Deserialize)] pub struct EnvObject { #[serde(skip_serializing_if = "Option::is_none")] pub requested: Option>, #[serde(skip_serializing_if = "Option::is_none")] pub provided: Option>, } #[derive(Debug, Serialize, Deserialize)] pub struct EnvBuilderRequest { pub addonscript: AddonScript, pub addon: AddonDescriptor, #[serde(skip_serializing_if = "Option::is_none")] pub client: Option, #[serde(skip_serializing_if = "Option::is_none")] pub server: Option, } #[derive(Debug, Serialize, Deserialize)] pub struct EnvBuilderResponse { pub addonscript: AddonScript, pub files: Vec, }