refactor: table style unification

This commit is contained in:
zhom
2026-08-26 10:29:45 +04:00
parent b7e1c791db
commit 82271d8c3b
22 changed files with 2518 additions and 852 deletions
+651 -749
View File
File diff suppressed because it is too large Load Diff
+11 -7
View File
@@ -26,7 +26,7 @@ path = "src/bin/proxy_server.rs"
[build-dependencies]
tauri-build = { version = "2", features = [] }
resvg = "0.47"
resvg = "0.48"
[dependencies]
serde_json = "1"
@@ -51,7 +51,11 @@ tokio = { version = "1", features = ["full", "sync"] }
tokio-util = "0.7"
sysinfo = "0.39"
lazy_static = "1.5"
base64 = "0.22"
# 0.23 turns on `simd-unsafe` by default, decoding via hand-written unsafe
# AVX2/NEON. This crate decodes attacker-influenced input (proxy CONNECT auth,
# extension payloads, os_crypt key blobs), and none of those paths are hot
# enough to be worth it, so stay on the scalar engine.
base64 = { version = "0.23", default-features = false, features = ["std"] }
libc = "0.2"
async-trait = "0.1"
futures-util = "0.3"
@@ -93,19 +97,19 @@ async-socks5 = "0.6"
# Wayfern CDP integration
tokio-tungstenite = { version = "0.29", features = ["native-tls"] }
tokio-tungstenite = { version = "0.30", features = ["native-tls"] }
rusqlite = { version = "0.40", features = ["bundled"] }
serde_yaml = "0.9"
toml = "1.1"
thiserror = "2.0"
regex-lite = "0.1"
tempfile = "3"
maxminddb = "0.29"
quick-xml = { version = "0.41", features = ["serialize"] }
maxminddb = "0.30"
quick-xml = { version = "0.42", features = ["serialize"] }
# VPN support
boringtun = "0.7"
smoltcp = { version = "0.13", default-features = false, features = ["std", "medium-ip", "proto-ipv4", "proto-ipv6", "socket-tcp", "socket-udp", "socket-dns"] }
smoltcp = { version = "0.14", default-features = false, features = ["std", "medium-ip", "proto-ipv4", "proto-ipv6", "socket-tcp", "socket-udp", "socket-dns"] }
# Tray icon decoding (main-process system tray)
image = "0.25"
@@ -158,7 +162,7 @@ http-body-util = "0.1"
tower = "0.5"
tower-http = { version = "0.7", features = ["fs", "trace"] }
futures-util = "0.3"
serial_test = "3"
serial_test = "4"
# Integration test configuration
[[test]]
+8 -8
View File
@@ -112,7 +112,7 @@ impl LocaleSelector {
match reader.read_event_into(&mut buf) {
Ok(Event::Start(ref e)) | Ok(Event::Empty(ref e)) => {
let name = e.name();
let name_str = std::str::from_utf8(name.as_ref()).unwrap_or("");
let name_str = name.as_ref();
if name_str == "territory" {
if let Some(code) = current_territory.take() {
@@ -122,8 +122,8 @@ impl LocaleSelector {
}
for attr in e.attributes().flatten() {
if attr.key.as_ref() == b"type" {
current_territory = Some(String::from_utf8_lossy(&attr.value).to_uppercase());
if attr.key.as_ref() == "type" {
current_territory = Some(attr.value.to_uppercase());
}
}
} else if name_str == "languagePopulation" && current_territory.is_some() {
@@ -132,11 +132,11 @@ impl LocaleSelector {
for attr in e.attributes().flatten() {
match attr.key.as_ref() {
b"type" => {
lang_type = Some(String::from_utf8_lossy(&attr.value).to_string());
"type" => {
lang_type = Some(attr.value.to_string());
}
b"populationPercent" => {
pop_percent = String::from_utf8_lossy(&attr.value).parse().unwrap_or(0.0);
"populationPercent" => {
pop_percent = attr.value.parse().unwrap_or(0.0);
}
_ => {}
}
@@ -152,7 +152,7 @@ impl LocaleSelector {
}
Ok(Event::End(ref e)) => {
let name_ref = e.name();
let name = std::str::from_utf8(name_ref.as_ref()).unwrap_or("");
let name = name_ref.as_ref();
if name == "territory" {
if let Some(code) = current_territory.take() {
if !current_languages.is_empty() {