diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2023-07-11 00:58:18 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-07-11 00:58:18 +0200 |
| commit | ad4f303a5df3b1caa29ea685d1ffe680960ba4e0 (patch) | |
| tree | 4bcdd25d022b12e5392ad2d96df0d7010b193f29 /src | |
| parent | 40b1c5b716abef6204942fd3a44c34300859d2f2 (diff) | |
| parent | dd5fa7d9b3176f2d922bf52a34a86847adaaab4c (diff) | |
| download | rust-ad4f303a5df3b1caa29ea685d1ffe680960ba4e0.tar.gz rust-ad4f303a5df3b1caa29ea685d1ffe680960ba4e0.zip | |
Rollup merge of #113556 - cuviper:trim-rls, r=Mark-Simulacrum
Don't use serde-derive in the rls shim The already-small RLS shim can get a little smaller, and faster to build, if we drop the serde-derive dependency and decode the one "method" field it needs manually from `serde_json::Value`.
Diffstat (limited to 'src')
| -rw-r--r-- | src/tools/rls/Cargo.toml | 1 | ||||
| -rw-r--r-- | src/tools/rls/src/main.rs | 9 |
2 files changed, 5 insertions, 5 deletions
diff --git a/src/tools/rls/Cargo.toml b/src/tools/rls/Cargo.toml index b84647eb332..b7aa659c25a 100644 --- a/src/tools/rls/Cargo.toml +++ b/src/tools/rls/Cargo.toml @@ -5,5 +5,4 @@ edition = "2021" license = "Apache-2.0/MIT" [dependencies] -serde = { version = "1.0.143", features = ["derive"] } serde_json = "1.0.83" diff --git a/src/tools/rls/src/main.rs b/src/tools/rls/src/main.rs index f96f1325d96..d7be108e89c 100644 --- a/src/tools/rls/src/main.rs +++ b/src/tools/rls/src/main.rs @@ -3,7 +3,7 @@ //! This is a small stub that replaces RLS to alert the user that RLS is no //! longer available. -use serde::Deserialize; +use serde_json::Value; use std::error::Error; use std::io::BufRead; use std::io::Write; @@ -21,7 +21,6 @@ fn main() { } } -#[derive(Deserialize)] struct Message { method: Option<String>, } @@ -88,8 +87,10 @@ fn read_message_raw<R: BufRead>(reader: &mut R) -> Result<String, Box<dyn Error> fn read_message<R: BufRead>(reader: &mut R) -> Result<Message, Box<dyn Error>> { let m = read_message_raw(reader)?; - match serde_json::from_str(&m) { - Ok(m) => Ok(m), + match serde_json::from_str::<Value>(&m) { + Ok(message) => Ok(Message { + method: message.get("method").and_then(|value| value.as_str().map(String::from)), + }), Err(e) => Err(format!("failed to parse message {m}\n{e}").into()), } } |
