nros_diagnostic_msgs/msg/
key_value.rs1use nros_core::{Deserialize, RosMessage, Serialize};
6use nros_serdes::{CdrReader, CdrWriter, DeserError, SerError};
7
8#[derive(Debug, Clone, Default, PartialEq)]
10pub struct KeyValue {
11 pub key: heapless::String<32>,
12 pub value: heapless::String<64>,
13}
14
15impl Serialize for KeyValue {
16 fn serialize(&self, writer: &mut CdrWriter) -> Result<(), SerError> {
17 let __dh = writer.begin_dheader()?;
20 writer.write_string(self.key.as_str())?;
21 writer.write_string(self.value.as_str())?;
22 writer.end_dheader(__dh)?;
23 Ok(())
24 }
25}
26
27impl Deserialize for KeyValue {
28 fn deserialize(reader: &mut CdrReader) -> Result<Self, DeserError> {
29 let __dh = reader.begin_dheader()?;
32 let __value = Self {
33 key: {
34 let s = reader.read_string()?;
35 heapless::String::try_from(s).map_err(|_| DeserError::CapacityExceeded)?
36 },
37 value: {
38 let s = reader.read_string()?;
39 heapless::String::try_from(s).map_err(|_| DeserError::CapacityExceeded)?
40 },
41 };
42 reader.end_dheader(__dh)?;
43 Ok(__value)
44 }
45}
46
47impl RosMessage for KeyValue {
48 const TYPE_NAME: &'static str = "diagnostic_msgs::msg::dds_::KeyValue_";
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 KeyValue {
61 const TYPE_NAME: &'static str = "diagnostic_msgs/msg/KeyValue";
62 const FIELDS: &'static [::nros_serdes::Field] = &[
63 ::nros_serdes::Field {
64 name: "key",
65 ty: ::nros_serdes::FieldType::BoundedString(32),
66 offset: ::core::mem::offset_of!(KeyValue, key),
67 },
68 ::nros_serdes::Field {
69 name: "value",
70 ty: ::nros_serdes::FieldType::BoundedString(64),
71 offset: ::core::mem::offset_of!(KeyValue, value),
72 },
73 ];
74}