schedulelib/dto/
public_slots_and_details_response.rs

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
use serde::{Deserialize, Serialize};
use userlib::dto::public_teacher_response::PublicTeacherResponse;

use crate::jsonb::public_schedule::PublicSlot;

#[derive(Serialize, Deserialize, Debug, Clone)]
#[serde(rename_all = "camelCase")]
pub struct PublicSlotsAndDetailsResponse {
    pub slots: Vec<PublicSlot>,
    pub teachers: Vec<PublicTeacherResponse>,
}

impl PartialEq for PublicSlotsAndDetailsResponse {
    fn eq(&self, other: &Self) -> bool {
        // for i in 0..self.slots.len() {
        //     for j in 0..self.slots[i].subgroups.len() {
        //         if self.slots[i].subgroups[j] != other.slots[i].subgroups[j] {
        //             return false
        //         }
        //     }
        // }
        for i in 0..self.teachers.len() {
            if self.teachers[i].id != other.teachers[i].id {
                return false;
            }
        }
        true
    }

    fn ne(&self, other: &Self) -> bool {
        return if self.eq(other) {
            false
        } else {
            true
        }
    }
}