Struct BatchConfig

Source
pub struct BatchConfig {
    pub max_operations_per_packet: usize,
    pub max_packet_size: usize,
    pub packet_timeout_ms: u64,
    pub continue_on_error: bool,
    pub optimize_packet_packing: bool,
}
Expand description

Configuration for batch operations

This structure controls the behavior and performance characteristics of batch read/write operations. Proper tuning can significantly improve throughput for applications that need to process many tags.

Fields§

§max_operations_per_packet: usize

Maximum number of operations to include in a single CIP packet

Larger values improve performance but may exceed PLC packet size limits. Typical range: 10-50 operations per packet.

§max_packet_size: usize

Maximum packet size in bytes for batch operations

Should not exceed the PLC’s maximum packet size capability. Typical values: 504 bytes (default), up to 4000 bytes for modern PLCs.

§packet_timeout_ms: u64

Timeout for individual batch packets (in milliseconds)

This is per-packet timeout, not per-operation. Typical range: 1000-5000 milliseconds.

§continue_on_error: bool

Whether to continue processing other operations if one fails

If true, failed operations are reported but don’t stop the batch. If false, the first error stops the entire batch processing.

§optimize_packet_packing: bool

Whether to optimize packet packing by grouping similar operations

If true, reads and writes are grouped separately for better performance. If false, operations are processed in the order provided.

Trait Implementations§

Source§

impl Clone for BatchConfig

Source§

fn clone(&self) -> BatchConfig

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 BatchConfig

Source§

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

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

impl Default for BatchConfig

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)
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, 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> 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> Ungil for T
where T: Send,