aboutsummaryrefslogtreecommitdiff
path: root/src/connection_details.rs
diff options
context:
space:
mode:
authorLibravatar Daniel López Azaña <daniloaz@gmail.com>2024-03-28 19:19:46 +0100
committerLibravatar Daniel López Azaña <daniloaz@gmail.com>2024-03-28 19:19:46 +0100
commite1c0e90581b7ce97f87ddf43267ceb32e28447e3 (patch)
treea347bfed5552256fcbe5d54798814a1a1d24cf0a /src/connection_details.rs
parentb4e12fd1165b5e3960a1294dadec45eb40893b37 (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.rs42
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 {