summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2025-09-01 20:02:50 +0800
committerlittleblack111 <littleblack11111@gmail.com>2025-09-01 20:02:50 +0800
commit8a965abeb34ddb1464edab5566c5219a41e56a97 (patch)
treee0750a4946b54a2d783d5c55ed4adc599ace9fd9
parent76a2350a9cf4f79c1f03bd9abffb8daaf47e834d (diff)
connector: use static dispatch for connector type
-rw-r--r--src/client/connector.rs2
-rw-r--r--src/client/connector/connectors.rs4
-rw-r--r--src/client/connector/manager.rs10
-rw-r--r--src/client/main.rs9
4 files changed, 10 insertions, 15 deletions
diff --git a/src/client/connector.rs b/src/client/connector.rs
index e49d08e..82dc487 100644
--- a/src/client/connector.rs
+++ b/src/client/connector.rs
@@ -20,7 +20,7 @@ impl<C: Connection> Channel<C> {
}
}
-trait Connection {
+pub(crate) trait Connection {
type Err: std::fmt::Display;
type Success: std::fmt::Display = String;
diff --git a/src/client/connector/connectors.rs b/src/client/connector/connectors.rs
index 4c14ad9..f495d63 100644
--- a/src/client/connector/connectors.rs
+++ b/src/client/connector/connectors.rs
@@ -1,5 +1 @@
pub(crate) mod httpconnector;
-
-pub(crate) enum Connectors<'a> {
- Http(httpconnector::HTTPConnector<'a>),
-}
diff --git a/src/client/connector/manager.rs b/src/client/connector/manager.rs
index 7227303..67cf0a9 100644
--- a/src/client/connector/manager.rs
+++ b/src/client/connector/manager.rs
@@ -1,13 +1,13 @@
-use crate::connector::connectors;
+use crate::connector::Connection;
use std::thread;
-pub(crate) struct ConnectorManager<'a> {
- connector: connectors::Connectors<'a>,
+pub(crate) struct ConnectorManager<C: Connection> {
+ connector: C,
thread: Option<thread::JoinHandle<!>>,
}
-impl<'a> ConnectorManager<'a> {
- pub(crate) fn new(connector: connectors::Connectors<'a>) -> Self {
+impl<C: Connection> ConnectorManager<C> {
+ pub(crate) fn new(connector: C) -> Self {
Self {
connector,
thread: None,
diff --git a/src/client/main.rs b/src/client/main.rs
index 93eb511..4ef7a9b 100644
--- a/src/client/main.rs
+++ b/src/client/main.rs
@@ -2,12 +2,11 @@
use std::thread;
-use crate::connector::connectors::{httpconnector::HTTPConnector, Connectors};
+use crate::connector::{connectors::httpconnector::HTTPConnector, manager::ConnectorManager};
mod connector;
fn main() {
- connector::manager::ConnectorManager::new(Connectors::Http(
- HTTPConnector::new("https://google.com").unwrap(),
- ))
- .start();
+ ConnectorManager::new(HTTPConnector::new("https://example.com").unwrap()).start();
+
+ thread::park();
}