Struct ydb_unofficial::generated::ydb::topic::stream_read_message::ReadRequest
source · pub struct ReadRequest {
pub bytes_size: i64,
}Expand description
Message that represents client readiness for receiving more data.
Fields§
§bytes_size: i64Server 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; 2) 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 shoud 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§fn default() -> ReadRequest
fn default() -> ReadRequest
Returns the “default value” for a type. 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>where
B: BufMut,
Self: Sized,
fn encode<B>(&self, buf: &mut B) -> Result<(), EncodeError>where B: BufMut, Self: Sized,
Encodes the message to a buffer. Read more
source§fn encode_to_vec(&self) -> Vec<u8, Global>where
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8, Global>where Self: Sized,
Encodes the message to a newly allocated buffer.
source§fn encode_length_delimited<B>(&self, buf: &mut B) -> Result<(), EncodeError>where
B: BufMut,
Self: Sized,
fn encode_length_delimited<B>(&self, buf: &mut B) -> Result<(), EncodeError>where B: BufMut, Self: Sized,
Encodes the message with a length-delimiter to a buffer. Read more
source§fn encode_length_delimited_to_vec(&self) -> Vec<u8, Global>where
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8, Global>where Self: Sized,
Encodes the message with a length-delimiter to a newly allocated buffer.
source§fn decode<B>(buf: B) -> Result<Self, DecodeError>where
B: Buf,
Self: Default,
fn decode<B>(buf: B) -> Result<Self, DecodeError>where B: Buf, Self: Default,
Decodes an instance of the message from a buffer. Read more
source§fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError>where
B: Buf,
Self: Default,
fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError>where B: Buf, Self: Default,
Decodes a length-delimited instance of the message from the buffer.
source§fn merge<B>(&mut self, buf: B) -> Result<(), DecodeError>where
B: Buf,
Self: Sized,
fn merge<B>(&mut self, buf: B) -> Result<(), DecodeError>where B: Buf, Self: Sized,
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>where
B: Buf,
Self: Sized,
fn merge_length_delimited<B>(&mut self, buf: B) -> Result<(), DecodeError>where B: Buf, Self: Sized,
Decodes a length-delimited instance of the message from buffer, and
merges it into
self.source§impl PartialEq<ReadRequest> for ReadRequest
impl PartialEq<ReadRequest> for ReadRequest
source§fn eq(&self, other: &ReadRequest) -> bool
fn eq(&self, other: &ReadRequest) -> bool
This method tests for
self and other values to be equal, and is used
by ==.impl StructuralPartialEq for ReadRequest
Auto Trait Implementations§
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> 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