aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_proc_macro_srv/src/cli.rs
diff options
context:
space:
mode:
authorDmitry <[email protected]>2020-08-14 19:32:05 +0100
committerDmitry <[email protected]>2020-08-14 19:32:05 +0100
commit178c3e135a2a249692f7784712492e7884ae0c00 (patch)
treeac6b769dbf7162150caa0c1624786a4dd79ff3be /crates/ra_proc_macro_srv/src/cli.rs
parent06ff8e6c760ff05f10e868b5d1f9d79e42fbb49c (diff)
parentc2594daf2974dbd4ce3d9b7ec72481764abaceb5 (diff)
Merge remote-tracking branch 'origin/master'
Diffstat (limited to 'crates/ra_proc_macro_srv/src/cli.rs')
-rw-r--r--crates/ra_proc_macro_srv/src/cli.rs39
1 files changed, 0 insertions, 39 deletions
diff --git a/crates/ra_proc_macro_srv/src/cli.rs b/crates/ra_proc_macro_srv/src/cli.rs
deleted file mode 100644
index 1437794c9..000000000
--- a/crates/ra_proc_macro_srv/src/cli.rs
+++ /dev/null
@@ -1,39 +0,0 @@
1//! Driver for proc macro server
2
3use crate::ProcMacroSrv;
4use ra_proc_macro::msg::{self, Message};
5use std::io;
6
7pub fn run() -> io::Result<()> {
8 let mut srv = ProcMacroSrv::default();
9
10 while let Some(req) = read_request()? {
11 let res = match req {
12 msg::Request::ListMacro(task) => srv.list_macros(&task).map(msg::Response::ListMacro),
13 msg::Request::ExpansionMacro(task) => {
14 srv.expand(&task).map(msg::Response::ExpansionMacro)
15 }
16 };
17
18 let msg = res.unwrap_or_else(|err| {
19 msg::Response::Error(msg::ResponseError {
20 code: msg::ErrorCode::ExpansionError,
21 message: err,
22 })
23 });
24
25 if let Err(err) = write_response(msg) {
26 eprintln!("Write message error: {}", err);
27 }
28 }
29
30 Ok(())
31}
32
33fn read_request() -> io::Result<Option<msg::Request>> {
34 msg::Request::read(&mut io::stdin().lock())
35}
36
37fn write_response(msg: msg::Response) -> io::Result<()> {
38 msg.write(&mut io::stdout().lock())
39}