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
use serde::Deserialize;

#[derive(Debug, Deserialize, PartialEq)]
pub struct StudentClassSchedule {
    #[serde(rename = "StudentClassSchedule")]
    pub schedule: Schedule,
}

#[derive(Debug, Deserialize, PartialEq)]
pub struct Schedule {
    #[serde(rename = "TermIndex")]
    pub term: u8,
    #[serde(rename = "ClassLists")]
    pub class_list: ClassList,
}

#[derive(Debug, Deserialize, PartialEq)]
pub struct ClassList {
    #[serde(rename = "ClassListing")]
    pub class: Vec<Class>,
}

#[derive(Debug, Deserialize, PartialEq)]
#[serde(rename_all = "PascalCase")]
pub struct Class {
    pub period: u8,
    pub course_title: String,
    pub room_name: String, // damn CAFE
    pub teacher: String,
    pub teacher_email: String,
}