nros_std_msgs/msg/
uint64multi_array.rs1use nros_core::{Deserialize, RosMessage, Serialize};
6use nros_serdes::{CdrReader, CdrWriter, DeserError, SerError};
7
8#[derive(Debug, Clone, Default, PartialEq)]
10pub struct UInt64MultiArray {
11 pub layout: crate::msg::MultiArrayLayout,
12 pub data: heapless::Vec<u64, 64>,
13}
14
15impl Serialize for UInt64MultiArray {
16 fn serialize(&self, writer: &mut CdrWriter) -> Result<(), SerError> {
17 let __dh = writer.begin_dheader()?;
20 self.layout.serialize(writer)?;
21 writer.write_u32(self.data.len() as u32)?;
22 for item in &self.data {
23 writer.write_u64(*item)?;
24 }
25 writer.end_dheader(__dh)?;
26 Ok(())
27 }
28}
29
30impl Deserialize for UInt64MultiArray {
31 fn deserialize(reader: &mut CdrReader) -> Result<Self, DeserError> {
32 let __dh = reader.begin_dheader()?;
35 let __value = Self {
36 layout: Deserialize::deserialize(reader)?,
37 data: {
38 let len = reader.read_u32()? as usize;
39 let mut vec = heapless::Vec::new();
40 for _ in 0..len {
41 vec.push(reader.read_u64()?)
42 .map_err(|_| DeserError::CapacityExceeded)?;
43 }
44 vec
45 },
46 };
47 reader.end_dheader(__dh)?;
48 Ok(__value)
49 }
50}
51
52impl RosMessage for UInt64MultiArray {
53 const TYPE_NAME: &'static str = "std_msgs::msg::dds_::UInt64MultiArray_";
54 const TYPE_HASH: &'static str = "TypeHashNotSupported";
55 const MAX_SERIALIZED_BOUND: Option<usize> = ::nros_serdes::size::max_serialized_bound::<Self>();
59}
60
61#[allow(non_upper_case_globals)]
66pub const NESTED_LAYOUT: ::nros_serdes::NestedType = ::nros_serdes::NestedType {
67 type_name: <crate::msg::MultiArrayLayout as ::nros_serdes::Message>::TYPE_NAME,
68 fields: <crate::msg::MultiArrayLayout as ::nros_serdes::Message>::FIELDS,
69};
70#[allow(non_upper_case_globals)]
71pub const FT_DATA_ELEM: ::nros_serdes::FieldType = ::nros_serdes::FieldType::Uint64;
72impl ::nros_serdes::Message for UInt64MultiArray {
73 const TYPE_NAME: &'static str = "std_msgs/msg/UInt64MultiArray";
74 const FIELDS: &'static [::nros_serdes::Field] = &[
75 ::nros_serdes::Field {
76 name: "layout",
77 ty: ::nros_serdes::FieldType::Nested(&NESTED_LAYOUT),
78 offset: ::core::mem::offset_of!(UInt64MultiArray, layout),
79 },
80 ::nros_serdes::Field {
81 name: "data",
82 ty: ::nros_serdes::FieldType::Sequence(&FT_DATA_ELEM),
83 offset: ::core::mem::offset_of!(UInt64MultiArray, data),
84 },
85 ];
86}