Separate out generate_func's API function name/impl production to a new function.

On top of that change, a couple of minor changes:

* (To allow that to happen at all) moves `TraitName`, `ImplKind` to the top level.
* Regenerates the quoted RsTypeKind where it's used, rather than passing in or returning param_types as another parameter.
  (This was an aesthetic preference, but I think it's the right call.)

---

Changes I deliberately did not make: One could imagine that e.g. `api_func_shape` would, instead of being passed in the param types, actually return them (along with idents etc.). But this is mixing things up: the parameter types are actually for the *thunk*, and only with further processing do we get the parameter list for the API function.

The return value of `api_func_shape` is not and can't be (without much more refactoring) an actual AST. This is more like a "template"/"shape" that information that the thunk is used to fill out. As such, I've not done anything misleading like include parameter names/types, and I've stuck to naming it "shape" and the like.

PiperOrigin-RevId: 438538020
1 file changed
tree: fb05e8d96f768c14ba6f1e5f23ef261177ce8a0a
  1. lifetime_annotations/
  2. rs_bindings_from_cc/
  3. BUILD
  4. CODE_OF_CONDUCT
  5. CONTRIBUTING
  6. LICENSE
  7. 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.