nros_std_msgs/msg/
string.rs1use nros_core::{Deserialize, RosMessage, Serialize};
6use nros_serdes::{CdrReader, CdrWriter, DeserError, SerError};
7
8#[derive(Debug, Clone, Default, PartialEq)]
10pub struct String {
11 pub data: heapless::String<256>,
12}
13
14impl Serialize for String {
15 fn serialize(&self, writer: &mut CdrWriter) -> Result<(), SerError> {
16 let __dh = writer.begin_dheader()?;
19 writer.write_string(self.data.as_str())?;
20 writer.end_dheader(__dh)?;
21 Ok(())
22 }
23}
24
25impl Deserialize for String {
26 fn deserialize(reader: &mut CdrReader) -> Result<Self, DeserError> {
27 let __dh = reader.begin_dheader()?;
30 let __value = Self {
31 data: {
32 let s = reader.read_string()?;
33 heapless::String::try_from(s).map_err(|_| DeserError::CapacityExceeded)?
34 },
35 };
36 reader.end_dheader(__dh)?;
37 Ok(__value)
38 }
39}
40
41impl RosMessage for String {
42 const TYPE_NAME: &'static str = "std_msgs::msg::dds_::String_";
43 const TYPE_HASH: &'static str = "TypeHashNotSupported";
44 const MAX_SERIALIZED_BOUND: Option<usize> = ::nros_serdes::size::max_serialized_bound::<Self>();
48}
49
50impl ::nros_serdes::Message for String {
55 const TYPE_NAME: &'static str = "std_msgs/msg/String";
56 const FIELDS: &'static [::nros_serdes::Field] = &[::nros_serdes::Field {
57 name: "data",
58 ty: ::nros_serdes::FieldType::String,
59 offset: ::core::mem::offset_of!(String, data),
60 }];
61}