mirror of
https://github.com/rust-lang/rust.git
synced 2025-02-16 17:03:35 +00:00
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`.
This commit is contained in:
commit
ad4f303a5d
@ -3021,7 +3021,6 @@ dependencies = [
|
||||
name = "rls"
|
||||
version = "2.0.0"
|
||||
dependencies = [
|
||||
"serde",
|
||||
"serde_json",
|
||||
]
|
||||
|
||||
|
@ -5,5 +5,4 @@ edition = "2021"
|
||||
license = "Apache-2.0/MIT"
|
||||
|
||||
[dependencies]
|
||||
serde = { version = "1.0.143", features = ["derive"] }
|
||||
serde_json = "1.0.83"
|
||||
|
@ -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()),
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user