1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
use serde::Deserialize; #[derive(Debug, Deserialize, PartialEq)] #[serde(rename_all = "PascalCase")] pub struct GbData { pub gradebook: Gradebook, } #[derive(Debug, Deserialize, PartialEq)] #[serde(rename_all = "PascalCase")] pub struct Gradebook { pub courses: Courses, } #[derive(Debug, Deserialize, PartialEq)] #[serde(rename_all = "PascalCase")] pub struct Courses { pub course: Vec<Course> } #[derive(Debug, Deserialize, PartialEq)] #[serde(rename_all = "PascalCase")] pub struct Course { pub period: u8, #[serde(rename = "Title")] pub class_name: String, pub room: u32, pub staff: String, #[serde(rename = "StaffEMail")] pub staff_email: String, #[serde(rename = "Marks")] pub marks: Vec<Marks>, } #[derive(Debug, Deserialize, PartialEq)] #[serde(rename_all = "PascalCase")] pub struct Marks { pub mark: Vec<Mark>, } #[derive(Debug, Deserialize, PartialEq)] #[serde(rename_all = "PascalCase")] pub struct Mark { #[serde(rename = "CalculatedScoreString")] pub grade: char, #[serde(rename = "CalculatedScoreRaw")] pub percent: f32, }