safe_drive/msg/jazzy/interfaces/lifecycle_msgs/srv/
get_available_transitions.rs1use super::super::super::*;
3use super::super::*;
4use crate::msg::common_interfaces::*;
5use crate::msg::*;
6use crate::rcl;
7
8extern "C" {
9 fn lifecycle_msgs__srv__GetAvailableTransitions_Request__init(
10 msg: *mut GetAvailableTransitionsRequest,
11 ) -> bool;
12 fn lifecycle_msgs__srv__GetAvailableTransitions_Request__fini(
13 msg: *mut GetAvailableTransitionsRequest,
14 );
15 fn lifecycle_msgs__srv__GetAvailableTransitions_Request__Sequence__init(
16 msg: *mut GetAvailableTransitionsRequestSeqRaw,
17 size: usize,
18 ) -> bool;
19 fn lifecycle_msgs__srv__GetAvailableTransitions_Request__Sequence__fini(
20 msg: *mut GetAvailableTransitionsRequestSeqRaw,
21 );
22 fn lifecycle_msgs__srv__GetAvailableTransitions_Response__init(
23 msg: *mut GetAvailableTransitionsResponse,
24 ) -> bool;
25 fn lifecycle_msgs__srv__GetAvailableTransitions_Response__fini(
26 msg: *mut GetAvailableTransitionsResponse,
27 );
28 fn lifecycle_msgs__srv__GetAvailableTransitions_Response__Sequence__init(
29 msg: *mut GetAvailableTransitionsResponseSeqRaw,
30 size: usize,
31 ) -> bool;
32 fn lifecycle_msgs__srv__GetAvailableTransitions_Response__Sequence__fini(
33 msg: *mut GetAvailableTransitionsResponseSeqRaw,
34 );
35 fn rosidl_typesupport_c__get_service_type_support_handle__lifecycle_msgs__srv__GetAvailableTransitions(
36 ) -> *const rcl::rosidl_service_type_support_t;
37 fn rosidl_typesupport_c__get_message_type_support_handle__lifecycle_msgs__srv__GetAvailableTransitions_Request(
38 ) -> *const rcl::rosidl_message_type_support_t;
39 fn rosidl_typesupport_c__get_message_type_support_handle__lifecycle_msgs__srv__GetAvailableTransitions_Response(
40 ) -> *const rcl::rosidl_message_type_support_t;
41}
42
43#[repr(C)]
44#[derive(Debug)]
45pub struct GetAvailableTransitionsRequest {
46 _unused: u8,
47}
48
49#[repr(C)]
50#[derive(Debug)]
51pub struct GetAvailableTransitionsResponse {
52 pub available_transitions: TransitionDescriptionSeq<0>,
53}
54
55impl GetAvailableTransitionsRequest {
56 pub fn new() -> Option<Self> {
57 let mut msg: Self = unsafe { std::mem::MaybeUninit::zeroed().assume_init() };
58 if unsafe { lifecycle_msgs__srv__GetAvailableTransitions_Request__init(&mut msg) } {
59 Some(msg)
60 } else {
61 None
62 }
63 }
64}
65
66impl Drop for GetAvailableTransitionsRequest {
67 fn drop(&mut self) {
68 unsafe { lifecycle_msgs__srv__GetAvailableTransitions_Request__fini(self) };
69 }
70}
71
72#[repr(C)]
73#[derive(Debug)]
74struct GetAvailableTransitionsRequestSeqRaw {
75 data: *mut GetAvailableTransitionsRequest,
76 size: size_t,
77 capacity: size_t,
78}
79
80#[repr(C)]
84#[derive(Debug)]
85pub struct GetAvailableTransitionsRequestSeq<const N: usize> {
86 data: *mut GetAvailableTransitionsRequest,
87 size: size_t,
88 capacity: size_t,
89}
90
91impl<const N: usize> GetAvailableTransitionsRequestSeq<N> {
92 pub fn new(size: usize) -> Option<Self> {
96 if N != 0 && size > N {
97 return None;
99 }
100
101 let mut msg: GetAvailableTransitionsRequestSeqRaw =
102 unsafe { std::mem::MaybeUninit::zeroed().assume_init() };
103 if unsafe {
104 lifecycle_msgs__srv__GetAvailableTransitions_Request__Sequence__init(&mut msg, size)
105 } {
106 Some(Self {
107 data: msg.data,
108 size: msg.size,
109 capacity: msg.capacity,
110 })
111 } else {
112 None
113 }
114 }
115
116 pub fn null() -> Self {
117 let msg: GetAvailableTransitionsRequestSeqRaw =
118 unsafe { std::mem::MaybeUninit::zeroed().assume_init() };
119 Self {
120 data: msg.data,
121 size: msg.size,
122 capacity: msg.capacity,
123 }
124 }
125
126 pub fn as_slice(&self) -> &[GetAvailableTransitionsRequest] {
127 if self.data.is_null() {
128 &[]
129 } else {
130 let s = unsafe { std::slice::from_raw_parts(self.data, self.size as _) };
131 s
132 }
133 }
134
135 pub fn as_slice_mut(&mut self) -> &mut [GetAvailableTransitionsRequest] {
136 if self.data.is_null() {
137 &mut []
138 } else {
139 let s = unsafe { std::slice::from_raw_parts_mut(self.data, self.size as _) };
140 s
141 }
142 }
143
144 pub fn iter(&self) -> std::slice::Iter<'_, GetAvailableTransitionsRequest> {
145 self.as_slice().iter()
146 }
147
148 pub fn iter_mut(&mut self) -> std::slice::IterMut<'_, GetAvailableTransitionsRequest> {
149 self.as_slice_mut().iter_mut()
150 }
151
152 pub fn len(&self) -> usize {
153 self.as_slice().len()
154 }
155
156 pub fn is_empty(&self) -> bool {
157 self.len() == 0
158 }
159}
160
161impl<const N: usize> Drop for GetAvailableTransitionsRequestSeq<N> {
162 fn drop(&mut self) {
163 let mut msg = GetAvailableTransitionsRequestSeqRaw {
164 data: self.data,
165 size: self.size,
166 capacity: self.capacity,
167 };
168 unsafe { lifecycle_msgs__srv__GetAvailableTransitions_Request__Sequence__fini(&mut msg) };
169 }
170}
171
172unsafe impl<const N: usize> Send for GetAvailableTransitionsRequestSeq<N> {}
173unsafe impl<const N: usize> Sync for GetAvailableTransitionsRequestSeq<N> {}
174
175impl GetAvailableTransitionsResponse {
176 pub fn new() -> Option<Self> {
177 let mut msg: Self = unsafe { std::mem::MaybeUninit::zeroed().assume_init() };
178 if unsafe { lifecycle_msgs__srv__GetAvailableTransitions_Response__init(&mut msg) } {
179 Some(msg)
180 } else {
181 None
182 }
183 }
184}
185
186impl Drop for GetAvailableTransitionsResponse {
187 fn drop(&mut self) {
188 unsafe { lifecycle_msgs__srv__GetAvailableTransitions_Response__fini(self) };
189 }
190}
191
192#[repr(C)]
193#[derive(Debug)]
194struct GetAvailableTransitionsResponseSeqRaw {
195 data: *mut GetAvailableTransitionsResponse,
196 size: size_t,
197 capacity: size_t,
198}
199
200#[repr(C)]
204#[derive(Debug)]
205pub struct GetAvailableTransitionsResponseSeq<const N: usize> {
206 data: *mut GetAvailableTransitionsResponse,
207 size: size_t,
208 capacity: size_t,
209}
210
211impl<const N: usize> GetAvailableTransitionsResponseSeq<N> {
212 pub fn new(size: usize) -> Option<Self> {
216 if N != 0 && size > N {
217 return None;
219 }
220
221 let mut msg: GetAvailableTransitionsResponseSeqRaw =
222 unsafe { std::mem::MaybeUninit::zeroed().assume_init() };
223 if unsafe {
224 lifecycle_msgs__srv__GetAvailableTransitions_Response__Sequence__init(&mut msg, size)
225 } {
226 Some(Self {
227 data: msg.data,
228 size: msg.size,
229 capacity: msg.capacity,
230 })
231 } else {
232 None
233 }
234 }
235
236 pub fn null() -> Self {
237 let msg: GetAvailableTransitionsResponseSeqRaw =
238 unsafe { std::mem::MaybeUninit::zeroed().assume_init() };
239 Self {
240 data: msg.data,
241 size: msg.size,
242 capacity: msg.capacity,
243 }
244 }
245
246 pub fn as_slice(&self) -> &[GetAvailableTransitionsResponse] {
247 if self.data.is_null() {
248 &[]
249 } else {
250 let s = unsafe { std::slice::from_raw_parts(self.data, self.size as _) };
251 s
252 }
253 }
254
255 pub fn as_slice_mut(&mut self) -> &mut [GetAvailableTransitionsResponse] {
256 if self.data.is_null() {
257 &mut []
258 } else {
259 let s = unsafe { std::slice::from_raw_parts_mut(self.data, self.size as _) };
260 s
261 }
262 }
263
264 pub fn iter(&self) -> std::slice::Iter<'_, GetAvailableTransitionsResponse> {
265 self.as_slice().iter()
266 }
267
268 pub fn iter_mut(&mut self) -> std::slice::IterMut<'_, GetAvailableTransitionsResponse> {
269 self.as_slice_mut().iter_mut()
270 }
271
272 pub fn len(&self) -> usize {
273 self.as_slice().len()
274 }
275
276 pub fn is_empty(&self) -> bool {
277 self.len() == 0
278 }
279}
280
281impl<const N: usize> Drop for GetAvailableTransitionsResponseSeq<N> {
282 fn drop(&mut self) {
283 let mut msg = GetAvailableTransitionsResponseSeqRaw {
284 data: self.data,
285 size: self.size,
286 capacity: self.capacity,
287 };
288 unsafe { lifecycle_msgs__srv__GetAvailableTransitions_Response__Sequence__fini(&mut msg) };
289 }
290}
291
292unsafe impl<const N: usize> Send for GetAvailableTransitionsResponseSeq<N> {}
293unsafe impl<const N: usize> Sync for GetAvailableTransitionsResponseSeq<N> {}
294
295pub struct GetAvailableTransitions;
296
297impl ServiceMsg for GetAvailableTransitions {
298 type Request = GetAvailableTransitionsRequest;
299 type Response = GetAvailableTransitionsResponse;
300 fn type_support() -> *const rcl::rosidl_service_type_support_t {
301 unsafe {
302 rosidl_typesupport_c__get_service_type_support_handle__lifecycle_msgs__srv__GetAvailableTransitions()
303 }
304 }
305}
306
307impl TypeSupport for GetAvailableTransitionsRequest {
308 fn type_support() -> *const rcl::rosidl_message_type_support_t {
309 unsafe {
310 rosidl_typesupport_c__get_message_type_support_handle__lifecycle_msgs__srv__GetAvailableTransitions_Request()
311 }
312 }
313}
314
315impl TypeSupport for GetAvailableTransitionsResponse {
316 fn type_support() -> *const rcl::rosidl_message_type_support_t {
317 unsafe {
318 rosidl_typesupport_c__get_message_type_support_handle__lifecycle_msgs__srv__GetAvailableTransitions_Response()
319 }
320 }
321}