[fdf][compat] Use new FIDL tables

Move the code off of the deprecated FIDL tables

Change-Id: Ida84b707d038944bf860d7df5b6a2c55fe77a4ae
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/667122
Reviewed-by: Suraj Malhotra <surajmalhotra@google.com>
Commit-Queue: David Gilhooley <dgilhooley@google.com>
diff --git a/build/cpp/BUILD.gn b/build/cpp/BUILD.gn
index c907e51..ea0b55b 100644
--- a/build/cpp/BUILD.gn
+++ b/build/cpp/BUILD.gn
@@ -311,7 +311,6 @@
     "//src/devices/board/lib/acpi",
     "//src/devices/board/lib/acpi:acpi-test",
     "//src/devices/i2c/drivers/i2c:i2c-test-bin",
-    "//src/devices/lib/compat",
     "//src/devices/lib/driver2:llcpp_test",
     "//src/devices/lib/fidl-metadata",
     "//src/devices/light-sensor/drivers/ams-light:ams-light-driver",
diff --git a/src/devices/lib/compat/BUILD.gn b/src/devices/lib/compat/BUILD.gn
index c932cf6..d9b9b2b 100644
--- a/src/devices/lib/compat/BUILD.gn
+++ b/src/devices/lib/compat/BUILD.gn
@@ -15,8 +15,4 @@
     "//src/devices/misc/drivers/compat/fidl:fuchsia.driver.compat_llcpp",
     "//zircon/system/ulib/service:service-llcpp",
   ]
-
-  # TODO(fxbug.dev/94768): This target uses mutable tables which are deprecated,
-  # rather than builders.
-  configs += [ "//build/cpp:fidl-wire-deprecated-mutable-tables" ]
 }
diff --git a/src/devices/lib/compat/compat.cc b/src/devices/lib/compat/compat.cc
index c7cee55..e5d7d94 100644
--- a/src/devices/lib/compat/compat.cc
+++ b/src/devices/lib/compat/compat.cc
@@ -173,14 +173,14 @@
 std::vector<fuchsia_component_decl::wire::Offer> Child::CreateOffers(fidl::ArenaBase& arena) {
   std::vector<fuchsia_component_decl::wire::Offer> offers;
   for (auto& instance : instances_) {
-    fcd::wire::OfferDirectory dir_offer(arena);
-    dir_offer.set_source_name(arena, arena, instance->service_name());
-    dir_offer.set_target_name(arena, arena, std::string(instance->service_name()) + "-default");
-    dir_offer.set_rights(arena, fuchsia_io::wire::kRwStarDir);
-    dir_offer.set_subdir(arena, arena, instance->instance_name());
-    dir_offer.set_dependency_type(fcd::wire::DependencyType::kStrong);
+    auto dir_offer = fcd::wire::OfferDirectory::Builder(arena);
+    dir_offer.source_name(arena, instance->service_name());
+    dir_offer.target_name(arena, std::string(instance->service_name()) + "-default");
+    dir_offer.rights(fuchsia_io::wire::kRwStarDir);
+    dir_offer.subdir(arena, instance->instance_name());
+    dir_offer.dependency_type(fcd::wire::DependencyType::kStrong);
 
-    offers.push_back(fcd::wire::Offer::WithDirectory(arena, std::move(dir_offer)));
+    offers.push_back(fcd::wire::Offer::WithDirectory(arena, dir_offer.Build()));
   }
   return offers;
 }