Skip to content

Commit a33ec48

Browse files
committed
Implement ActionImpl trait methods in generator
These still don't build without errors, but it's close.
1 parent a7c45fc commit a33ec48

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

rosidl_generator_rs/resource/action.rs.em

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,29 @@ impl rosidl_runtime_rs::ActionImpl for @(type_name) {
9999
type SendGoalService = crate::@(subfolder)::rmw::@(type_name)@(ACTION_GOAL_SERVICE_SUFFIX);
100100
type CancelGoalService = action_msgs::srv::rmw::CancelGoal;
101101
type GetResultService = crate::@(subfolder)::rmw::@(type_name)@(ACTION_RESULT_SERVICE_SUFFIX);
102+
103+
fn get_goal_request_uuid(request: &<<Self::SendGoalService as rosidl_runtime_rs::Service>::Request as rosidl_runtime_rs::Message>::RmwMsg) -> [u8; 16] {
104+
request.goal_id.uuid
105+
}
106+
107+
fn set_goal_response_accepted(response: &mut <<Self::SendGoalService as rosidl_runtime_rs::Service>::Response as rosidl_runtime_rs::Message>::RmwMsg, accepted: bool) {
108+
response.accepted = accepted;
109+
}
110+
111+
fn create_feedback_message(goal_id: &[u8; 16], feedback: &<<Self as rosidl_runtime_rs::Action>::Feedback as rosidl_runtime_rs::Message>::RmwMsg) -> <Self::FeedbackMessage as rosidl_runtime_rs::Message>::RmwMsg {
112+
let mut message = <Self::FeedbackMessage as rosidl_runtime_rs::Message>::RmwMsg::default();
113+
message.goal_id.uuid = *goal_id;
114+
message.feedback = feedback.clone();
115+
message
116+
}
117+
118+
fn get_result_request_uuid(request: &<<Self::GetResultService as rosidl_runtime_rs::Service>::Request as rosidl_runtime_rs::Message>::RmwMsg) -> [u8; 16] {
119+
request.goal_id.uuid
120+
}
121+
122+
fn set_result_response_status(response: &mut <<Self::GetResultService as rosidl_runtime_rs::Service>::Response as rosidl_runtime_rs::Message>::RmwMsg, status: i8) {
123+
response.status = status;
124+
}
102125
}
103126

104127
@[end for]

0 commit comments

Comments
 (0)