Implement the "definition" half of forward declarations / incomplete types.

This allows Rust code to forward-declare a C++ type, but we don't yet map forward declarations in C++ to forward declarations in Rust.

Note also that this doesn't test support for `!Unpin` types, as I encountered some quirks along the way -- might need a couple more impls to make this work, will investigate.

PiperOrigin-RevId: 440987359
diff --git a/rs_bindings_from_cc/BUILD b/rs_bindings_from_cc/BUILD
index 9a9546d..c9aacf0 100644
--- a/rs_bindings_from_cc/BUILD
+++ b/rs_bindings_from_cc/BUILD
@@ -50,6 +50,7 @@
         # Rust code.
         "@crates_io//memoffset/v0_6:memoffset_unstable_const",
         "//rs_bindings_from_cc/support:ctor",
+        "//rs_bindings_from_cc/support:forward_declare",
         "@crates_io//pin_project/v1:pin_project",  # used by ctor macros
         # Required for `Copy` trait assertions added to the generated Rust
         # code.