pub mod condition; pub mod interface; pub mod protocol; use crate::{ condition::{Condition, Property}, protocol::Task, }; use crossbeam_channel::Sender; use interface::network_loop; use protocol::{ClientboundPacket, ServerboundPacket}; fn main() { network_loop(); } pub fn handle_packet(client: u32, packet: ServerboundPacket, responder: Sender) { println!("{:?}, {:?}, {:?}", client, packet, responder); match packet { ServerboundPacket::Download => { let _ = responder.send(ClientboundPacket::DownloadResponse(vec![Task { name: "blub".to_string(), description: "blob".to_string(), tags: vec![], priority: 69.0, completed: None, scheduled: None, occurence: Some(Condition::And(vec![ Condition::Equal { modulus: None, prop: Property::Monthofyear, value: 1, }, Condition::Equal { modulus: None, prop: Property::Hour, value: 12, }, ])), deadline: None, }])); } } }