diff options
author | 2024-03-28 19:19:46 +0100 | |
---|---|---|
committer | 2024-03-28 19:19:46 +0100 | |
commit | e1c0e90581b7ce97f87ddf43267ceb32e28447e3 (patch) | |
tree | a347bfed5552256fcbe5d54798814a1a1d24cf0a /src/connection_details.rs | |
parent | b4e12fd1165b5e3960a1294dadec45eb40893b37 (diff) |
✨ (client_listener.rs): Implement Debug trait for ClientListener for better logging
♻️ (connection_details.rs): Refactor ConnectionDetails to use Option for optional fields
♻️ (connection_details.rs): Change new constructor to accept &str and convert to String
✨ (connection_details.rs): Implement Debug trait for ConnectionDetails
♻️ (connection_options.rs): Implement Debug trait for ConnectionOptions
♻️ (lightstreamer_client.rs): Refactor LightstreamerClient to use Option for server_address and adapter_set
✨ (lightstreamer_client.rs): Implement Debug trait for LightstreamerClient
♻️ (main.rs): Update subscribe_to_channel function to use new control.txt URL and parameters
♻️ (main.rs): Update main function to use Option<&str> when creating LightstreamerClient
✨ (proxy.rs): Add Proxy struct and ProxyType enum to handle proxy configurations
Diffstat (limited to 'src/connection_details.rs')
-rw-r--r-- | src/connection_details.rs | 42 |
1 files changed, 27 insertions, 15 deletions
diff --git a/src/connection_details.rs b/src/connection_details.rs index 1d18bf6..06b6d15 100644 --- a/src/connection_details.rs +++ b/src/connection_details.rs @@ -1,6 +1,10 @@ +use hyper::server; + use crate::client_listener::ClientListener; use crate::IllegalArgumentException; +use std::fmt::{self, Debug, Formatter}; + /// Used by `LightstreamerClient` to provide a basic connection properties data object. /// /// Data object that contains the configuration settings needed to connect to a Lightstreamer Server. @@ -9,9 +13,9 @@ use crate::IllegalArgumentException; /// /// See also `LightstreamerClient` pub struct ConnectionDetails { - adapter_set: String, + adapter_set: Option<String>, client_ip: Option<String>, - server_address: String, + server_address: Option<String>, server_instance_address: Option<String>, server_socket_name: Option<String>, session_id: Option<String>, @@ -31,7 +35,7 @@ impl ConnectionDetails { /// that the "DEFAULT" Adapter Set is used. /// /// See also `setAdapterSet()` - pub fn get_adapter_set(&self) -> &String { + pub fn get_adapter_set(&self) -> Option<&String> { self.adapter_set.as_ref() } @@ -152,18 +156,11 @@ impl ConnectionDetails { } /// Creates a new ConnectionDetails object with default values. - pub fn new(server_address: Option<String>, adapter_set: Option<String>) -> ConnectionDetails { - if let Some(server_address) = server_address { - ConnectionDetails { - server_address: Some(server_address), - adapter_set, - ..Default::default() - } - } else { - ConnectionDetails { - adapter_set, - ..Default::default() - } + pub fn new(server_address: Option<&str>, adapter_set: Option<&str>) -> ConnectionDetails { + ConnectionDetails { + server_address: server_address.map(|s| s.to_string()), // convert &str to String + adapter_set: adapter_set.map(|s| s.to_string()), // convert &str to String + ..Default::default() } } @@ -346,6 +343,21 @@ impl ConnectionDetails { } } +impl Debug for ConnectionDetails { + fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.debug_struct("ConnectionDetails") + .field("adapter_set", &self.adapter_set) + .field("client_ip", &self.client_ip) + .field("server_address", &self.server_address) + .field("server_instance_address", &self.server_instance_address) + .field("server_socket_name", &self.server_socket_name) + .field("session_id", &self.session_id) + .field("user", &self.user) + .field("password", &self.password) + .finish() + } +} + impl Default for ConnectionDetails { fn default() -> Self { ConnectionDetails { |