Add trivial construction flags to the IR.

These can be used in followup CLs to influence a few things:

* Triviality of move is sufficient (though strictly not necessary) for relocatability. In particular, we'll want to infer that a type is trivially relocatable if it's either `is_trivial_abi` **or** has a (public?) trivial move constructor.
* Triviality of a public copy constructor is necessary (and, together with trivial relocatability, sufficient) to derive Copy.
* Existence of copy at all is necessary to implement Clone.

Since these are interrelated, and for convenience, I did them all at once in one CL.

PiperOrigin-RevId: 400951362
5 files changed
tree: 714749e21a10470add6bc6977dbb0518972295f9
  1. rs_bindings_from_cc/
  2. CODE_OF_CONDUCT
  3. CONTRIBUTING
  4. LICENSE
  5. 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.