pub struct Request<'a> {
pub service: &'a str,
pub method: &'a str,
pub seq_no: u64,
pub body: &'a [u8],
pub caller: Vec<ClientID>,
pub trace: Option<TraceID>,
}
Expand description
A request to a server.
Fields§
§service: &'a str
The service this request is intended for.
method: &'a str
The method this request intends to call.
seq_no: u64
A client-provided sequence number used to match requests to responses.
body: &'a [u8]
The body of the request.
caller: Vec<ClientID>
A chain of callers.
trace: Option<TraceID>
The trace ID for this request.
Trait Implementations§
source§impl<'a> FieldPackHelper<'a, message<Request<'a>>> for Request<'a>
impl<'a> FieldPackHelper<'a, message<Request<'a>>> for Request<'a>
source§fn field_pack_sz(&self, tag: &Tag) -> usize
fn field_pack_sz(&self, tag: &Tag) -> usize
The size of encoding self with tag.
source§fn field_pack(&self, tag: &Tag, out: &mut [u8])
fn field_pack(&self, tag: &Tag, out: &mut [u8])
Pack the tag into the output buffer.
source§impl<'a> FieldUnpackHelper<'a, message<Request<'a>>> for Request<'a>
impl<'a> FieldUnpackHelper<'a, message<Request<'a>>> for Request<'a>
source§fn merge_field(&mut self, proto: message<Request<'a>>)
fn merge_field(&mut self, proto: message<Request<'a>>)
Merge the proto into self.
source§impl<'a> Packable for Request<'a>
impl<'a> Packable for Request<'a>
source§fn pack_sz(&self) -> usize
fn pack_sz(&self) -> usize
pack_sz
returns the number of bytes required to serialize the Packable object.source§fn pack(&self, buf: &mut [u8])
fn pack(&self, buf: &mut [u8])
pack
fills in the buffer out
with the packed binary representation of the Packable
object. The implementor is responsible to ensure that out
is exactly pack_sz()
bytes
and implementations are encouraged to assert this. Read moresource§fn stream<W: Write>(&self, writer: &mut W) -> Result<usize, Error>
fn stream<W: Write>(&self, writer: &mut W) -> Result<usize, Error>
stream
writes the object to the provided writer using the same representation that would
be used in a call to pack
. The implementor is responsible for making sure that the
number of bytes written is exactly equal to the number of required bytes. Read moresource§impl<'a> Unpackable<'a> for Request<'a>
impl<'a> Unpackable<'a> for Request<'a>
impl<'a> Message<'a> for Request<'a>
Auto Trait Implementations§
impl<'a> RefUnwindSafe for Request<'a>
impl<'a> Send for Request<'a>
impl<'a> Sync for Request<'a>
impl<'a> Unpin for Request<'a>
impl<'a> UnwindSafe for Request<'a>
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