mirror of
https://github.com/rust-lang/rust.git
synced 2025-06-05 11:48:30 +00:00
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:
parent
05b82e551e
commit
dd5fa7d9b3
@ -3021,7 +3021,6 @@ dependencies = [
|
|||||||
name = "rls"
|
name = "rls"
|
||||||
version = "2.0.0"
|
version = "2.0.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"serde",
|
|
||||||
"serde_json",
|
"serde_json",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -5,5 +5,4 @@ edition = "2021"
|
|||||||
license = "Apache-2.0/MIT"
|
license = "Apache-2.0/MIT"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
serde = { version = "1.0.143", features = ["derive"] }
|
|
||||||
serde_json = "1.0.83"
|
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
|
//! This is a small stub that replaces RLS to alert the user that RLS is no
|
||||||
//! longer available.
|
//! longer available.
|
||||||
|
|
||||||
use serde::Deserialize;
|
use serde_json::Value;
|
||||||
use std::error::Error;
|
use std::error::Error;
|
||||||
use std::io::BufRead;
|
use std::io::BufRead;
|
||||||
use std::io::Write;
|
use std::io::Write;
|
||||||
@ -21,7 +21,6 @@ fn main() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Deserialize)]
|
|
||||||
struct Message {
|
struct Message {
|
||||||
method: Option<String>,
|
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>> {
|
fn read_message<R: BufRead>(reader: &mut R) -> Result<Message, Box<dyn Error>> {
|
||||||
let m = read_message_raw(reader)?;
|
let m = read_message_raw(reader)?;
|
||||||
match serde_json::from_str(&m) {
|
match serde_json::from_str::<Value>(&m) {
|
||||||
Ok(m) => Ok(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()),
|
Err(e) => Err(format!("failed to parse message {m}\n{e}").into()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user