From e4a1fbbd596b5466b266a077cddd104933b4fbcf Mon Sep 17 00:00:00 2001 From: littleblack111 Date: Mon, 1 Sep 2025 18:06:03 +0800 Subject: init --- src/client/connector.rs | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/client/connector.rs (limited to 'src/client/connector.rs') diff --git a/src/client/connector.rs b/src/client/connector.rs new file mode 100644 index 0000000..a846939 --- /dev/null +++ b/src/client/connector.rs @@ -0,0 +1,41 @@ +mod connectors; +pub(crate) mod manager; + +use std::{ + sync::mpsc::{channel, Receiver, Sender}, + thread::sleep, + time, +}; + +struct Channel { + sender: Sender, + receiver: Receiver<()>, +} + +impl Channel { + fn new() -> Self { + let (sender, _): (Sender, Receiver) = channel(); + let (_, receiver): (Sender<()>, Receiver<()>) = channel(); + Self { sender, receiver } + } +} + +trait Connection { + type Err: std::fmt::Display; + type Success: std::fmt::Display = String; + + fn test_connection(&self) -> Result; + + // should use channel to notify update + async fn update(&self) -> Option>; // None if no update(content is same) + + async fn r#loop(&self) -> ! { + loop { + if let Some(Err(e)) = self.update().await { + eprintln!("Error: {}", e) + } + + sleep(time::Duration::from_secs(1)); + } + } +} -- cgit v1.2.3