pub mod codec;
pub mod context;
pub mod error;
pub mod protocol;
pub use codec::{Codec, CodecType};
pub use context::RpcContext;
pub use error::{RpcError, RpcStatus};
pub use protocol::{Flags, Frame, FrameHeader, MessageType};
pub trait ServiceDispatch: Send + Sync + 'static {
fn dispatch(
&self,
ctx: &RpcContext,
method_id: u16,
args: &[u8],
codec: &Codec,
) -> Result<Vec<u8>, RpcError>;
}
pub trait RpcTransport: Send + Sync + 'static {
fn call(&self, service_id: u16, method_id: u16, payload: Vec<u8>) -> Result<Vec<u8>, RpcError>;
}