|
1 |
| -@{ |
2 |
| -req_res_specs = [] |
3 |
| - |
4 |
| -for subfolder, service in srv_specs: |
5 |
| - req_res_specs.append((subfolder, service.request_message)) |
6 |
| - req_res_specs.append((subfolder, service.response_message)) |
7 |
| -}@ |
8 |
| - |
9 | 1 | @{
|
10 | 2 | TEMPLATE(
|
11 |
| - 'msg_idiomatic.rs.em', |
| 3 | + 'srv_idiomatic.rs.em', |
12 | 4 | package_name=package_name, interface_path=interface_path,
|
13 |
| - msg_specs=req_res_specs, |
| 5 | + srv_specs=srv_specs, |
14 | 6 | get_rs_name=get_rs_name, get_rmw_rs_type=get_rmw_rs_type,
|
15 | 7 | pre_field_serde=pre_field_serde,
|
16 | 8 | get_idiomatic_rs_type=get_idiomatic_rs_type,
|
17 | 9 | constant_value_to_rs=constant_value_to_rs)
|
18 |
| -}@ |
19 |
| - |
20 |
| -@[for subfolder, srv_spec in srv_specs] |
21 |
| - |
22 |
| -@{ |
23 |
| -type_name = srv_spec.namespaced_type.name |
24 |
| -}@ |
25 |
| - |
26 |
| -#[link(name = "@(package_name)__rosidl_typesupport_c")] |
27 |
| -extern "C" { |
28 |
| - fn rosidl_typesupport_c__get_service_type_support_handle__@(package_name)__@(subfolder)__@(type_name)() -> *const std::os::raw::c_void; |
29 | 10 | }
|
30 | 11 |
|
31 |
| -// Corresponds to @(package_name)__@(subfolder)__@(type_name) |
32 |
| -pub struct @(type_name); |
33 |
| - |
34 |
| -impl rosidl_runtime_rs::Service for @(type_name) { |
35 |
| - type Request = crate::@(subfolder)::@(type_name)_Request; |
36 |
| - type Response = crate::@(subfolder)::@(type_name)_Response; |
37 |
| - |
38 |
| - fn get_type_support() -> *const std::os::raw::c_void { |
39 |
| - // SAFETY: No preconditions for this function. |
40 |
| - unsafe { rosidl_typesupport_c__get_service_type_support_handle__@(package_name)__@(subfolder)__@(type_name)() } |
41 |
| - } |
42 |
| -} |
43 |
| - |
44 |
| -@[end for] |
45 |
| - |
46 | 12 | pub mod rmw {
|
47 | 13 | @{
|
48 | 14 | TEMPLATE(
|
49 |
| - 'msg_rmw.rs.em', |
| 15 | + 'srv_rmw.rs.em', |
50 | 16 | package_name=package_name, interface_path=interface_path,
|
51 |
| - msg_specs=req_res_specs, |
| 17 | + srv_specs=srv_specs, |
52 | 18 | get_rs_name=get_rs_name, get_rmw_rs_type=get_rmw_rs_type,
|
53 | 19 | pre_field_serde=pre_field_serde,
|
54 | 20 | get_idiomatic_rs_type=get_idiomatic_rs_type,
|
55 | 21 | constant_value_to_rs=constant_value_to_rs)
|
56 | 22 | }@
|
57 |
| - |
58 |
| -@[for subfolder, srv_spec in srv_specs] |
59 |
| - |
60 |
| -@{ |
61 |
| -type_name = srv_spec.namespaced_type.name |
62 |
| -}@ |
63 |
| - |
64 |
| - #[link(name = "@(package_name)__rosidl_typesupport_c")] |
65 |
| - extern "C" { |
66 |
| - fn rosidl_typesupport_c__get_service_type_support_handle__@(package_name)__@(subfolder)__@(type_name)() -> *const std::os::raw::c_void; |
67 |
| - } |
68 |
| - |
69 |
| - // Corresponds to @(package_name)__@(subfolder)__@(type_name) |
70 |
| - pub struct @(type_name); |
71 |
| - |
72 |
| - impl rosidl_runtime_rs::Service for @(type_name) { |
73 |
| - type Request = crate::@(subfolder)::rmw::@(type_name)_Request; |
74 |
| - type Response = crate::@(subfolder)::rmw::@(type_name)_Response; |
75 |
| - |
76 |
| - fn get_type_support() -> *const std::os::raw::c_void { |
77 |
| - // SAFETY: No preconditions for this function. |
78 |
| - unsafe { rosidl_typesupport_c__get_service_type_support_handle__@(package_name)__@(subfolder)__@(type_name)() } |
79 |
| - } |
80 |
| - } |
81 |
| - |
82 |
| -@[end for] |
83 |
| - |
84 | 23 | } // mod rmw
|
0 commit comments