chat_ui_components/
transport_utils.rs1pub fn get_transport_info(addr: &str) -> (&'static str, &'static str) {
19 if let Some(circuit_pos) = addr.find("p2p-circuit") {
23 if let Some(webrtc_pos) = addr.find("webrtc")
24 && webrtc_pos > circuit_pos
25 {
26 return ("π", "webrtc");
27 }
28 if let Some(wt_pos) = addr.find("webtransport")
29 && wt_pos > circuit_pos
30 {
31 return ("π", "webtransport");
32 }
33 return ("π", "p2p-circuit");
34 }
35
36 if addr.contains("webrtc-direct") {
37 ("π", "webrtc-direct")
38 } else if addr.contains("webrtc") {
39 ("π", "webrtc")
40 } else if addr.contains("webtransport") {
41 ("π", "webtransport")
42 } else if addr.contains("wss") || addr.contains("ws") {
43 ("πΈοΈ", "websocket")
44 } else if addr.contains("tcp") {
45 ("π", "tcp")
46 } else if addr.contains("quic") {
47 ("β‘", "quic")
48 } else {
49 ("β", "unknown")
50 }
51}
52
53pub fn get_transport_emoji(addr: &str) -> &'static str {
55 get_transport_info(addr).0
56}
57
58pub fn addr_has_transport(addr: &str) -> bool {
62 addr.contains("webrtc")
63 || addr.contains("webtransport")
64 || addr.contains("p2p-circuit")
65 || addr.contains("wss")
66 || addr.contains("ws")
67 || addr.contains("tcp")
68 || addr.contains("udp")
69 || addr.contains("quic")
70 || addr.contains("ip4")
71 || addr.contains("ip6")
72 || addr.contains("dns4")
73 || addr.contains("dns6")
74 || addr.contains("dns")
75}
76
77pub fn transport_name_to_info(name: &str) -> (&'static str, &'static str) {
79 match name {
80 "webrtc-direct" => ("π", "webrtc-direct"),
81 "webrtc" => ("π", "webrtc"),
82 "webtransport" => ("π", "webtransport"),
83 "websocket" => ("πΈοΈ", "websocket"),
84 "tcp" => ("π", "tcp"),
85 "quic" => ("β‘", "quic"),
86 "p2p-circuit" => ("π", "p2p-circuit"),
87 _ => ("β", "unknown"),
88 }
89}