warframe/market/models/
lich_weapon.rs

1use serde::Deserialize;
2
3use super::{
4    i18n::I18N,
5    impl_queryable,
6};
7
8impl_queryable!(LichWeapon, Array, "/lich/weapons");
9
10/// Represents the `/lich/weapons` endpoint
11#[derive(Debug, Deserialize, PartialEq, Clone)]
12#[serde(rename_all = "camelCase")]
13pub struct LichWeapon {
14    pub id: String,
15    pub slug: String,
16    pub game_ref: String,
17    pub req_mastery_rank: u8,
18    pub i18n: I18N<LichWeaponI18N>,
19}
20
21#[derive(Debug, Deserialize, PartialEq, Clone)]
22#[serde(rename_all = "camelCase")]
23pub struct LichWeaponI18N {
24    pub name: String,
25    pub wiki_link: Option<String>,
26    pub icon: String,
27    pub thumb: String,
28}
29
30#[cfg(test)]
31mod test {
32    use super::LichWeapon;
33    use crate::market::{
34        Queryable,
35        models::ResponseBase,
36    };
37
38    #[rstest::rstest]
39    fn lich_weapon(
40        #[files("src/market/models/fixtures/lich_weapon.json")]
41        #[mode = str]
42        json: &str,
43    ) -> Result<(), serde_json::Error> {
44        serde_json::from_str::<ResponseBase<<LichWeapon as Queryable>::Data>>(json)?;
45
46        Ok(())
47    }
48}