From 1128502b800508a672712cc9fc3050c2bf9465a4 Mon Sep 17 00:00:00 2001 From: bitfl0wer Date: Tue, 14 Nov 2023 21:14:05 +0100 Subject: [PATCH] start converting struct impl into trait impl --- src/gateway/gateway.rs | 48 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/src/gateway/gateway.rs b/src/gateway/gateway.rs index b4149db..7aaae67 100644 --- a/src/gateway/gateway.rs +++ b/src/gateway/gateway.rs @@ -26,9 +26,14 @@ pub struct Gateway { url: String, } -impl Gateway { +impl + GatewayCapable< + WebSocketStream>, + WebSocketStream>, + > for Gateway +{ #[allow(clippy::new_ret_no_self)] - pub async fn new(websocket_url: String) -> Result { + async fn new(websocket_url: String) -> Result { let mut roots = rustls::RootCertStore::empty(); for cert in rustls_native_certs::load_native_certs().expect("could not load platform certs") { @@ -415,6 +420,45 @@ impl Gateway { .unwrap(); } } + + fn get_events(&self) -> Arc> { + self.events.clone() + } + + fn get_websocket_send( + &self, + ) -> Arc>, Message>>> { + self.websocket_send.clone() + } + + fn get_store(&self) -> GatewayStore { + self.store.clone() + } + + fn get_url(&self) -> String { + self.url + } + + fn get_handle( + &self, + websocket_url: &'static str, + ) -> Result< + Box< + dyn GatewayHandleCapable< + Box< + dyn GatewayCapable< + WebSocketStream>, + WebSocketStream>, + >, + >, + WebSocketStream>, + WebSocketStream>, + >, + >, + GatewayError, + > { + todo!() + } } pub mod event {