use serde::{Deserialize, Serialize};
use url::Url;
use CatalogResource::*;
use crate::resources::{HttpResource, ResourceKind};
pub enum CatalogResource {
AbilityWords,
ArtifactTypes,
ArtistNames,
CardNames,
CreatureTypes,
EnchantmentTypes,
KeywordAbilities,
KeywordActions,
LandTypes,
Loyalties,
PlaneswalkerTypes,
Powers,
SpellTypes,
Toughnesses,
Watermarks,
WordBank,
}
impl HttpResource<Catalog> for CatalogResource {
fn path(&self) -> String {
format!("catalog/{}", match self {
AbilityWords => "ability-words",
ArtifactTypes => "artifact-types",
ArtistNames => "artist-names",
CardNames => "card-names",
CreatureTypes => "creature-types",
EnchantmentTypes => "enchantment-types",
KeywordAbilities => "keyword-abilities",
KeywordActions => "keyword-actions",
LandTypes => "land-types",
Loyalties => "loyalties",
PlaneswalkerTypes => "planeswalker-types",
Powers => "powers",
SpellTypes => "spell-types",
Toughnesses => "toughnesses",
Watermarks => "watermarks",
WordBank => "word-bank",
})
}
}
#[derive(Serialize, Deserialize, Debug, PartialEq)]
pub struct Catalog {
#[serde(rename = "object")]
pub kind: ResourceKind,
pub uri: Option<Url>,
pub total_values: i64,
pub data: Vec<String>,
}