#![warn(missing_docs)]
#![doc = include_str!("../README.md")]
pub mod messages {
pub use crate::generated::messages::*;
}
pub mod stubs {
pub use crate::generated::stubs::*;
}
pub trait Channel {
type TError;
fn request<TRequest: protobuf::Message, TReply: protobuf::Message>(
&mut self,
plugin: String,
name: String,
request: TRequest,
) -> Result<TReply, Self::TError>;
}
#[cfg(feature = "reflection")]
pub mod reflection {
pub struct RemoteProcedureDescriptor {
pub name: String,
pub plugin_name: String,
pub input_type: String,
pub output_type: String,
}
pub trait StubReflection {
fn list_methods() -> Vec<RemoteProcedureDescriptor>;
}
}
#[allow(clippy::let_unit_value)]
mod generated {
pub mod messages;
pub mod stubs;
}