pub struct RpcServer<'a, StreamError, const MAX_CLIENTS: usize = DEFAULT_MAX_CLIENTS, const MAX_HANDLERS: usize = DEFAULT_MAX_HANDLERS, const MAX_MESSAGE_LEN: usize = DEFAULT_MAX_MESSAGE_LEN, const HANDLER_STACK_SIZE: usize = DEFAULT_HANDLER_STACK_SIZE, const NOTIFICATION_QUEUE_SIZE: usize = DEFAULT_NOTIFICATION_QUEUE_SIZE> { /* private fields */ }
Expand description
RPC server
Implementations§
Source§impl<'a, StreamError, const MAX_CLIENTS: usize, const MAX_HANDLERS: usize, const MAX_MESSAGE_LEN: usize, const HANDLER_STACK_SIZE: usize, const NOTIFICATION_QUEUE_SIZE: usize> RpcServer<'a, StreamError, MAX_CLIENTS, MAX_HANDLERS, MAX_MESSAGE_LEN, HANDLER_STACK_SIZE, NOTIFICATION_QUEUE_SIZE>
impl<'a, StreamError, const MAX_CLIENTS: usize, const MAX_HANDLERS: usize, const MAX_MESSAGE_LEN: usize, const HANDLER_STACK_SIZE: usize, const NOTIFICATION_QUEUE_SIZE: usize> RpcServer<'a, StreamError, MAX_CLIENTS, MAX_HANDLERS, MAX_MESSAGE_LEN, HANDLER_STACK_SIZE, NOTIFICATION_QUEUE_SIZE>
Sourcepub fn register_handler(
&mut self,
method_name_glob: &'a str,
handler: &'a dyn RpcHandler<HANDLER_STACK_SIZE>,
) -> Result<(), RpcServerError<StreamError>>
pub fn register_handler( &mut self, method_name_glob: &'a str, handler: &'a dyn RpcHandler<HANDLER_STACK_SIZE>, ) -> Result<(), RpcServerError<StreamError>>
Register a new RPC method and its handler
Sourcepub async fn notify(
&self,
notification_json: &[u8],
) -> Result<(), RpcServerError<StreamError>>
pub async fn notify( &self, notification_json: &[u8], ) -> Result<(), RpcServerError<StreamError>>
Broadcast a message to all connected clients.
Sourcepub async fn serve<Stream: Read<Error = StreamError> + Write<Error = StreamError>>(
&self,
stream: &mut Stream,
) -> Result<(), RpcServerError<StreamError>>
pub async fn serve<Stream: Read<Error = StreamError> + Write<Error = StreamError>>( &self, stream: &mut Stream, ) -> Result<(), RpcServerError<StreamError>>
Serve requests using the given stream.
Trait Implementations§
Source§impl<StreamError, const MAX_CLIENTS: usize, const MAX_HANDLERS: usize, const MAX_MESSAGE_LEN: usize, const HANDLER_STACK_SIZE: usize, const NOTIFICATION_QUEUE_SIZE: usize> Default for RpcServer<'_, StreamError, MAX_CLIENTS, MAX_HANDLERS, MAX_MESSAGE_LEN, HANDLER_STACK_SIZE, NOTIFICATION_QUEUE_SIZE>
impl<StreamError, const MAX_CLIENTS: usize, const MAX_HANDLERS: usize, const MAX_MESSAGE_LEN: usize, const HANDLER_STACK_SIZE: usize, const NOTIFICATION_QUEUE_SIZE: usize> Default for RpcServer<'_, StreamError, MAX_CLIENTS, MAX_HANDLERS, MAX_MESSAGE_LEN, HANDLER_STACK_SIZE, NOTIFICATION_QUEUE_SIZE>
Auto Trait Implementations§
impl<'a, StreamError, const MAX_CLIENTS: usize = DEFAULT_MAX_CLIENTS, const MAX_HANDLERS: usize = DEFAULT_MAX_HANDLERS, const MAX_MESSAGE_LEN: usize = DEFAULT_MAX_MESSAGE_LEN, const HANDLER_STACK_SIZE: usize = DEFAULT_HANDLER_STACK_SIZE, const NOTIFICATION_QUEUE_SIZE: usize = DEFAULT_NOTIFICATION_QUEUE_SIZE> !Freeze for RpcServer<'a, StreamError, MAX_CLIENTS, MAX_HANDLERS, MAX_MESSAGE_LEN, HANDLER_STACK_SIZE, NOTIFICATION_QUEUE_SIZE>
impl<'a, StreamError, const MAX_CLIENTS: usize = DEFAULT_MAX_CLIENTS, const MAX_HANDLERS: usize = DEFAULT_MAX_HANDLERS, const MAX_MESSAGE_LEN: usize = DEFAULT_MAX_MESSAGE_LEN, const HANDLER_STACK_SIZE: usize = DEFAULT_HANDLER_STACK_SIZE, const NOTIFICATION_QUEUE_SIZE: usize = DEFAULT_NOTIFICATION_QUEUE_SIZE> !RefUnwindSafe for RpcServer<'a, StreamError, MAX_CLIENTS, MAX_HANDLERS, MAX_MESSAGE_LEN, HANDLER_STACK_SIZE, NOTIFICATION_QUEUE_SIZE>
impl<'a, StreamError, const MAX_CLIENTS: usize, const MAX_HANDLERS: usize, const MAX_MESSAGE_LEN: usize, const HANDLER_STACK_SIZE: usize, const NOTIFICATION_QUEUE_SIZE: usize> Send for RpcServer<'a, StreamError, MAX_CLIENTS, MAX_HANDLERS, MAX_MESSAGE_LEN, HANDLER_STACK_SIZE, NOTIFICATION_QUEUE_SIZE>where
StreamError: Send,
impl<'a, StreamError, const MAX_CLIENTS: usize, const MAX_HANDLERS: usize, const MAX_MESSAGE_LEN: usize, const HANDLER_STACK_SIZE: usize, const NOTIFICATION_QUEUE_SIZE: usize> Sync for RpcServer<'a, StreamError, MAX_CLIENTS, MAX_HANDLERS, MAX_MESSAGE_LEN, HANDLER_STACK_SIZE, NOTIFICATION_QUEUE_SIZE>where
StreamError: Sync,
impl<'a, StreamError, const MAX_CLIENTS: usize, const MAX_HANDLERS: usize, const MAX_MESSAGE_LEN: usize, const HANDLER_STACK_SIZE: usize, const NOTIFICATION_QUEUE_SIZE: usize> Unpin for RpcServer<'a, StreamError, MAX_CLIENTS, MAX_HANDLERS, MAX_MESSAGE_LEN, HANDLER_STACK_SIZE, NOTIFICATION_QUEUE_SIZE>where
StreamError: Unpin,
impl<'a, StreamError, const MAX_CLIENTS: usize = DEFAULT_MAX_CLIENTS, const MAX_HANDLERS: usize = DEFAULT_MAX_HANDLERS, const MAX_MESSAGE_LEN: usize = DEFAULT_MAX_MESSAGE_LEN, const HANDLER_STACK_SIZE: usize = DEFAULT_HANDLER_STACK_SIZE, const NOTIFICATION_QUEUE_SIZE: usize = DEFAULT_NOTIFICATION_QUEUE_SIZE> !UnwindSafe for RpcServer<'a, StreamError, MAX_CLIENTS, MAX_HANDLERS, MAX_MESSAGE_LEN, HANDLER_STACK_SIZE, NOTIFICATION_QUEUE_SIZE>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more