Struct essrpc::transports::JSONTransport
source · Expand description
Transport implementation over JSON-RPC. Can be used over any
Read+Write
channel (local socket, internet socket, pipe,
etc).
Implementations§
Trait Implementations§
source§impl<C: Read + Write> Transport for JSONTransport<C>
impl<C: Read + Write> Transport for JSONTransport<C>
§type TXState = JTXState
type TXState = JTXState
Type of transport-internal state used when bulding a call for
transmission on the client. May be unit if the transport does not need to track
state or does so through member variables. Read more
§type RXState = JRXState
type RXState = JRXState
Type of transport-internal state used when receiving a call on
the server. May be unit if the transport does not need to
track state or does so through member variables. Read more
source§fn tx_begin_call(&mut self, method: MethodId) -> Result<JTXState, RPCError>
fn tx_begin_call(&mut self, method: MethodId) -> Result<JTXState, RPCError>
Begin calling the given method. The transport may begin transmitting over the wire,
or it may may wait until the call to
tx_finalize
. Read moresource§fn tx_add_param(
&mut self,
name: &'static str,
value: impl Serialize,
state: &mut JTXState
) -> Result<(), RPCError>
fn tx_add_param(
&mut self,
name: &'static str,
value: impl Serialize,
state: &mut JTXState
) -> Result<(), RPCError>
Add a parameter to a method call started with
tx_begin_call
. This method is guaranteed to be called only
after tx_begin_call
and to be called appropriately for each
parameter of the method passed to tx_begin_call
. state
is
the object returned by tx_begin_call
. Parameters are always
added and read in order, so transmitting the name is not a requirement. Read moresource§fn tx_finalize(&mut self, state: &mut JTXState) -> Result<(), RPCError>
fn tx_finalize(&mut self, state: &mut JTXState) -> Result<(), RPCError>
Finalize transmission of a method call. Called only after
tx_begin_call
and appropriate calls to tx_add_param
. If
the transport has not yet transmitted the method identifier
and parameters over the wire, it should do so at this time. Read moresource§fn rx_begin_call(&mut self) -> Result<(PartialMethodId, JRXState), RPCError>
fn rx_begin_call(&mut self) -> Result<(PartialMethodId, JRXState), RPCError>
Begin reading a method cal on the server. Returns the method
name or identifier and internal state. Read more
source§fn rx_read_param<T>(
&mut self,
name: &'static str,
state: &mut JRXState
) -> Result<T, RPCError>where
for<'de> T: Deserialize<'de>,
fn rx_read_param<T>(
&mut self,
name: &'static str,
state: &mut JRXState
) -> Result<T, RPCError>where
for<'de> T: Deserialize<'de>,
Read a method parameter after a an
rx_begin_call
. Parameters
are always read in order, so some transports may choose to
ignore the name. Read moresource§fn rx_response<T>(&mut self) -> Result<T, RPCError>where
for<'de> T: Deserialize<'de>,
fn rx_response<T>(&mut self) -> Result<T, RPCError>where
for<'de> T: Deserialize<'de>,
Read the return value of a method call. Always called after
tx_finalize
.