1use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Deserialize)]
10pub struct DeckStats {
11 pub name: String,
13 #[serde(default, alias = "newCount", alias = "new_count")]
15 pub new_count: i64,
16 #[serde(default, alias = "learnCount", alias = "learn_count")]
18 pub learn_count: i64,
19 #[serde(default, alias = "reviewCount", alias = "review_count")]
21 pub review_count: i64,
22 #[serde(default, alias = "totalInDeck", alias = "total_in_deck")]
24 pub total_in_deck: i64,
25}
26
27#[derive(Debug, Clone, Serialize, Deserialize)]
32#[serde(rename_all = "camelCase")]
33pub struct DeckConfig {
34 pub id: i64,
36 pub name: String,
38 #[serde(default)]
40 pub max_taken: i64,
41 #[serde(default)]
43 pub replayq: bool,
44 #[serde(default)]
46 pub autoplay: bool,
47 #[serde(default)]
49 pub timer: i64,
50 pub new: NewCardConfig,
52 pub rev: ReviewConfig,
54 pub lapse: LapseConfig,
56}
57
58#[derive(Debug, Clone, Serialize, Deserialize)]
60#[serde(rename_all = "camelCase")]
61pub struct NewCardConfig {
62 #[serde(default)]
64 pub delays: Vec<f64>,
65 #[serde(default)]
67 pub order: i64,
68 #[serde(default)]
70 pub initial_factor: i64,
71 #[serde(default)]
73 pub separate: bool,
74 #[serde(default)]
76 pub ints: Vec<i64>,
77 #[serde(default)]
79 pub per_day: i64,
80}
81
82#[derive(Debug, Clone, Serialize, Deserialize)]
84#[serde(rename_all = "camelCase")]
85pub struct ReviewConfig {
86 #[serde(default)]
88 pub per_day: i64,
89 #[serde(default)]
91 pub ease4: f64,
92 #[serde(default)]
94 pub fuzz: f64,
95 #[serde(default)]
97 pub min_space: i64,
98 #[serde(default)]
100 pub max_ivl: i64,
101 #[serde(default)]
103 pub bury: bool,
104 #[serde(default)]
106 pub hard_factor: f64,
107}
108
109#[derive(Debug, Clone, Serialize, Deserialize)]
111#[serde(rename_all = "camelCase")]
112pub struct LapseConfig {
113 #[serde(default)]
115 pub delays: Vec<f64>,
116 #[serde(default)]
118 pub leech_fails: i64,
119 #[serde(default)]
121 pub leech_action: i64,
122 #[serde(default)]
124 pub min_int: i64,
125 #[serde(default)]
127 pub mult: f64,
128}