pub struct ReadRequest {
pub bytes_size: i64,
}
Expand description
Message that represents client readiness for receiving more data.
Fields§
§bytes_size: i64
Server and client each keep track of total bytes size of all ReadResponses. When client is ready to receive N more bytes in responses (to increment possible total by N), it sends a ReadRequest with bytes_size = N. bytes_size value must be positive. So in expression ‘A = (sum of bytes_size in all ReadRequests) - (sum of bytes_size in all ReadResponses)’ server will keep A (available size for responses) non-negative. But there is an exception. If server receives ReadRequest, and the first message in response exceeds A - then it will still be delivered, and A will become negative until enough additional ReadRequests. Example:
- Let client have 200 bytes buffer. It sends ReadRequest with bytes_size = 200;
- Server may return one ReadResponse with bytes_size = 70 and than another 80 bytes response; now client buffer has 50 free bytes, server is free to send up to 50 bytes in responses.
- Client processes 100 bytes from buffer, now buffer free space is 150 bytes, so client sends ReadRequest with bytes_size = 100;
- Server is free to send up to 50 + 100 = 150 bytes. But the next read message is too big, and it sends 160 bytes ReadResponse.
- Let’s assume client somehow processes it, and its 200 bytes buffer is free again. It should account for excess 10 bytes and send ReadRequest with bytes_size = 210.
Trait Implementations§
Source§impl Clone for ReadRequest
impl Clone for ReadRequest
Source§fn clone(&self) -> ReadRequest
fn clone(&self) -> ReadRequest
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for ReadRequest
impl Debug for ReadRequest
Source§impl Default for ReadRequest
impl Default for ReadRequest
Source§impl<'de> Deserialize<'de> for ReadRequest
impl<'de> Deserialize<'de> for ReadRequest
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Message for ReadRequest
impl Message for ReadRequest
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Returns the encoded length of the message without a length delimiter.
Source§fn encode<B>(&self, buf: &mut B) -> Result<(), EncodeError>
fn encode<B>(&self, buf: &mut B) -> Result<(), EncodeError>
Encodes the message to a buffer. Read more
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Encodes the message to a newly allocated buffer.
Source§fn encode_length_delimited<B>(&self, buf: &mut B) -> Result<(), EncodeError>
fn encode_length_delimited<B>(&self, buf: &mut B) -> Result<(), EncodeError>
Encodes the message with a length-delimiter to a buffer. Read more
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Encodes the message with a length-delimiter to a newly allocated buffer.
Source§fn decode<B>(buf: B) -> Result<Self, DecodeError>
fn decode<B>(buf: B) -> Result<Self, DecodeError>
Decodes an instance of the message from a buffer. Read more
Source§fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError>
fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError>
Decodes a length-delimited instance of the message from the buffer.
Source§fn merge<B>(&mut self, buf: B) -> Result<(), DecodeError>
fn merge<B>(&mut self, buf: B) -> Result<(), DecodeError>
Decodes an instance of the message from a buffer, and merges it into
self
. Read moreSource§fn merge_length_delimited<B>(&mut self, buf: B) -> Result<(), DecodeError>
fn merge_length_delimited<B>(&mut self, buf: B) -> Result<(), DecodeError>
Decodes a length-delimited instance of the message from buffer, and
merges it into
self
.Source§impl PartialEq for ReadRequest
impl PartialEq for ReadRequest
Source§impl Serialize for ReadRequest
impl Serialize for ReadRequest
impl StructuralPartialEq for ReadRequest
Auto Trait Implementations§
impl Freeze for ReadRequest
impl RefUnwindSafe for ReadRequest
impl Send for ReadRequest
impl Sync for ReadRequest
impl Unpin for ReadRequest
impl UnwindSafe for ReadRequest
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T
in a tonic::Request