1
Fork 0
mirror of https://github.com/Steffo99/patched-porobot.git synced 2024-10-16 17:47:29 +00:00

Improve docs

This commit is contained in:
Steffo 2022-08-03 16:21:05 +00:00 committed by GitHub
parent 6febd98f2a
commit a7e0c8f1c5
3 changed files with 23 additions and 11 deletions

View file

@ -11,7 +11,9 @@ use super::rarity::CardRarity;
use super::speed::SpellSpeed; use super::speed::SpellSpeed;
/// A single Legends of Runeterra card as represented in the data files from [Data Dragon](https://developer.riotgames.com/docs/lor). /// A single Legends of Runeterra card.
///
/// The information is represented in a developer-friendly manner, but it can be serialized and deserialized via [serde] in the exact same format used in Data Dragon.
#[derive(Clone, Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] #[derive(Clone, Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
#[serde(rename_all="camelCase")] #[serde(rename_all="camelCase")]
pub struct Card { pub struct Card {
@ -23,6 +25,8 @@ pub struct Card {
pub name: String, pub name: String,
/// The [CardType] of the card. /// The [CardType] of the card.
///
/// The `r#` prefix is required by the Rust syntax, since `type` is a reserved keyword.
#[serde(rename = "type")] #[serde(rename = "type")]
pub r#type: CardType, pub r#type: CardType,
@ -70,20 +74,20 @@ pub struct Card {
#[serde(rename = "spellSpeed")] #[serde(rename = "spellSpeed")]
pub spell_speed_localized: String, pub spell_speed_localized: String,
/// List of keywords of this card. /// [Vec] of [CardKeyword]s of the card.
#[serde(rename="keywordRefs")] #[serde(rename="keywordRefs")]
pub keywords: Vec<CardKeyword>, pub keywords: Vec<CardKeyword>,
/// Localized names of keywords of this card. /// [Vec] of localized names of [CardKeyword]s of the card.
#[deprecated = "Only for re-serialization purposes, use keywords instead!"] #[deprecated = "Only for re-serialization purposes, use keywords instead!"]
#[serde(rename="keywords")] #[serde(rename="keywords")]
pub keywords_localized: Vec<String>, pub keywords_localized: Vec<String>,
/// Localized description of the card, in XML. /// Localized description of the card, in pseudo-XML.
pub description: String, pub description: String,
/// Localized description of the card, in plain text. /// Localized description of the card, in plain text.
pub description_raw: String, pub description_raw: String,
/// Localized level up text of the card, in XML. /// Localized level up text of the card, in pseudo-XML.
/// ///
/// If the card has no level up text, contains an empty string. /// If the card has no level up text, contains an empty string.
pub levelup_description: String, pub levelup_description: String,
@ -92,12 +96,12 @@ pub struct Card {
/// If the card has no level up text, contains an empty string. /// If the card has no level up text, contains an empty string.
pub levelup_description_raw: String, pub levelup_description_raw: String,
/// [Codes](code) of other cards associated with this one. /// [Vec] with [code]s of other cards associated with this one.
/// ///
/// To access references to the cards themselves, use [associated_cards]. /// To access references to the cards themselves, use [associated_cards].
#[serde(rename = "associatedCardRefs")] #[serde(rename = "associatedCardRefs")]
pub associated_card_codes: Vec<String>, pub associated_card_codes: Vec<String>,
/// [Names](name) of other cards associated with this one. /// [Vec] with [name]s of other cards associated with this one.
/// ///
/// Sometimes, it may be missing some references. /// Sometimes, it may be missing some references.
#[deprecated = "Only for re-serialization purposes, use associated_card_codes instead!"] #[deprecated = "Only for re-serialization purposes, use associated_card_codes instead!"]
@ -109,9 +113,17 @@ pub struct Card {
/// Name of the artist who drew the card. /// Name of the artist who drew the card.
pub artist_name: String, pub artist_name: String,
/// The subtypes the card has, such as `PORO`. /// The subtypes the card has, such as `"PORO"`.
///
/// Beware of Riot's inconsistent capitalization!
///
/// TODO: Make this a enum.
pub subtypes: Vec<String>, pub subtypes: Vec<String>,
/// The [CardSupertype] the card belongs to, such as `Champion`. /// The supertype the card belongs to, such as `"Champion"`.
///
/// Beware of Riot's inconsistent capitalization!
///
/// TODO: Make this a enum.
pub supertype: String, pub supertype: String,
} }

View file

@ -6,7 +6,7 @@
#[non_exhaustive] #[non_exhaustive]
#[derive(Clone, Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] #[derive(Clone, Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
pub enum CardKeyword { pub enum CardKeyword {
/// Overwhelm on spells. /// Like [CardKeyword::Overwhelm], but on [super::CardType::Spell]s.
/// ///
/// > Inflicts damage beyond what would kill the target(s) to the enemy Nexus. /// > Inflicts damage beyond what would kill the target(s) to the enemy Nexus.
SpellOverwhelm, SpellOverwhelm,

View file

@ -1,4 +1,4 @@
//! Module defining [Type]. //! Module defining [CardType].
/// A possible card type. /// A possible card type.