neis_client/types/
mod.rs

1mod academy_info;
2mod class_info;
3mod class_room_info;
4mod els_timetable;
5mod his_timetable;
6mod meal_service;
7mod mis_timetable;
8mod school_aflco_info;
9mod school_info;
10mod school_major_info;
11mod school_schedule;
12mod sps_timetable;
13
14pub use academy_info::{AcademyInfoItem, AcademyInfoParams};
15pub use class_info::{ClassInfoItem, ClassInfoParams};
16pub use class_room_info::{ClassRoomInfoItem, ClassRoomInfoParams};
17pub use els_timetable::{ElsTimetableItem, ElsTimetableParams};
18pub use his_timetable::{HisTimetableItem, HisTimetableParams};
19pub use meal_service::{MealServiceItem, MealServiceParams};
20pub use mis_timetable::{MisTimetableItem, MisTimetableParams};
21pub use school_aflco_info::{SchoolAflcoInfoItem, SchoolAflcoInfoParams};
22pub use school_info::{SchoolInfoItem, SchoolInfoParams};
23pub use school_major_info::{SchoolMajorInfoItem, SchoolMajorInfoParams};
24pub use school_schedule::{SchoolScheduleItem, SchoolScheduleParams};
25use serde::Deserialize;
26pub use sps_timetable::{SpsTimetableItem, SpsTimetableParams};
27
28#[derive(Debug, Clone, Deserialize, Hash, PartialEq)]
29pub enum YesOrNo {
30    Y,
31    N,
32}
33
34pub trait ToQueryString {
35    fn to_query_string(&self) -> String;
36}
37
38fn deserialize_u8_from_string<'de, D>(deserializer: D) -> Result<u8, D::Error>
39where
40    D: serde::de::Deserializer<'de>,
41{
42    String::deserialize(deserializer)?
43        .parse()
44        .map_err(serde::de::Error::custom)
45}
46
47fn deserialize_i32_from_string<'de, D>(deserializer: D) -> Result<i32, D::Error>
48where
49    D: serde::de::Deserializer<'de>,
50{
51    String::deserialize(deserializer)?
52        .parse()
53        .map_err(serde::de::Error::custom)
54}
55
56fn deserialize_i32_from_f64<'de, D>(deserializer: D) -> Result<i32, D::Error>
57where
58    D: serde::de::Deserializer<'de>,
59{
60    let n = f64::deserialize(deserializer)?;
61    Ok(n as i32)
62}