Skip to main content

ReqOptions

Struct ReqOptions 

Source
pub struct ReqOptions {
    pub conn: ConnOptions,
    pub timeout: Duration,
    pub blocking_connect: bool,
    pub min_compress_size: usize,
    pub write_buffer_size: usize,
    pub write_buffer_linger: Option<Duration>,
    pub max_queue_size: usize,
    pub max_pending_requests: usize,
}
Expand description

The request socket options.

Fields§

§conn: ConnOptions

Options for the connection manager.

§timeout: Duration

Timeout duration for requests.

§blocking_connect: bool

Wether to block on initial connection to the target.

§min_compress_size: usize

Minimum payload size in bytes for compression to be used. If the payload is smaller than this threshold, it will not be compressed.

§write_buffer_size: usize

The size of the write buffer in bytes.

§write_buffer_linger: Option<Duration>

The linger duration for the write buffer (how long to wait before flushing).

§max_queue_size: usize

The size of the channel buffer between the socket and the driver. This controls how many requests can be queued, on top of the current pending requests, before the socket returns ReqError::HighWaterMarkReached.

§max_pending_requests: usize

High-water mark for pending requests. When this limit is reached, new requests will not be processed and will be queued up to max_queue_size elements. Once both limits are reached, new requests will return ReqError::HighWaterMarkReached.

Implementations§

Source§

impl ReqOptions

Source

pub fn new(profile: Profile) -> Self

Creates new options based on the given profile.

Source

pub fn low_latency() -> Self

Creates options optimized for low latency.

Source

pub fn high_throughput() -> Self

Creates options optimized for high throughput.

Source

pub fn balanced() -> Self

Creates options optimized for a balanced trade-off between latency and throughput.

Source§

impl ReqOptions

Source

pub fn with_timeout(self, timeout: Duration) -> Self

Sets the timeout for the socket.

Source

pub fn with_blocking_connect(self) -> Self

Enables blocking initial connections to the target.

Source

pub fn with_backoff_duration(self, backoff_duration: Duration) -> Self

Sets the backoff duration for the socket.

Source

pub fn with_retry_attempts(self, retry_attempts: usize) -> Self

Sets the maximum number of retry attempts.

If None, all connections will be retried indefinitely.

Source

pub fn with_min_compress_size(self, min_compress_size: usize) -> Self

Sets the minimum payload size in bytes for compression to be used.

If the payload is smaller than this threshold, it will not be compressed.

Default: DEFAULT_BUFFER_SIZE

Source

pub fn with_write_buffer_size(self, size: usize) -> Self

Sets the size (max capacity) of the write buffer in bytes. When the buffer is full, it will be flushed to the underlying transport.

Default: DEFAULT_BUFFER_SIZE

Source

pub fn with_write_buffer_linger(self, duration: Option<Duration>) -> Self

Sets the linger duration for the write buffer. If None, the write buffer will only be flushed when the buffer is full.

Default: 100µs

Source

pub fn with_max_queue_size(self, size: usize) -> Self

Sets the size of the channel buffer between the socket and the driver. This controls how many requests can be queued, on top of the current pending requests, before the socket returns ReqError::HighWaterMarkReached.

Default: DEFAULT_QUEUE_SIZE

Source

pub fn with_max_pending_requests(self, hwm: usize) -> Self

Sets the high-water mark for pending requests. When this limit is reached, new requests will not be processed and will be queued up to Self::with_max_queue_size elements. Once both limits are reached, new requests will return ReqError::HighWaterMarkReached.

Default: DEFAULT_QUEUE_SIZE

Trait Implementations§

Source§

impl Clone for ReqOptions

Source§

fn clone(&self) -> ReqOptions

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ReqOptions

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ReqOptions

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit #126799)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> SpanExt<T> for T

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more