1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177
//! A Catalog object contains an array of Magic datapoints (words, card values, etc). Catalog //! objects are provided by the API as aids for building other Magic software and understanding //! possible values for a field on Card objects. //! //! Visit the oficial [docs](https://scryfall.com/docs/api/catalogs) for more documentation. use serde::{Deserialize, Serialize}; use crate::util::uri::{url_fetch, URI}; #[derive(Serialize, Deserialize, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug)] #[allow(missing_docs)] pub struct Catalog { pub uri: URI<Catalog>, pub data: Vec<String>, } impl Catalog { /// Returns a list of all nontoken English card names in Scryfall’s database. Values are updated /// as soon as a new card is entered for spoiler seasons. /// /// # Examples /// ```rust /// use scryfall::catalog::Catalog; /// assert!(Catalog::card_names().unwrap().data.len() > 0) /// ``` pub fn card_names() -> crate::Result<Self> { url_fetch("https://api.scryfall.com/catalog/card-names") } /// Returns a list of all canonical artist names in Scryfall’s database. This catalog won’t /// include duplicate, misspelled, or funny names for artists. Values are updated as soon as a /// new card is entered for spoiler seasons. /// /// # Examples /// ```rust /// use scryfall::catalog::Catalog; /// assert!(Catalog::artist_names().unwrap().data.len() > 0) /// ``` pub fn artist_names() -> crate::Result<Self> { url_fetch("https://api.scryfall.com/catalog/artist-names") } /// Returns a Catalog of all English words, of length 2 or more, that could appear in a card /// name. Values are drawn from cards currently in Scryfall’s database. Values are updated as /// soon as a new card is entered for spoiler seasons. /// /// # Examples /// ```rust /// use scryfall::catalog::Catalog; /// assert!(Catalog::word_bank().unwrap().data.len() > 0) /// ``` pub fn word_bank() -> crate::Result<Self> { url_fetch("https://api.scryfall.com/catalog/word-bank") } /// Returns a Catalog of all creature types in Scryfall’s database. Values are updated as soon /// as a new card is entered for spoiler seasons. /// /// # Examples /// ```rust /// use scryfall::catalog::Catalog; /// assert!(Catalog::creature_types().unwrap().data.len() > 0) /// ``` pub fn creature_types() -> crate::Result<Self> { url_fetch("https://api.scryfall.com/catalog/creature-types") } /// Returns a Catalog of all Planeswalker types in Scryfall’s database. Values are updated as /// soon as a new card is entered for spoiler seasons. /// /// # Examples /// ```rust /// use scryfall::catalog::Catalog; /// assert!(Catalog::planeswalker_types().unwrap().data.len() > 0) /// ``` pub fn planeswalker_types() -> crate::Result<Self> { url_fetch("https://api.scryfall.com/catalog/planeswalker-types") } /// Returns a Catalog of all Land types in Scryfall’s database. Values are updated as soon as a /// new card is entered for spoiler seasons. /// /// # Examples /// ```rust /// use scryfall::catalog::Catalog; /// assert!(Catalog::land_types().unwrap().data.len() > 0) /// ``` pub fn land_types() -> crate::Result<Self> { url_fetch("https://api.scryfall.com/catalog/land-types") } /// Returns a Catalog of all artifact types in Scryfall’s database. Values are updated as soon /// as a new card is entered for spoiler seasons. /// /// # Examples /// ```rust /// use scryfall::catalog::Catalog; /// assert!(Catalog::artifact_types().unwrap().data.len() > 0) /// ``` pub fn artifact_types() -> crate::Result<Self> { url_fetch("https://api.scryfall.com/catalog/artifact-types") } /// Returns a Catalog of all enchantment types in Scryfall’s database. Values are updated as /// soon as a new card is entered for spoiler seasons. /// /// # Examples /// ```rust /// use scryfall::catalog::Catalog; /// assert!(Catalog::enchantment_types().unwrap().data.len() > 0) /// ``` pub fn enchantment_types() -> crate::Result<Self> { url_fetch("https://api.scryfall.com/catalog/enchantment-types") } /// Returns a Catalog of all spell types in Scryfall’s database. Values are updated as soon as /// a new card is entered for spoiler seasons. /// /// # Examples /// ```rust /// use scryfall::catalog::Catalog; /// assert!(Catalog::spell_types().unwrap().data.len() > 0) /// ``` pub fn spell_types() -> crate::Result<Self> { url_fetch("https://api.scryfall.com/catalog/spell-types") } /// Returns a Catalog of all possible values for a creature or vehicle’s power in Scryfall’s /// database. Values are updated as soon as a new card is entered for spoiler seasons. /// /// # Examples /// ```rust /// use scryfall::catalog::Catalog; /// assert!(Catalog::powers().unwrap().data.len() > 0) /// ``` pub fn powers() -> crate::Result<Self> { url_fetch("https://api.scryfall.com/catalog/powers") } /// Returns a Catalog of all possible values for a creature or vehicle’s toughness in /// Scryfall’s database. Values are updated as soon as a new card is entered for spoiler /// seasons. /// /// # Examples /// ```rust /// use scryfall::catalog::Catalog; /// assert!(Catalog::toughnesses().unwrap().data.len() > 0) /// ``` pub fn toughnesses() -> crate::Result<Self> { url_fetch("https://api.scryfall.com/catalog/toughnesses") } /// Returns a Catalog of all possible values for a Planeswalker’s loyalty in Scryfall’s /// database. Values are updated as soon as a new card is entered for spoiler seasons. /// /// # Examples /// ```rust /// use scryfall::catalog::Catalog; /// assert!(Catalog::loyalties().unwrap().data.len() > 0) /// ``` pub fn loyalties() -> crate::Result<Self> { url_fetch("https://api.scryfall.com/catalog/loyalties") } /// Returns a Catalog of all card watermarks in Scryfall’s database. Values are updated as soon /// as a new card is entered for spoiler seasons. /// /// # Examples /// ```rust /// use scryfall::catalog::Catalog; /// assert!(Catalog::watermarks().unwrap().data.len() > 0) /// ``` pub fn watermarks() -> crate::Result<Self> { url_fetch("https://api.scryfall.com/catalog/watermarks") } }