From 6b3ce96c18acdfceb394f17db2f9c344884b439a Mon Sep 17 00:00:00 2001 From: Valmo Trindade Date: Mon, 11 May 2026 16:24:40 -0300 Subject: [PATCH] formatted some rust docs --- src/cot/uas.rs | 14 +++++++------- src/cot/video.rs | 9 ++++----- src/lib.rs | 1 + src/mdns.rs | 32 +++++++++++++++++++++++++++----- src/tcp/client.rs | 31 +++++++++++++++++-------------- src/tcp/cot.rs | 10 ++-------- src/tcp/tls/connector.rs | 9 +++++++-- src/tcp/tls/enrollment.rs | 7 ++----- src/tcp/transport.rs | 7 ++++++- src/video_stream.rs | 5 ++++- 10 files changed, 77 insertions(+), 48 deletions(-) diff --git a/src/cot/uas.rs b/src/cot/uas.rs index af0663a..3ca6e66 100644 --- a/src/cot/uas.rs +++ b/src/cot/uas.rs @@ -131,8 +131,8 @@ impl UasPlatformCoTPayload { None => (escape_xml(&self.vehicle_type_tag), None), }; let now = Utc::now().to_rfc3339_opts(SecondsFormat::Millis, true); - let stale = - (Utc::now() + Duration::milliseconds(3500)).to_rfc3339_opts(SecondsFormat::Millis, true); + let stale = (Utc::now() + Duration::milliseconds(3500)) + .to_rfc3339_opts(SecondsFormat::Millis, true); let mut xml = String::new(); xml.push_str(""); @@ -153,8 +153,7 @@ impl UasPlatformCoTPayload { xml.push_str("<_uastool extendedCot=\"true\" activeRoute=\"false\"/>"); xml.push_str(&format!( "", - self.track_course, - self.track_speed, + self.track_course, self.track_speed, )); xml.push_str(&format!( "", @@ -186,7 +185,10 @@ impl UasPlatformCoTPayload { } else { xml.push_str("<__video>"); } - xml.push_str(&format!("", link_uid)); + xml.push_str(&format!( + "", + link_uid + )); xml.push_str(""); xml } @@ -326,5 +328,3 @@ impl UasSensorCoTPayload { xml } } - - diff --git a/src/cot/video.rs b/src/cot/video.rs index 68296e0..9cb91f2 100644 --- a/src/cot/video.rs +++ b/src/cot/video.rs @@ -13,7 +13,9 @@ fn parse_video_url(url: &str) -> Option<(String, String, String, String)> { Some((authority, path)) => (authority, format!("/{}", path)), None => (rest, String::new()), }; - let host_port = authority.rsplit_once('@').map_or(authority, |(_, host_port)| host_port); + let host_port = authority + .rsplit_once('@') + .map_or(authority, |(_, host_port)| host_port); let (address, port) = host_port.rsplit_once(':')?; if protocol.is_empty() || address.is_empty() || port.is_empty() { @@ -35,10 +37,7 @@ pub fn video_detail_xml(video_url: &str, uid: &str, callsign: &str) -> String { } let Some((protocol, address, port, path)) = parse_video_url(trimmed_url) else { - return format!( - "<__video url=\"{}\"/>", - escape_xml_attribute(trimmed_url) - ); + return format!("<__video url=\"{}\"/>", escape_xml_attribute(trimmed_url)); }; format!( diff --git a/src/lib.rs b/src/lib.rs index 5ac4097..ce21446 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -5,6 +5,7 @@ mod mdns; mod structs; mod tcp; mod tests; +mod uas; mod udp_socket; mod video_stream; diff --git a/src/mdns.rs b/src/mdns.rs index c56362b..afbf69b 100644 --- a/src/mdns.rs +++ b/src/mdns.rs @@ -23,7 +23,13 @@ fn detect_local_ipv4() -> Result { fn sanitize_label(value: &str, fallback: &str) -> String { let mut sanitized = value .chars() - .map(|c| if c.is_ascii_alphanumeric() || c == '-' { c } else { '-' }) + .map(|c| { + if c.is_ascii_alphanumeric() || c == '-' { + c + } else { + '-' + } + }) .collect::() .trim_matches('-') .to_string(); @@ -67,7 +73,13 @@ fn push_record(buf: &mut Vec, name: &str, rr_type: u16, rr_class: u16, ttl: buf.extend_from_slice(rdata); } -fn build_mdns_packet(instance_name: &str, host_name: &str, ip: Ipv4Addr, port: u16, video_uri: &str) -> Vec { +fn build_mdns_packet( + instance_name: &str, + host_name: &str, + ip: Ipv4Addr, + port: u16, + video_uri: &str, +) -> Vec { let service_type = "_mavlink._udp.local"; let instance_fqdn = format!("{}.{}", instance_name, service_type); let host_fqdn = format!("{}.local", host_name); @@ -122,7 +134,11 @@ pub fn start_uas_advertisement( let local_ip = match detect_local_ipv4() { Ok(ip) => ip, Err(error) => { - let _ = ctx.callback_data("MDNS ERROR", "Failed to determine local IPv4", error.clone()); + let _ = ctx.callback_data( + "MDNS ERROR", + "Failed to determine local IPv4", + error.clone(), + ); return "mdns local IPv4 error"; } }; @@ -161,7 +177,10 @@ pub fn start_uas_advertisement( loop { match socket.send_to(&packet, multicast_addr) { - Ok(size) => info!("Sent mDNS UAS advertisement ({} bytes) to {}", size, multicast_addr), + Ok(size) => info!( + "Sent mDNS UAS advertisement ({} bytes) to {}", + size, multicast_addr + ), Err(error) => info!("Failed sending mDNS UAS advertisement: {}", error), } @@ -172,7 +191,10 @@ pub fn start_uas_advertisement( } } - info!("Stopped mDNS UAS advertisement for instance={}", safe_instance); + info!( + "Stopped mDNS UAS advertisement for instance={}", + safe_instance + ); }); let _ = ctx.callback_data( diff --git a/src/tcp/client.rs b/src/tcp/client.rs index d3cbff4..5e5c8c7 100644 --- a/src/tcp/client.rs +++ b/src/tcp/client.rs @@ -54,17 +54,15 @@ fn send_over_stream( ) -> Result<(), String> { let message_len = message.len(); info!("Sending TCP payload ({} bytes)", message_len); - stream - .write_message(message.as_bytes()) - .map_err(|e| { - let message = e.to_string(); - let _ = context.callback_data( - "TCP SOCKET ERROR", - "TAK Socket disconnected", - message.clone(), - ); - message - }) + stream.write_message(message.as_bytes()).map_err(|e| { + let message = e.to_string(); + let _ = context.callback_data( + "TCP SOCKET ERROR", + "TAK Socket disconnected", + message.clone(), + ); + message + }) } fn flush_pending_messages( @@ -145,10 +143,14 @@ impl TcpClient { let mut pending_messages: VecDeque<(String, Context)> = VecDeque::new(); let (connect_tx, connect_rx) = mpsc::channel(); - info!("TCP worker thread started with config: {}", config_description); + info!( + "TCP worker thread started with config: {}", + config_description + ); let tcp_thread = thread::spawn(move || { - let connect_result = panic::catch_unwind(AssertUnwindSafe(|| connect_stream(&config))); + let connect_result = + panic::catch_unwind(AssertUnwindSafe(|| connect_stream(&config))); match connect_result { Ok(Ok(stream)) => { @@ -184,7 +186,8 @@ impl TcpClient { match &mut state { ConnectionState::Connected => { if let Some(stream) = connection.as_mut() { - if let Err(error) = send_over_stream(stream, &context, message) { + if let Err(error) = send_over_stream(stream, &context, message) + { info!("Failed to send message: {}", error); state = ConnectionState::Failed(error); connection = None; diff --git a/src/tcp/cot.rs b/src/tcp/cot.rs index ff863cc..935fc6c 100644 --- a/src/tcp/cot.rs +++ b/src/tcp/cot.rs @@ -50,10 +50,7 @@ pub fn send_uas_platform_cot( "Sending UAS Platform main CoT to TCP server" } -pub fn send_uas_video_cot( - ctx: Context, - payload: cot::uas::UasVideoCoTPayload, -) -> &'static str { +pub fn send_uas_video_cot(ctx: Context, payload: cot::uas::UasVideoCoTPayload) -> &'static str { let xml = payload.to_xml(); if !xml.is_empty() { send_payload(ctx, xml); @@ -62,10 +59,7 @@ pub fn send_uas_video_cot( "Sending UAS Video (b-i-v) CoT to TCP server" } -pub fn send_uas_sensor_cot( - ctx: Context, - payload: cot::uas::UasSensorCoTPayload, -) -> &'static str { +pub fn send_uas_sensor_cot(ctx: Context, payload: cot::uas::UasSensorCoTPayload) -> &'static str { let xml = payload.to_xml(); send_payload(ctx, xml); diff --git a/src/tcp/tls/connector.rs b/src/tcp/tls/connector.rs index f770be2..721b290 100644 --- a/src/tcp/tls/connector.rs +++ b/src/tcp/tls/connector.rs @@ -6,8 +6,8 @@ use std::fs::File; use std::io::BufReader; use std::io::Cursor; use std::net::{SocketAddr, TcpStream, ToSocketAddrs}; -use std::time::Duration; use std::sync::Arc; +use std::time::Duration; use crate::tcp::transport::TransportStream; @@ -65,7 +65,12 @@ fn resolve_address(address: &str) -> Result { .to_socket_addrs() .map_err(|e| format!("failed to resolve {}: {}", address, e))? .next() - .ok_or_else(|| format!("failed to resolve {}: no socket addresses returned", address)) + .ok_or_else(|| { + format!( + "failed to resolve {}: no socket addresses returned", + address + ) + }) } fn connect_tcp(address: &str) -> Result { diff --git a/src/tcp/tls/enrollment.rs b/src/tcp/tls/enrollment.rs index ad36d19..922441a 100644 --- a/src/tcp/tls/enrollment.rs +++ b/src/tcp/tls/enrollment.rs @@ -1,5 +1,5 @@ -use rcgen::{CertificateParams, DistinguishedName, DnType, KeyPair, PKCS_RSA_SHA256}; use log::info; +use rcgen::{CertificateParams, DistinguishedName, DnType, KeyPair, PKCS_RSA_SHA256}; use reqwest::blocking::Client; use serde::Deserialize; use uuid::Uuid; @@ -198,10 +198,7 @@ pub fn enroll_and_connect( }; info!( "Starting enroll_and_connect for host={} enroll_port={} server_name={} client_uid={}", - host, - enroll_port, - server_name, - normalized_client_uid + host, enroll_port, server_name, normalized_client_uid ); let enrollment_config = fetch_enrollment_config(host, enroll_port)?; diff --git a/src/tcp/transport.rs b/src/tcp/transport.rs index f11d883..98cc504 100644 --- a/src/tcp/transport.rs +++ b/src/tcp/transport.rs @@ -35,7 +35,12 @@ fn connect_plain(address: &str) -> Result { .to_socket_addrs() .map_err(|e| format!("failed to resolve {}: {}", address, e))? .next() - .ok_or_else(|| format!("failed to resolve {}: no socket addresses returned", address))?; + .ok_or_else(|| { + format!( + "failed to resolve {}: no socket addresses returned", + address + ) + })?; info!( "Opening plain TCP connection to {} (resolved={}) with timeout {:?}", diff --git a/src/video_stream.rs b/src/video_stream.rs index 0670576..6ef6539 100644 --- a/src/video_stream.rs +++ b/src/video_stream.rs @@ -70,7 +70,10 @@ pub fn start_stream( let rtsp_url = if username.is_empty() || password.is_empty() { format!("rtsp://{}:{}/{}", address, port, stream_path) } else { - format!("rtsp://{}:{}@{}:{}/{}", username, password, address, port, stream_path) + format!( + "rtsp://{}:{}@{}:{}/{}", + username, password, address, port, stream_path + ) }; let mut cmd = Command::new("ffmpeg");