From cb44952e2fb6405a80a0c15768d4879e96ff99ff Mon Sep 17 00:00:00 2001 From: xfy Date: Mon, 14 Jul 2025 18:58:22 +0800 Subject: [PATCH] feature: handle lua table set error --- Cargo.lock | 79 +++++++++++++++++++---------------------- Cargo.toml | 8 ++--- docs/docs/config/lua.md | 5 +++ src/http/mod.rs | 10 ++++-- 4 files changed, 54 insertions(+), 48 deletions(-) create mode 100644 docs/docs/config/lua.md diff --git a/Cargo.lock b/Cargo.lock index a050ff6..e31eaea 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -485,9 +485,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.40" +version = "4.5.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40b6887a1d8685cebccf115538db5c0efe625ccac9696ad45c409d96566e910f" +checksum = "be92d32e80243a54711e5d7ce823c35c41c9d929dc4ab58e1276f625841aadf9" dependencies = [ "clap_builder", "clap_derive", @@ -495,9 +495,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.40" +version = "4.5.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0c66c08ce9f0c698cbce5c0279d0bb6ac936d8674174fe48f736533b964f59e" +checksum = "707eab41e9622f9139419d573eca0900137718000c517d47da73045f54331c3d" dependencies = [ "anstream", "anstyle", @@ -507,9 +507,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.40" +version = "4.5.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2c7947ae4cc3d851207c1adb5b5e260ff0cca11446b1d6d1423788e442257ce" +checksum = "ef4f52386a59ca4c860f7393bcf8abd8dfd91ecccc0f774635ff68e92eeef491" dependencies = [ "heck", "proc-macro2", @@ -1052,9 +1052,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc2fdfdbff08affe55bb779f33b053aa1fe5dd5b54c257343c17edfa55711bdb" +checksum = "7f66d5bd4c6f02bf0542fad85d626775bab9258cf795a4256dcaf3161114d1df" dependencies = [ "base64 0.22.1", "bytes", @@ -2065,9 +2065,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.9" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +checksum = "40734c41988f7306bb04f0ecf60ec0f3f1caa34290e4e8ea471dcd3346483b83" dependencies = [ "serde", ] @@ -2269,9 +2269,9 @@ dependencies = [ [[package]] name = "tokio" -version = "1.46.0" +version = "1.46.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1140bb80481756a8cbe10541f37433b459c5aa1e727b4c020fbfebdc25bf3ec4" +checksum = "0cc3a2344dafbe23a245241fe8b09735b521110d30fcefbbd5feb1797ca35d17" dependencies = [ "backtrace", "bytes", @@ -2333,44 +2333,42 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.23" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit", -] - -[[package]] -name = "toml_datetime" -version = "0.6.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_edit" -version = "0.22.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" +checksum = "ed0aee96c12fa71097902e0bb061a5e1ebd766a6636bb605ba401c45c1650eac" dependencies = [ "indexmap", "serde", "serde_spanned", "toml_datetime", - "toml_write", + "toml_parser", + "toml_writer", "winnow", ] [[package]] -name = "toml_write" -version = "0.1.2" +name = "toml_datetime" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" +checksum = "bade1c3e902f58d73d3f294cd7f20391c1cb2fbcb643b73566bc773971df91e3" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_parser" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97200572db069e74c512a14117b296ba0a80a30123fbbb5aa1f4a348f639ca30" +dependencies = [ + "winnow", +] + +[[package]] +name = "toml_writer" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc842091f2def52017664b53082ecbbeb5c7731092bad69d2c63050401dfd64" [[package]] name = "tower" @@ -2910,9 +2908,6 @@ name = "winnow" version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec" -dependencies = [ - "memchr", -] [[package]] name = "winsafe" diff --git a/Cargo.toml b/Cargo.toml index f156245..169886c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,11 +9,11 @@ edition = "2024" [dependencies] # core -tokio = { version = "1.46.0", features = ["full"] } +tokio = { version = "1.46.1", features = ["full"] } tokio-util = "0.7.15" tokio-rustls = "0.26.2" hyper = { version = "1.6.0", features = ["full"] } -hyper-util = { version = "0.1.14", features = ["full"] } +hyper-util = { version = "0.1.15", features = ["full"] } http = "1.3.1" http-body-util = "0.1.3" futures-util = "0.3.31" @@ -46,7 +46,7 @@ mlua = { version = "0.10.5", features = [ thiserror = "2.0.12" anyhow = "1.0.98" serde = { version = "1.0.219", features = ["derive"] } -toml = "0.8.23" +toml = "0.9.2" bytes = "1.10.1" const_format = "0.2.34" md5 = "0.8.0" @@ -54,7 +54,7 @@ dashmap = { version = "6.1.0", features = ["serde"] } # logging tracing = "0.1.41" tracing-subscriber = { version = "0.3.19", features = ["env-filter"] } -clap = { version = "4.5.40", features = ["derive"] } +clap = { version = "4.5.41", features = ["derive"] } serde_repr = "0.1.20" serde_json = "1.0.140" mime_guess = "2.0.5" diff --git a/docs/docs/config/lua.md b/docs/docs/config/lua.md new file mode 100644 index 0000000..30358a5 --- /dev/null +++ b/docs/docs/config/lua.md @@ -0,0 +1,5 @@ +--- +sidebar_label: Lua 脚本 +sidebar_position: 2 +title: Lua 脚本 +--- diff --git a/src/http/mod.rs b/src/http/mod.rs index 5348c1d..deefd1b 100644 --- a/src/http/mod.rs +++ b/src/http/mod.rs @@ -73,8 +73,14 @@ impl LuaEngine { .set( "get", lua.create_function(move |_, key: String| { - let t = shared_table_get.get(&key).ok_or(anyhow!("key not found"))?; - Ok(t.clone()) + let value = shared_table_get.get(&key); + match value { + Some(value) => Ok(value.clone()), + None => { + tracing::error!("shared_api: get key not found: {}", key); + Ok(String::new()) + } + } }) .expect("create get function failed"), )