Skip to content

Commit 0ba6595

Browse files
mxgreyactions-user
authored andcommitted
Minimal changes for new Action trait (#539)
Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
1 parent 2494b61 commit 0ba6595

File tree

2 files changed

+85
-100
lines changed

2 files changed

+85
-100
lines changed

rclrs/src/vendor/example_interfaces/action.rs

Lines changed: 30 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1247,26 +1247,25 @@ extern "C" {
12471247
pub struct Fibonacci;
12481248

12491249
impl rosidl_runtime_rs::Action for Fibonacci {
1250+
// --- Associated types for client library users ---
12501251
type Goal = crate::vendor::example_interfaces::action::Fibonacci_Goal;
12511252
type Result = crate::vendor::example_interfaces::action::Fibonacci_Result;
12521253
type Feedback = crate::vendor::example_interfaces::action::Fibonacci_Feedback;
12531254

1255+
// --- Associated types for client library implementation ---
1256+
type FeedbackMessage =
1257+
crate::vendor::example_interfaces::action::rmw::Fibonacci_FeedbackMessage;
1258+
type SendGoalService = crate::vendor::example_interfaces::action::rmw::Fibonacci_SendGoal;
1259+
type CancelGoalService = crate::vendor::action_msgs::srv::rmw::CancelGoal;
1260+
type GetResultService = crate::vendor::example_interfaces::action::rmw::Fibonacci_GetResult;
1261+
1262+
// --- Methods for client library implementation ---
12541263
fn get_type_support() -> *const std::ffi::c_void {
12551264
// SAFETY: No preconditions for this function.
12561265
unsafe {
12571266
rosidl_typesupport_c__get_action_type_support_handle__example_interfaces__action__Fibonacci()
12581267
}
12591268
}
1260-
}
1261-
1262-
impl rosidl_runtime_rs::ActionImpl for Fibonacci {
1263-
type GoalStatusMessage = crate::vendor::action_msgs::msg::rmw::GoalStatusArray;
1264-
type FeedbackMessage =
1265-
crate::vendor::example_interfaces::action::rmw::Fibonacci_FeedbackMessage;
1266-
1267-
type SendGoalService = crate::vendor::example_interfaces::action::rmw::Fibonacci_SendGoal;
1268-
type CancelGoalService = crate::vendor::action_msgs::srv::rmw::CancelGoal;
1269-
type GetResultService = crate::vendor::example_interfaces::action::rmw::Fibonacci_GetResult;
12701269

12711270
fn create_goal_request(
12721271
goal_id: &[u8; 16],
@@ -1278,10 +1277,13 @@ impl rosidl_runtime_rs::ActionImpl for Fibonacci {
12781277
}
12791278
}
12801279

1281-
fn get_goal_request_uuid(
1282-
request: &crate::vendor::example_interfaces::action::rmw::Fibonacci_SendGoal_Request,
1283-
) -> &[u8; 16] {
1284-
&request.goal_id.uuid
1280+
fn split_goal_request(
1281+
request: crate::vendor::example_interfaces::action::rmw::Fibonacci_SendGoal_Request,
1282+
) -> (
1283+
[u8; 16],
1284+
crate::vendor::example_interfaces::action::rmw::Fibonacci_Goal,
1285+
) {
1286+
(request.goal_id.uuid, request.goal)
12851287
}
12861288

12871289
fn create_goal_response(
@@ -1320,16 +1322,13 @@ impl rosidl_runtime_rs::ActionImpl for Fibonacci {
13201322
message
13211323
}
13221324

1323-
fn get_feedback_message_uuid(
1324-
feedback: &crate::vendor::example_interfaces::action::rmw::Fibonacci_FeedbackMessage,
1325-
) -> &[u8; 16] {
1326-
&feedback.goal_id.uuid
1327-
}
1328-
1329-
fn get_feedback_message_feedback(
1330-
feedback: &crate::vendor::example_interfaces::action::rmw::Fibonacci_FeedbackMessage,
1331-
) -> &crate::vendor::example_interfaces::action::rmw::Fibonacci_Feedback {
1332-
&feedback.feedback
1325+
fn split_feedback_message(
1326+
feedback: crate::vendor::example_interfaces::action::rmw::Fibonacci_FeedbackMessage,
1327+
) -> (
1328+
[u8; 16],
1329+
crate::vendor::example_interfaces::action::rmw::Fibonacci_Feedback,
1330+
) {
1331+
(feedback.goal_id.uuid, feedback.feedback)
13331332
}
13341333

13351334
fn create_result_request(
@@ -1356,15 +1355,12 @@ impl rosidl_runtime_rs::ActionImpl for Fibonacci {
13561355
}
13571356
}
13581357

1359-
fn get_result_response_result(
1360-
response: &crate::vendor::example_interfaces::action::rmw::Fibonacci_GetResult_Response,
1361-
) -> &crate::vendor::example_interfaces::action::rmw::Fibonacci_Result {
1362-
&response.result
1363-
}
1364-
1365-
fn get_result_response_status(
1366-
response: &crate::vendor::example_interfaces::action::rmw::Fibonacci_GetResult_Response,
1367-
) -> i8 {
1368-
response.status
1358+
fn split_result_response(
1359+
response: crate::vendor::example_interfaces::action::rmw::Fibonacci_GetResult_Response,
1360+
) -> (
1361+
i8,
1362+
crate::vendor::example_interfaces::action::rmw::Fibonacci_Result,
1363+
) {
1364+
(response.status, response.result)
13691365
}
13701366
}

rclrs/src/vendor/test_msgs/action.rs

Lines changed: 55 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -2497,25 +2497,24 @@ extern "C" {
24972497
pub struct Fibonacci;
24982498

24992499
impl rosidl_runtime_rs::Action for Fibonacci {
2500+
// --- Associated types for client library users ---
25002501
type Goal = crate::vendor::test_msgs::action::Fibonacci_Goal;
25012502
type Result = crate::vendor::test_msgs::action::Fibonacci_Result;
25022503
type Feedback = crate::vendor::test_msgs::action::Fibonacci_Feedback;
25032504

2505+
// --- Associated types for client library implementation ---
2506+
type FeedbackMessage = crate::vendor::test_msgs::action::rmw::Fibonacci_FeedbackMessage;
2507+
type SendGoalService = crate::vendor::test_msgs::action::rmw::Fibonacci_SendGoal;
2508+
type CancelGoalService = crate::vendor::action_msgs::srv::rmw::CancelGoal;
2509+
type GetResultService = crate::vendor::test_msgs::action::rmw::Fibonacci_GetResult;
2510+
2511+
// --- Methods for client library implementation ---
25042512
fn get_type_support() -> *const std::ffi::c_void {
25052513
// SAFETY: No preconditions for this function.
25062514
unsafe {
25072515
rosidl_typesupport_c__get_action_type_support_handle__test_msgs__action__Fibonacci()
25082516
}
25092517
}
2510-
}
2511-
2512-
impl rosidl_runtime_rs::ActionImpl for Fibonacci {
2513-
type GoalStatusMessage = crate::vendor::action_msgs::msg::rmw::GoalStatusArray;
2514-
type FeedbackMessage = crate::vendor::test_msgs::action::rmw::Fibonacci_FeedbackMessage;
2515-
2516-
type SendGoalService = crate::vendor::test_msgs::action::rmw::Fibonacci_SendGoal;
2517-
type CancelGoalService = crate::vendor::action_msgs::srv::rmw::CancelGoal;
2518-
type GetResultService = crate::vendor::test_msgs::action::rmw::Fibonacci_GetResult;
25192518

25202519
fn create_goal_request(
25212520
goal_id: &[u8; 16],
@@ -2527,10 +2526,13 @@ impl rosidl_runtime_rs::ActionImpl for Fibonacci {
25272526
}
25282527
}
25292528

2530-
fn get_goal_request_uuid(
2531-
request: &crate::vendor::test_msgs::action::rmw::Fibonacci_SendGoal_Request,
2532-
) -> &[u8; 16] {
2533-
&request.goal_id.uuid
2529+
fn split_goal_request(
2530+
request: crate::vendor::test_msgs::action::rmw::Fibonacci_SendGoal_Request,
2531+
) -> (
2532+
[u8; 16],
2533+
crate::vendor::test_msgs::action::rmw::Fibonacci_Goal,
2534+
) {
2535+
(request.goal_id.uuid, request.goal)
25342536
}
25352537

25362538
fn create_goal_response(
@@ -2569,16 +2571,13 @@ impl rosidl_runtime_rs::ActionImpl for Fibonacci {
25692571
message
25702572
}
25712573

2572-
fn get_feedback_message_uuid(
2573-
feedback: &crate::vendor::test_msgs::action::rmw::Fibonacci_FeedbackMessage,
2574-
) -> &[u8; 16] {
2575-
&feedback.goal_id.uuid
2576-
}
2577-
2578-
fn get_feedback_message_feedback(
2579-
feedback: &crate::vendor::test_msgs::action::rmw::Fibonacci_FeedbackMessage,
2580-
) -> &crate::vendor::test_msgs::action::rmw::Fibonacci_Feedback {
2581-
&feedback.feedback
2574+
fn split_feedback_message(
2575+
feedback: crate::vendor::test_msgs::action::rmw::Fibonacci_FeedbackMessage,
2576+
) -> (
2577+
[u8; 16],
2578+
crate::vendor::test_msgs::action::rmw::Fibonacci_Feedback,
2579+
) {
2580+
(feedback.goal_id.uuid, feedback.feedback)
25822581
}
25832582

25842583
fn create_result_request(
@@ -2602,16 +2601,10 @@ impl rosidl_runtime_rs::ActionImpl for Fibonacci {
26022601
crate::vendor::test_msgs::action::rmw::Fibonacci_GetResult_Response { status, result }
26032602
}
26042603

2605-
fn get_result_response_result(
2606-
response: &crate::vendor::test_msgs::action::rmw::Fibonacci_GetResult_Response,
2607-
) -> &crate::vendor::test_msgs::action::rmw::Fibonacci_Result {
2608-
&response.result
2609-
}
2610-
2611-
fn get_result_response_status(
2612-
response: &crate::vendor::test_msgs::action::rmw::Fibonacci_GetResult_Response,
2613-
) -> i8 {
2614-
response.status
2604+
fn split_result_response(
2605+
response: crate::vendor::test_msgs::action::rmw::Fibonacci_GetResult_Response,
2606+
) -> (i8, crate::vendor::test_msgs::action::rmw::Fibonacci_Result) {
2607+
(response.status, response.result)
26152608
}
26162609
}
26172610

@@ -2625,25 +2618,24 @@ extern "C" {
26252618
pub struct NestedMessage;
26262619

26272620
impl rosidl_runtime_rs::Action for NestedMessage {
2621+
// --- Associated types for client library users ---
26282622
type Goal = crate::vendor::test_msgs::action::NestedMessage_Goal;
26292623
type Result = crate::vendor::test_msgs::action::NestedMessage_Result;
26302624
type Feedback = crate::vendor::test_msgs::action::NestedMessage_Feedback;
26312625

2626+
// --- Associated types for client library implementation ---
2627+
type FeedbackMessage = crate::vendor::test_msgs::action::rmw::NestedMessage_FeedbackMessage;
2628+
type SendGoalService = crate::vendor::test_msgs::action::rmw::NestedMessage_SendGoal;
2629+
type CancelGoalService = crate::vendor::action_msgs::srv::rmw::CancelGoal;
2630+
type GetResultService = crate::vendor::test_msgs::action::rmw::NestedMessage_GetResult;
2631+
2632+
// --- Methods for client library implementation ---
26322633
fn get_type_support() -> *const std::ffi::c_void {
26332634
// SAFETY: No preconditions for this function.
26342635
unsafe {
26352636
rosidl_typesupport_c__get_action_type_support_handle__test_msgs__action__NestedMessage()
26362637
}
26372638
}
2638-
}
2639-
2640-
impl rosidl_runtime_rs::ActionImpl for NestedMessage {
2641-
type GoalStatusMessage = crate::vendor::action_msgs::msg::rmw::GoalStatusArray;
2642-
type FeedbackMessage = crate::vendor::test_msgs::action::rmw::NestedMessage_FeedbackMessage;
2643-
2644-
type SendGoalService = crate::vendor::test_msgs::action::rmw::NestedMessage_SendGoal;
2645-
type CancelGoalService = crate::vendor::action_msgs::srv::rmw::CancelGoal;
2646-
type GetResultService = crate::vendor::test_msgs::action::rmw::NestedMessage_GetResult;
26472639

26482640
fn create_goal_request(
26492641
goal_id: &[u8; 16],
@@ -2655,10 +2647,13 @@ impl rosidl_runtime_rs::ActionImpl for NestedMessage {
26552647
}
26562648
}
26572649

2658-
fn get_goal_request_uuid(
2659-
request: &crate::vendor::test_msgs::action::rmw::NestedMessage_SendGoal_Request,
2660-
) -> &[u8; 16] {
2661-
&request.goal_id.uuid
2650+
fn split_goal_request(
2651+
request: crate::vendor::test_msgs::action::rmw::NestedMessage_SendGoal_Request,
2652+
) -> (
2653+
[u8; 16],
2654+
crate::vendor::test_msgs::action::rmw::NestedMessage_Goal,
2655+
) {
2656+
(request.goal_id.uuid, request.goal)
26622657
}
26632658

26642659
fn create_goal_response(
@@ -2697,16 +2692,13 @@ impl rosidl_runtime_rs::ActionImpl for NestedMessage {
26972692
message
26982693
}
26992694

2700-
fn get_feedback_message_uuid(
2701-
feedback: &crate::vendor::test_msgs::action::rmw::NestedMessage_FeedbackMessage,
2702-
) -> &[u8; 16] {
2703-
&feedback.goal_id.uuid
2704-
}
2705-
2706-
fn get_feedback_message_feedback(
2707-
feedback: &crate::vendor::test_msgs::action::rmw::NestedMessage_FeedbackMessage,
2708-
) -> &crate::vendor::test_msgs::action::rmw::NestedMessage_Feedback {
2709-
&feedback.feedback
2695+
fn split_feedback_message(
2696+
feedback: crate::vendor::test_msgs::action::rmw::NestedMessage_FeedbackMessage,
2697+
) -> (
2698+
[u8; 16],
2699+
crate::vendor::test_msgs::action::rmw::NestedMessage_Feedback,
2700+
) {
2701+
(feedback.goal_id.uuid, feedback.feedback)
27102702
}
27112703

27122704
fn create_result_request(
@@ -2730,15 +2722,12 @@ impl rosidl_runtime_rs::ActionImpl for NestedMessage {
27302722
crate::vendor::test_msgs::action::rmw::NestedMessage_GetResult_Response { status, result }
27312723
}
27322724

2733-
fn get_result_response_result(
2734-
response: &crate::vendor::test_msgs::action::rmw::NestedMessage_GetResult_Response,
2735-
) -> &crate::vendor::test_msgs::action::rmw::NestedMessage_Result {
2736-
&response.result
2737-
}
2738-
2739-
fn get_result_response_status(
2740-
response: &crate::vendor::test_msgs::action::rmw::NestedMessage_GetResult_Response,
2741-
) -> i8 {
2742-
response.status
2725+
fn split_result_response(
2726+
response: crate::vendor::test_msgs::action::rmw::NestedMessage_GetResult_Response,
2727+
) -> (
2728+
i8,
2729+
crate::vendor::test_msgs::action::rmw::NestedMessage_Result,
2730+
) {
2731+
(response.status, response.result)
27432732
}
27442733
}

0 commit comments

Comments
 (0)