bangumi_api/module/
model.rs

1use serde::{Deserialize, Serialize};
2use serde_repr::{Deserialize_repr, Serialize_repr};
3
4#[derive(Deserialize, Debug)]
5pub struct Paged<T> {
6    /// 总条目数
7    pub total: u32,
8    /// 每页条目数
9    pub limit: u32,
10    /// 偏移量
11    pub offset: u32,
12    /// 当前页的数据列表
13    pub data: Option<Vec<T>>,
14}
15
16#[derive(Debug, Clone, PartialEq, Eq, Deserialize, Serialize)]
17pub struct Image {
18    pub large: String,
19    pub common: String,
20    pub medium: String,
21    pub small: String,
22    pub grid: String,
23}
24
25#[derive(Clone, Debug, Serialize, Deserialize)]
26#[serde(rename_all = "lowercase")]
27pub enum ImageType {
28    Large,
29    Common,
30    Medium,
31    Small,
32    Grid,
33}
34
35#[derive(Debug, Clone, PartialEq, Eq, Deserialize, Serialize)]
36pub struct SimpleImage {
37    pub large: String,
38    pub medium: String,
39    pub small: String,
40    pub grid: String,
41}
42
43#[derive(Clone, Debug, Serialize, Deserialize)]
44#[serde(rename_all = "lowercase")]
45pub enum SimpleImageType {
46    Large,
47    Medium,
48    Small,
49    Grid,
50}
51
52#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
53#[serde(rename_all = "lowercase")]
54pub enum SearchSort {
55    Match,
56    Heat,
57    Rank,
58    Score,
59}
60
61#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
62#[serde(rename_all = "lowercase")]
63pub enum BrowseSort {
64    Match,
65    Heat,
66    Rank,
67    Score,
68}
69
70#[derive(Debug, Clone, Serialize, Deserialize)]
71pub struct Stat {
72    pub comments: i32,
73    pub collects: i32,
74}
75
76#[derive(Debug, Clone, Serialize_repr, Deserialize_repr)]
77#[repr(u8)]
78pub enum BloodType {
79    A = 1,
80    B = 2,
81    AB = 3,
82    O = 4,
83}
84
85#[derive(Clone, Debug, Serialize, Deserialize)]
86pub struct Tag {
87    pub name: String,
88    pub count: u32,
89    pub total_cont: u32,
90}
91
92pub type InfoBox = Vec<InfoBoxItem>;
93
94#[derive(Clone, Debug, Serialize, Deserialize)]
95pub struct InfoBoxItem {
96    pub key: String,
97    pub value: serde_json::Value,
98}