diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2025-09-01 20:02:50 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2025-09-01 20:02:50 +0800 |
| commit | 8a965abeb34ddb1464edab5566c5219a41e56a97 (patch) | |
| tree | e0750a4946b54a2d783d5c55ed4adc599ace9fd9 | |
| parent | 76a2350a9cf4f79c1f03bd9abffb8daaf47e834d (diff) | |
connector: use static dispatch for connector type
| -rw-r--r-- | src/client/connector.rs | 2 | ||||
| -rw-r--r-- | src/client/connector/connectors.rs | 4 | ||||
| -rw-r--r-- | src/client/connector/manager.rs | 10 | ||||
| -rw-r--r-- | src/client/main.rs | 9 |
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(); } |
