Skip to main content

motorcortex_rust/connection/
connection_trait.rs

1use crate::error::Result;
2use crate::{ConnectionOptions, Request, Subscribe};
3
4/// Define a common trait for connection management
5pub trait Connection {
6    /// Connect to a server
7    fn connect(&mut self, url: &str, options: ConnectionOptions) -> Result<()>;
8
9    /// Disconnect from the server
10    fn disconnect(&mut self) -> Result<()>;
11}
12
13/// Implement the common trait for `Request`
14impl Connection for Request {
15    fn connect(&mut self, url: &str, options: ConnectionOptions) -> Result<()> {
16        self.connect(url, options)
17    }
18
19    fn disconnect(&mut self) -> Result<()> {
20        self.disconnect()
21    }
22}
23
24/// Implement the common trait for `Subscribe`
25impl Connection for Subscribe {
26    fn connect(&mut self, url: &str, options: ConnectionOptions) -> Result<()> {
27        self.connect(url, options)
28    }
29
30    fn disconnect(&mut self) -> Result<()> {
31        self.disconnect()
32    }
33}