leetcode_api/leetcode/question/
pb_list.rs

1use serde::{Deserialize, Serialize};
2
3use crate::entities::topic_tags;
4
5#[derive(Clone)]
6#[derive(Debug)]
7#[derive(Default)]
8#[derive(PartialEq)]
9#[derive(Serialize, Deserialize)]
10pub struct PbListData {
11    #[serde(default)]
12    pub data: DataInner,
13}
14#[derive(Clone)]
15#[derive(Debug)]
16#[derive(Default)]
17#[derive(PartialEq)]
18#[derive(Serialize, Deserialize)]
19pub struct DataInner {
20    #[serde(default, alias = "problemsetQuestionList")]
21    pub problemset_question_list: ProblemsetQuestionList,
22}
23
24#[derive(Clone)]
25#[derive(Debug)]
26#[derive(Default)]
27#[derive(PartialEq)]
28#[derive(Serialize, Deserialize)]
29pub struct ProblemsetQuestionList {
30    // #[serde(default, alias = "hasMore")]
31    // pub has_more:  bool, // for leetcode.cn
32    #[serde(default)]
33    pub total: u32,
34    #[serde(default)]
35    pub questions: Vec<NewIndex>,
36}
37
38#[derive(Clone)]
39#[derive(Debug)]
40#[derive(Default)]
41#[derive(PartialEq)]
42#[derive(Serialize, Deserialize)]
43pub struct NewIndex {
44    #[serde(default, alias = "titleSlug")]
45    pub title_slug: String,
46    #[serde(default)]
47    pub title: String,
48    #[serde(default, alias = "titleCn")]
49    pub title_cn: Option<String>,
50    #[serde(default, alias = "isFavor")]
51    pub is_favor: bool,
52    #[serde(default, alias = "frontendQuestionId")]
53    pub frontend_question_id: String,
54    #[serde(default, alias = "paidOnly")]
55    pub paid_only: bool,
56    #[serde(default)]
57    pub difficulty: String,
58    #[serde(default)]
59    pub status: Option<String>,
60    #[serde(default, alias = "acRate")]
61    pub ac_rate: f64,
62    #[serde(default, alias = "topicTags")]
63    pub topic_tags: Option<Vec<topic_tags::Model>>,
64}