bifrostlink 0.2.0

Topology-aware RPC library
Documentation
pub trait Request: Send + Sync + 'static {
	type Response;
	fn name() -> u16;
}
#[macro_export]
macro_rules! request {
	(($id:literal) $name:ident => $response:ty) => {
		impl $crate::Request for $name {
			type Response = $response;
			fn name() -> u16 {
				$id
			}
		}
	};
}

pub trait IncomingRequest: Request {}
impl<T> IncomingRequest for T where T: Request {}
pub trait OutgoingRequest: Request {}
impl<T> OutgoingRequest for T where T: Request {}

#[derive(PartialEq, Eq, Hash, Debug)]
pub(crate) struct ResponseId(pub String);