brawl_api/model/
mod.rs

1//! Contains models for each documented Brawl Stars API endpoint.
2//!
3//! All models derive/implement the following traits:
4//!
5//! - `Debug`
6//! - `Clone`
7//! - `Hash`
8//! - `PartialEq`
9//! - `Eq`
10//! - [`serde::ser::Serialize`]
11//! - [`serde::de::Deserialize`]
12//! - `Default` (except for Smart Pointer models, such as all `-Leaderboard`s and [`BattleLog`]).
13//!
14//! A few may also implement `PartialOrd` and `Ord`, such as all `-Ranking` structs and the pair
15//! [`ClubMember`] and [`ClubMemberRole`].
16//!
17//! In addition, each endpoint has a different way of fetching, and is associated with a submodule:
18//!
19//! - `/players/:tag` -> [`Player::fetch`] (through the [`PropFetchable`] trait),
20//! [`model::players::player`] module;
21//! - `/players/:tag/battlelog` -> [`BattleLog::fetch`] (through the [`PropFetchable`] trait),
22//! [`model::players::battlelog`] module;
23//! - `/clubs/:tag` -> [`Club::fetch`] (through the [`PropFetchable`] trait),
24//! [`model::clubs`] module;
25//! - `/clubs/:tag/members` -> [`ClubMembers::fetch`] (through the [`PropFetchable`] trait),
26//! [`model::clubs::members`] module;
27//! - `/rankings/:country_code/players?limit=x` -> [`PlayerLeaderboard::fetch`] (through the
28//! [`PropLimFetchable`] trait), [`model::rankings::players`] module;
29//! - `/rankings/:country_code/clubs?limit=x` -> [`ClubLeaderboard::fetch`] (through the
30//! [`PropLimFetchable`] trait), [`model::rankings::clubs`] module;
31//! - `/rankings/:country_code/brawlers/:brawler_id?limit=x` -> [`BrawlerLeaderboard::fetch`]
32//! (direct implementation; no fetching-related traits), [`model::rankings::brawlers`] module;
33//! - `/brawlers/` -> [`BrawlerList::fetch`] (direct implementation), [`model::brawlers`] module;
34//! - `/brawlers/:id` -> [`Brawler::fetch`] (direct implementation), [`model::brawlers`] module.
35//!
36//! [`serde::ser::Serialize`]: https://docs.rs/serde/*/ser/trait.Serialize.html
37//! [`serde::de::Deserialize`]: https://docs.rs/serde/*/de/trait.Deserialize.html
38//! [`BattleLog`]: ./players/battlelog/struct.BattleLog.html
39//! [`ClubMember`]: ./clubs/struct.ClubMember.html
40//! [`ClubMemberRole`]: ./clubs/enum.ClubMemberRole.html
41//! [`Player::fetch`]: ./players/player/struct.Player.html#method.fetch
42//! [`BattleLog::fetch`]: ./players/battlelog/struct.BattleLog.html#method.fetch
43//! [`Club::fetch`]: ./clubs/struct.Club.html#method.fetch
44//! [`ClubMembers::fetch`]: ./clubs/members/struct.ClubMembers.html#method.fetch
45//! [`PlayerLeaderboard::fetch`]: ./rankings/players/struct.PlayerLeaderboard.html#method.fetch
46//! [`ClubLeaderboard::fetch`]: ./rankings/players/struct.ClubLeaderboard.html#method.fetch
47//! [`BrawlerLeaderboard::fetch`]: ./rankings/players/struct.BrawlerLeaderboard.html#method.fetch
48//! [`BrawlerList::fetch`]: ./brawlers/struct.BrawlerList.html#method.fetch
49//! [`Brawler::fetch`]: ./brawlers/struct.Brawler.html#method.fetch
50//! [`PropFetchable`]: traits/propfetch/trait.PropFetchable.html
51//! [`PropLimFetchable`]: traits/proplimfetch/trait.PropLimFetchable.html
52//! [`model::players::player`]: ./players/player/index.html
53//! [`model::players::battlelog`]: ./players/battlelog/index.html
54//! [`model::clubs`]: ./clubs/index.html
55//! [`model::clubs::members`]: ./clubs/members/index.html
56//! [`model::rankings::players`]: ./rankings/players/index.html
57//! [`model::rankings::clubs`]: ./rankings/clubs/index.html
58//! [`model::rankings::brawlers`]: ./rankings/brawlers/index.html
59//! [`model::brawlers`]: ./brawlers/index.html
60
61pub mod common;
62pub use common::*;
63
64#[cfg(feature = "players")]
65pub mod players;
66#[cfg(feature = "players")]
67pub use players::*;
68
69#[cfg(feature = "clubs")]
70pub mod clubs;
71#[cfg(feature = "clubs")]
72pub use clubs::*;
73
74#[cfg(feature = "rankings")]
75pub mod rankings;
76#[cfg(feature = "rankings")]
77pub use rankings::*;
78
79#[cfg(feature = "brawlers")]
80pub mod brawlers;
81#[cfg(feature = "brawlers")]
82pub use brawlers::*;