Skip to main content

Args

pub struct Args<ReadAddress, ReadValue, WriteAddress, WriteValue> { /* private fields */ }
Expand description

Address range for the reading operation along with address range and value for the writing operation.

§Example

use fennec_modbus::protocol::{codec::Encode, function::read_write_multiple::Args};

// Read six registers starting at register 4, and to write three
// registers starting at register 15 (Modbus spec §6.17 example).
assert_eq!(
    Args::<_, [u16; 6], _, _>::new(3, 14, [0x00FF_u16, 0x00FF, 0x00FF]).to_bytes(),
    [
        0x00, 0x03, // read starting address
        0x00, 0x06, // quantity of registers to read
        0x00, 0x0E, // write starting address
        0x00, 0x03, // quantity to write
        0x06, // write byte count
        0x00, 0xFF, // register 1
        0x00, 0xFF, // register 2
        0x00, 0xFF, // register 3
    ]
);

Implementations§

Source§

impl<ReadAddress, ReadValue: BitSize, WriteAddress, WriteValue> Args<ReadAddress, ReadValue, WriteAddress, WriteValue>

Source

pub const fn new( read_address: ReadAddress, write_address: WriteAddress, write_value: WriteValue, ) -> Self

Trait Implementations§

Source§

impl<ReadAddress, ReadValue, WriteAddress, WriteValue> Encode for Args<ReadAddress, ReadValue, WriteAddress, WriteValue>
where ReadAddress: Address, ReadValue: BitSize, WriteAddress: Address, WriteValue: BitSize + Encode,

Source§

fn encode_to(&self, buf: &mut impl BufMut)

Source§

fn to_bytes(&self) -> Vec<u8>

Auto Trait Implementations§

§

impl<ReadAddress, ReadValue, WriteAddress, WriteValue> Freeze for Args<ReadAddress, ReadValue, WriteAddress, WriteValue>
where ReadAddress: Freeze, WriteAddress: Freeze, WriteValue: Freeze,

§

impl<ReadAddress, ReadValue, WriteAddress, WriteValue> RefUnwindSafe for Args<ReadAddress, ReadValue, WriteAddress, WriteValue>
where ReadAddress: RefUnwindSafe, WriteAddress: RefUnwindSafe, WriteValue: RefUnwindSafe, ReadValue: RefUnwindSafe,

§

impl<ReadAddress, ReadValue, WriteAddress, WriteValue> Send for Args<ReadAddress, ReadValue, WriteAddress, WriteValue>
where ReadAddress: Send, WriteAddress: Send, WriteValue: Send, ReadValue: Send,

§

impl<ReadAddress, ReadValue, WriteAddress, WriteValue> Sync for Args<ReadAddress, ReadValue, WriteAddress, WriteValue>
where ReadAddress: Sync, WriteAddress: Sync, WriteValue: Sync, ReadValue: Sync,

§

impl<ReadAddress, ReadValue, WriteAddress, WriteValue> Unpin for Args<ReadAddress, ReadValue, WriteAddress, WriteValue>
where ReadAddress: Unpin, WriteAddress: Unpin, WriteValue: Unpin, ReadValue: Unpin,

§

impl<ReadAddress, ReadValue, WriteAddress, WriteValue> UnsafeUnpin for Args<ReadAddress, ReadValue, WriteAddress, WriteValue>
where ReadAddress: UnsafeUnpin, WriteAddress: UnsafeUnpin, WriteValue: UnsafeUnpin,

§

impl<ReadAddress, ReadValue, WriteAddress, WriteValue> UnwindSafe for Args<ReadAddress, ReadValue, WriteAddress, WriteValue>
where ReadAddress: UnwindSafe, WriteAddress: UnwindSafe, WriteValue: UnwindSafe, ReadValue: UnwindSafe,

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> 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, 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.