Skip to content

Commit fa5a09d

Browse files
committed
It works...?
1 parent abd0f6e commit fa5a09d

File tree

1 file changed

+30
-4
lines changed

1 file changed

+30
-4
lines changed

src/main.rs

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,45 @@ pub mod plugin {
77
include!(concat!(env!("OUT_DIR"), "/plugin.rs"));
88
}
99

10-
pub fn deserialize_greeter(buf: &[u8]) -> Result<plugin::CodeGenRequest, prost::DecodeError> {
10+
pub fn deserialize_codegen_request(buf: &[u8]) -> Result<plugin::CodeGenRequest, prost::DecodeError> {
1111
plugin::CodeGenRequest::decode(&mut Cursor::new(buf))
1212
}
1313

14+
pub fn serialize_codegen_response(resp: &plugin::CodeGenResponse) -> Vec<u8> {
15+
let mut buf = Vec::new();
16+
buf.reserve(resp.encoded_len());
17+
18+
resp.encode(&mut buf).unwrap();
19+
buf
20+
}
21+
22+
pub fn create_codegen_response() -> plugin::CodeGenResponse {
23+
let mut file = plugin::File::default();
24+
file.name = "hello.txt".to_string();
25+
file.contents = "Hello World".as_bytes().to_vec();
26+
27+
let mut resp = plugin::CodeGenResponse::default();
28+
resp.files.push(file);
29+
resp
30+
}
31+
1432
fn main() -> Result<(), prost::DecodeError> {
1533
let stdin = io::stdin();
1634
let mut stdin = stdin.lock();
1735
let buffer = stdin.fill_buf().unwrap();
1836

19-
let request_deserialized_result = match deserialize_greeter(&buffer) {
37+
let _ = match deserialize_codegen_request(&buffer) {
2038
Ok(request_deserialized_result) => request_deserialized_result,
21-
Err(e) => return Err(e),
39+
Err(_e) => std::process::exit(1),
2240
};
23-
println!("{:#?}", request_deserialized_result);
41+
42+
let resp = create_codegen_response();
43+
let out = serialize_codegen_response(&resp);
44+
45+
let _ = match io::stdout().write_all(&out) {
46+
Ok(result) => result,
47+
Err(_e) => std::process::exit(1),
48+
};
49+
2450
Ok(())
2551
}

0 commit comments

Comments
 (0)