speedrun_api/types/
common.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
4#[serde(rename_all = "kebab-case")]
5pub struct Link {
6 pub rel: String,
7 pub uri: String,
8}
9
10#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
11#[serde(rename_all = "kebab-case")]
12pub struct Pagination {
13 pub offset: usize,
14 pub max: usize,
15 pub size: usize,
16 pub links: Vec<Link>,
17}
18
19#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
20#[serde(rename_all = "snake_case")]
21pub enum TimingMethod {
22 Realtime,
23 RealtimeNoloads,
24 Ingame,
25}
26
27#[derive(Debug, Clone, PartialEq, Deserialize)]
28#[serde(rename_all = "kebab-case")]
29pub enum ModeratorRole {
30 Moderator,
31 SuperModerator,
32}
33
34#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
35#[serde(rename_all = "kebab-case")]
36pub struct Assets {
37 pub logo: Asset,
38 pub cover_tiny: Asset,
39 pub cover_small: Asset,
40 pub cover_medium: Asset,
41 pub cover_large: Asset,
42 pub icon: Asset,
43 pub trophy_1st: Asset,
44 pub trophy_2nd: Asset,
45 pub trophy_3rd: Asset,
46 pub trophy_4th: Option<Asset>,
47 pub background: Option<Asset>,
48 pub foreground: Option<Asset>,
49}
50
51#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
52#[serde(rename_all = "kebab-case")]
53pub struct Asset {
54 pub uri: Option<String>,
55 pub width: Option<i64>,
56 pub height: Option<i64>,
57}
58
59#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
60#[serde(rename_all = "kebab-case")]
61pub struct Names {
62 pub international: String,
63 pub japanese: Option<String>,
64 pub twitch: Option<String>,
65}
66
67#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
68#[serde(rename_all = "kebab-case")]
69pub struct Root<T> {
70 pub data: T,
71 pub pagination: Option<Pagination>,
72}