Create an enum for sender errors

Will replace usages of bools, and will now currently only be used
for indicating that messages were sent too fast

After we merge this commit we will replace this enum with a general
Status class for all of aos, similar to absl::Status.

Change-Id: I4b5b2e7685744b3c6826a241cd3c84190eaa96ee
Signed-off-by: milind-u <milind.upadhyay@gmail.com>
diff --git a/y2021_bot3/control_loops/superstructure/superstructure.cc b/y2021_bot3/control_loops/superstructure/superstructure.cc
index fbedb22..1b4b611 100644
--- a/y2021_bot3/control_loops/superstructure/superstructure.cc
+++ b/y2021_bot3/control_loops/superstructure/superstructure.cc
@@ -33,7 +33,7 @@
         std::clamp(unsafe_goal->outtake_speed(), -12.0, 12.0);
     output_struct.climber_volts =
         std::clamp(unsafe_goal->climber_speed(), -12.0, 12.0);
-    output->Send(Output::Pack(*output->fbb(), &output_struct));
+    output->CheckOk(output->Send(Output::Pack(*output->fbb(), &output_struct)));
   }
 
   Status::Builder status_builder = status->MakeBuilder<Status>();
@@ -47,7 +47,7 @@
     status_builder.add_climber_speed(unsafe_goal->climber_speed());
   }
 
-  status->Send(status_builder.Finish());
+  (void)status->Send(status_builder.Finish());
 }
 
 }  // namespace superstructure
diff --git a/y2021_bot3/control_loops/superstructure/superstructure_lib_test.cc b/y2021_bot3/control_loops/superstructure/superstructure_lib_test.cc
index a6b6353..7ef6bf3 100644
--- a/y2021_bot3/control_loops/superstructure/superstructure_lib_test.cc
+++ b/y2021_bot3/control_loops/superstructure/superstructure_lib_test.cc
@@ -62,7 +62,7 @@
   void SendPositionMessage() {
     auto builder = superstructure_position_sender_.MakeBuilder();
     Position::Builder position_builder = builder.MakeBuilder<Position>();
-    builder.Send(position_builder.Finish());
+    builder.CheckOk(builder.Send(position_builder.Finish()));
   }
 
   ::std::unique_ptr<::aos::EventLoop> superstructure_event_loop;
@@ -83,7 +83,7 @@
     auto builder = superstructure_goal_sender_.MakeBuilder();
     Goal::Builder goal_builder = builder.MakeBuilder<Goal>();
     goal_builder.add_intake_speed(10.0);
-    ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+    builder.CheckOk(builder.Send(goal_builder.Finish()));
     SendPositionMessage();
     RunFor(dt() * 2);
     VerifyResults(10.0, 0.0, 0.0, 10.0, 0.0, 0.0);
@@ -93,7 +93,7 @@
     auto builder = superstructure_goal_sender_.MakeBuilder();
     Goal::Builder goal_builder = builder.MakeBuilder<Goal>();
     goal_builder.add_outtake_speed(10.0);
-    ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+    builder.CheckOk(builder.Send(goal_builder.Finish()));
     RunFor(dt() * 2);
     VerifyResults(0.0, 10.0, 0.0, 0.0, 10.0, 0.0);
   }
@@ -103,7 +103,7 @@
   auto builder = superstructure_goal_sender_.MakeBuilder();
   Goal::Builder goal_builder = builder.MakeBuilder<Goal>();
   goal_builder.add_climber_speed(4.0);
-  ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+  builder.CheckOk(builder.Send(goal_builder.Finish()));
   RunFor(dt() * 2);
   VerifyResults(0.0, 0.0, 4.0, 0.0, 0.0, 4.0);
 }
@@ -114,7 +114,7 @@
   Goal::Builder goal_builder = builder.MakeBuilder<Goal>();
   goal_builder.add_intake_speed(10.0);
   goal_builder.add_outtake_speed(5.0);
-  ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+  builder.CheckOk(builder.Send(goal_builder.Finish()));
   RunFor(dt() * 2);
   VerifyResults(10.0, 5.0, 0.0, 10.0, 5.0, 0.0);
 }
@@ -128,7 +128,7 @@
     goal_builder.add_intake_speed(20.0);
     goal_builder.add_outtake_speed(15.0);
     goal_builder.add_climber_speed(18.0);
-    ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+    builder.CheckOk(builder.Send(goal_builder.Finish()));
     RunFor(dt() * 2);
     VerifyResults(12.0, 12.0, 12.0, 20.0, 15.0, 18.0);
   }
@@ -139,7 +139,7 @@
     goal_builder.add_intake_speed(-20.0);
     goal_builder.add_outtake_speed(-15.0);
     goal_builder.add_climber_speed(-18.0);
-    ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+    builder.CheckOk(builder.Send(goal_builder.Finish()));
     RunFor(dt() * 2);
     VerifyResults(-12.0, -12.0, -12.0, -20.0, -15.0, -18.0);
   }
@@ -149,7 +149,7 @@
 TEST_F(SuperstructureTest, GoalIsNull) {
   auto builder = superstructure_goal_sender_.MakeBuilder();
   Goal::Builder goal_builder = builder.MakeBuilder<Goal>();
-  ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+  builder.CheckOk(builder.Send(goal_builder.Finish()));
   RunFor(dt() * 2);
   VerifyResults(0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
 }
@@ -161,7 +161,7 @@
   goal_builder.add_intake_speed(6.0);
   goal_builder.add_outtake_speed(5.0);
   goal_builder.add_climber_speed(4.0);
-  ASSERT_TRUE(builder.Send(goal_builder.Finish()));
+  builder.CheckOk(builder.Send(goal_builder.Finish()));
   SetEnabled(false);
   RunFor(dt() * 2);
   VerifyResults(0.0, 0.0, 0.0, 6.0, 5.0, 4.0);
@@ -170,4 +170,4 @@
 }  // namespace testing
 }  // namespace superstructure
 }  // namespace control_loops
-}  // namespace y2021_bot3
\ No newline at end of file
+}  // namespace y2021_bot3