#[doc(hidden)] pub mod internal; pub mod channel; pub mod protocol; pub mod tcp; pub mod unix; mod client_channel; mod server; pub use client_channel::ClientChannel; pub use server::Server; pub use urpc_macro::service; use protocol::RpcMessage; use std::pin::Pin; use std::future::Future; use bytes::Bytes; use futures::{Sink, Stream}; #[derive(Debug, Default)] pub struct Context; pub trait Service: Send + Sync + 'static { fn name() -> &'static str where Self: Sized; fn call( &self, method: String, arguments: Bytes, ) -> Pin> + Send + '_>>; } pub trait Channel: Stream> + Sink + Send + Unpin + 'static { } pub trait Listener: Stream> + Send + Unpin + 'static where C: Channel, { }