pub struct StdioJsonRpcClient { /* private fields */ }Expand description
JSON-RPC client for stdio transports with separate read/write paths.
This client avoids the lock contention issue by using separate mutexes for reading and writing.
Implementations§
Source§impl StdioJsonRpcClient
impl StdioJsonRpcClient
Sourcepub fn new(transport: StdioTransport) -> Self
pub fn new(transport: StdioTransport) -> Self
Create a new stdio JSON-RPC client from a transport.
Sourcepub fn is_running(&self) -> bool
pub fn is_running(&self) -> bool
Check if client is running.
Sourcepub async fn set_notification_handler<F>(&self, handler: F)
pub async fn set_notification_handler<F>(&self, handler: F)
Set handler for incoming notifications.
Sourcepub async fn set_request_handler<F>(&self, handler: F)
pub async fn set_request_handler<F>(&self, handler: F)
Set handler for incoming requests.
Sourcepub async fn invoke(&self, method: &str, params: Option<Value>) -> Result<Value>
pub async fn invoke(&self, method: &str, params: Option<Value>) -> Result<Value>
Send a request and await response.
Auto Trait Implementations§
impl !Freeze for StdioJsonRpcClient
impl !RefUnwindSafe for StdioJsonRpcClient
impl Send for StdioJsonRpcClient
impl Sync for StdioJsonRpcClient
impl Unpin for StdioJsonRpcClient
impl UnsafeUnpin for StdioJsonRpcClient
impl !UnwindSafe for StdioJsonRpcClient
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more