nros_std_msgs/msg/
multi_array_dimension.rs1use nros_core::{Deserialize, RosMessage, Serialize};
6use nros_serdes::{CdrReader, CdrWriter, DeserError, SerError};
7
8#[derive(Debug, Clone, Default, PartialEq)]
10pub struct MultiArrayDimension {
11 pub label: heapless::String<256>,
12 pub size: u32,
13 pub stride: u32,
14}
15
16impl Serialize for MultiArrayDimension {
17 fn serialize(&self, writer: &mut CdrWriter) -> Result<(), SerError> {
18 let __dh = writer.begin_dheader()?;
21 writer.write_string(self.label.as_str())?;
22 writer.write_u32(self.size)?;
23 writer.write_u32(self.stride)?;
24 writer.end_dheader(__dh)?;
25 Ok(())
26 }
27}
28
29impl Deserialize for MultiArrayDimension {
30 fn deserialize(reader: &mut CdrReader) -> Result<Self, DeserError> {
31 let __dh = reader.begin_dheader()?;
34 let __value = Self {
35 label: {
36 let s = reader.read_string()?;
37 heapless::String::try_from(s).map_err(|_| DeserError::CapacityExceeded)?
38 },
39 size: reader.read_u32()?,
40 stride: reader.read_u32()?,
41 };
42 reader.end_dheader(__dh)?;
43 Ok(__value)
44 }
45}
46
47impl RosMessage for MultiArrayDimension {
48 const TYPE_NAME: &'static str = "std_msgs::msg::dds_::MultiArrayDimension_";
49 const TYPE_HASH: &'static str = "TypeHashNotSupported";
50 const MAX_SERIALIZED_BOUND: Option<usize> = ::nros_serdes::size::max_serialized_bound::<Self>();
54}
55
56impl ::nros_serdes::Message for MultiArrayDimension {
61 const TYPE_NAME: &'static str = "std_msgs/msg/MultiArrayDimension";
62 const FIELDS: &'static [::nros_serdes::Field] = &[
63 ::nros_serdes::Field {
64 name: "label",
65 ty: ::nros_serdes::FieldType::String,
66 offset: ::core::mem::offset_of!(MultiArrayDimension, label),
67 },
68 ::nros_serdes::Field {
69 name: "size",
70 ty: ::nros_serdes::FieldType::Uint32,
71 offset: ::core::mem::offset_of!(MultiArrayDimension, size),
72 },
73 ::nros_serdes::Field {
74 name: "stride",
75 ty: ::nros_serdes::FieldType::Uint32,
76 offset: ::core::mem::offset_of!(MultiArrayDimension, stride),
77 },
78 ];
79}