Change `project`->`project_pin`.

Rationale: We will *certainly* want other kinds of projection. For example:

1. reference projection, for aliasing non-mut references. Exact mechanism under discussion, but there will need to be a projection operation, because normal Rust references cannot alias mut references.
2. (current goal) raw pointer projection: for example, the `ctor!()` macro projects into raw pointers. However, if we want to allow `ctor!()` to initialize things that cannot normally be initialized by value, it will need to ignore private padding fields during projection.

(I'll explain #2 more in the followup that actually implements it.)

PiperOrigin-RevId: 449353646
3 files changed
tree: ac9ebd8bb1ac792787615002d1d808cbac8ab549
  1. cc_template/
  2. common/
  3. docs/
  4. lifetime_annotations/
  5. migrator/
  6. rs_bindings_from_cc/
  7. BUILD
  8. CODE_OF_CONDUCT
  9. CONTRIBUTING
  10. LICENSE
  11. README.md
README.md

Crubit: C++/Rust Bidirectional Interop Tool

Extremely experimental interop tooling for C++ and Rust.

Please don‘t use, this is an experiment and we don’t yet know where will it take us. There will be breaking changes without warning. Unfortunately, we can't take contributions at this point.