1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
pub extern crate grpcio;
extern crate self as bincode_grpc;
pub extern crate tracing;

pub mod bi_codec {
    use bytes::buf::{BufMut, BufMutExt};
    use grpcio::MessageReader;
    use grpcio::Result;
    use serde::de::DeserializeOwned;
    use serde::Serialize;
    use std::io::{BufReader, BufWriter};

    pub fn ser<M: Serialize, B: BufMut>(msg: &M, buf: &mut B) {
        bincode::serialize_into(BufWriter::new(buf.writer()), msg).expect("Writing message to buffer failed");
    }

    pub fn de<M: DeserializeOwned>(reader: MessageReader) -> Result<M> {
        Ok(bincode::deserialize_from(BufReader::new(reader)).expect("Reading message from buffer failed"))
    }
}

pub use bincode_grpc_macro::{server, service};