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