Automatically format generated C++ bindings using clang-format.

PiperOrigin-RevId: 397274947
diff --git a/rs_bindings_from_cc/src_code_gen.cc b/rs_bindings_from_cc/src_code_gen.cc
index 86dbd85..35cc9ef 100644
--- a/rs_bindings_from_cc/src_code_gen.cc
+++ b/rs_bindings_from_cc/src_code_gen.cc
@@ -9,6 +9,7 @@
 #include "rs_bindings_from_cc/ffi_types.h"
 #include "rs_bindings_from_cc/ir.h"
 #include "third_party/json/src/json.hpp"
+#include "third_party/llvm/llvm-project/clang/include/clang/Format/Format.h"
 
 namespace rs_bindings_from_cc {
 
@@ -29,7 +30,13 @@
   const FfiU8SliceBox& rs_api_impl = ffi_bindings.rs_api_impl;
 
   bindings.rs_api = std::string(rs_api.ptr, rs_api.size);
-  bindings.rs_api_impl = std::string(rs_api_impl.ptr, rs_api_impl.size);
+
+  std::string impl{rs_api_impl.ptr, rs_api_impl.size};
+  bindings.rs_api_impl = *clang::tooling::applyAllReplacements(
+      impl,
+      clang::format::reformat(
+          clang::format::getGoogleStyle(clang::format::FormatStyle::LK_Cpp),
+          impl, clang::tooling::Range(0, impl.size()), "<stdin>"));
 
   return bindings;
 }
diff --git a/rs_bindings_from_cc/src_code_gen_test.cc b/rs_bindings_from_cc/src_code_gen_test.cc
index 5eca88e..cd782f2 100644
--- a/rs_bindings_from_cc/src_code_gen_test.cc
+++ b/rs_bindings_from_cc/src_code_gen_test.cc
@@ -40,15 +40,11 @@
           "} "
           "}"));
 
-  EXPECT_THAT(
-      // TODO(hlopko): Run generated C++ sources through clang-format.
-      bindings.rs_api_impl,
-      StrEq(
-          // TODO(hlopko): Run generated C++ sources through clang-format.
-          "# include \"foo/bar.h\" \n "
-          "extern \"C\" int __rust_thunk__hello_world (int arg) { "
-          "return hello_world (arg) ; "
-          "}"));
+  EXPECT_THAT(bindings.rs_api_impl,
+              StrEq("#include \"foo/bar.h\"\n"
+                    "extern \"C\" int __rust_thunk__hello_world(int arg) { "
+                    "return hello_world(arg); "
+                    "}"));
 }
 
 }  // namespace