#[repr(C)]pub struct csp_packet_s {
pub packet_info: csp_packet_s_anon_union,
pub length: u16,
pub id: csp_id_t,
pub next: *mut csp_packet_s,
pub header: [u8; 8],
pub packet_data_union: csp_packet_s_data_union,
}Expand description
CSP Packet.
This structure is constructed to fit with all interface and protocols to prevent the need to copy data (zero copy).
.. note:: In most cases a CSP packet cannot be reused in case of send failure, because the lower layers may add additional data causing increased length (e.g. CRC32), convert the CSP id to different endian (e.g. I2C), etc.
Fields§
§packet_info: csp_packet_s_anon_union§length: u16§id: csp_id_t§next: *mut csp_packet_s§header: [u8; 8]Additional header bytes, to prepend packed data before transmission This must be minimum 6 bytes to accomodate CSP 2.0. But some implementations require much more scratch working area for encryption for example.
Ultimately after csp_id_pack() this area will be filled with the CSP header
packet_data_union: csp_packet_s_data_unionTrait Implementations§
Source§impl Clone for csp_packet_s
impl Clone for csp_packet_s
Source§fn clone(&self) -> csp_packet_s
fn clone(&self) -> csp_packet_s
Returns a duplicate 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 moreimpl Copy for csp_packet_s
Auto Trait Implementations§
impl Freeze for csp_packet_s
impl RefUnwindSafe for csp_packet_s
impl !Send for csp_packet_s
impl !Sync for csp_packet_s
impl Unpin for csp_packet_s
impl UnwindSafe for csp_packet_s
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