on master help sign in
lsp: slightly refactor header parsing, add more logging
commit7eff9056802d3d4f67fbaef7ba7dc03e874564c1 authorBlaž Hrastnik <blaz@mxxn.io> dateSun 29 Aug 2021, 12:40 (5 years ago) parentd6a9c2c
1 file changed+9−13
helix-lsp/src/transport.rs+9−13
helix-lsp/src/transport.rs+9−13
@@ -1,7 +1,7 @@
11use crate::Result;
2−use anyhow::Context;
2+use anyhow::{anyhow, Context};
33use jsonrpc_core as jsonrpc;
4−use log::{error, info};
4+use log::{debug, error, info};
55use serde::{Deserialize, Serialize};
66use serde_json::Value;
77use std::collections::HashMap;
@@ -83,20 +83,16 @@ impl Transport {
8383 break;
8484 }
8585
86− let mut parts = header.split(": ");
86+ debug!("<- header {}", header);
8787
88− match (parts.next(), parts.next(), parts.next()) {
89− (Some("Content-Length"), Some(value), None) => {
88+ let parts = header.split_once(": ");
89+
90+ match parts {
91+ Some(("Content-Length", value)) => {
9092 content_length = Some(value.parse().context("invalid content length")?);
9193 }
92− (Some(_), Some(_), None) => {}
93− _ => {
94− return Err(std::io::Error::new(
95− std::io::ErrorKind::Other,
96− "Failed to parse header",
97− )
98− .into());
99− }
94+ Some((_, _)) => {}
95+ None => return Err(anyhow!("Failed to parse header: {:?}", header).into()),
10096 }
10197 }
10298