nros_diagnostic_msgs/srv/
add_diagnostics.rs1use nros_core::{Deserialize, RosMessage, RosService, Serialize};
6use nros_serdes::{CdrReader, CdrWriter, DeserError, SerError};
7
8#[derive(Debug, Clone, Default, PartialEq)]
10pub struct AddDiagnosticsRequest {
11 pub load_namespace: heapless::String<256>,
12}
13
14impl Serialize for AddDiagnosticsRequest {
15 fn serialize(&self, writer: &mut CdrWriter) -> Result<(), SerError> {
16 let __dh = writer.begin_dheader()?;
18 writer.write_string(self.load_namespace.as_str())?;
19 writer.end_dheader(__dh)?;
20 Ok(())
21 }
22}
23
24impl Deserialize for AddDiagnosticsRequest {
25 fn deserialize(reader: &mut CdrReader) -> Result<Self, DeserError> {
26 let __dh = reader.begin_dheader()?;
27 let __value = Self {
28 load_namespace: {
29 let s = reader.read_string()?;
30 heapless::String::try_from(s).map_err(|_| DeserError::CapacityExceeded)?
31 },
32 };
33 reader.end_dheader(__dh)?;
34 Ok(__value)
35 }
36}
37
38impl RosMessage for AddDiagnosticsRequest {
39 const TYPE_NAME: &'static str = "diagnostic_msgs::srv::dds_::AddDiagnostics_Request_";
40 const TYPE_HASH: &'static str = "TypeHashNotSupported";
41 const MAX_SERIALIZED_BOUND: Option<usize> = ::nros_serdes::size::max_serialized_bound::<Self>();
44}
45
46impl ::nros_serdes::Message for AddDiagnosticsRequest {
51 const TYPE_NAME: &'static str = "diagnostic_msgs/srv/AddDiagnostics_Request";
52 const FIELDS: &'static [::nros_serdes::Field] = &[::nros_serdes::Field {
53 name: "load_namespace",
54 ty: ::nros_serdes::FieldType::String,
55 offset: ::core::mem::offset_of!(AddDiagnosticsRequest, load_namespace),
56 }];
57}
58
59#[derive(Debug, Clone, Default, PartialEq)]
61pub struct AddDiagnosticsResponse {
62 pub success: bool,
63 pub message: heapless::String<256>,
64}
65
66impl Serialize for AddDiagnosticsResponse {
67 fn serialize(&self, writer: &mut CdrWriter) -> Result<(), SerError> {
68 let __dh = writer.begin_dheader()?;
70 writer.write_bool(self.success)?;
71 writer.write_string(self.message.as_str())?;
72 writer.end_dheader(__dh)?;
73 Ok(())
74 }
75}
76
77impl Deserialize for AddDiagnosticsResponse {
78 fn deserialize(reader: &mut CdrReader) -> Result<Self, DeserError> {
79 let __dh = reader.begin_dheader()?;
80 let __value = Self {
81 success: reader.read_bool()?,
82 message: {
83 let s = reader.read_string()?;
84 heapless::String::try_from(s).map_err(|_| DeserError::CapacityExceeded)?
85 },
86 };
87 reader.end_dheader(__dh)?;
88 Ok(__value)
89 }
90}
91
92impl RosMessage for AddDiagnosticsResponse {
93 const TYPE_NAME: &'static str = "diagnostic_msgs::srv::dds_::AddDiagnostics_Response_";
94 const TYPE_HASH: &'static str = "TypeHashNotSupported";
95 const MAX_SERIALIZED_BOUND: Option<usize> = ::nros_serdes::size::max_serialized_bound::<Self>();
98}
99
100impl ::nros_serdes::Message for AddDiagnosticsResponse {
103 const TYPE_NAME: &'static str = "diagnostic_msgs/srv/AddDiagnostics_Response";
104 const FIELDS: &'static [::nros_serdes::Field] = &[
105 ::nros_serdes::Field {
106 name: "success",
107 ty: ::nros_serdes::FieldType::Bool,
108 offset: ::core::mem::offset_of!(AddDiagnosticsResponse, success),
109 },
110 ::nros_serdes::Field {
111 name: "message",
112 ty: ::nros_serdes::FieldType::String,
113 offset: ::core::mem::offset_of!(AddDiagnosticsResponse, message),
114 },
115 ];
116}
117
118pub struct AddDiagnostics;
120
121impl RosService for AddDiagnostics {
122 type Request = AddDiagnosticsRequest;
123 type Reply = AddDiagnosticsResponse;
124
125 const SERVICE_NAME: &'static str = "diagnostic_msgs::srv::dds_::AddDiagnostics_";
126 const SERVICE_HASH: &'static str = "TypeHashNotSupported";
127}