Avoid generating `operator=` bindings until we figure out mutability. Providing safe bindings for Rust references requires figuring out (among other things) how to prevent C++ from mutating values that Rust has an immutable (or exclusive) reference to. For example, Rust expects that a value behind `&T` will not change, even after calling a C++ callback (which may have a way to obtain a non-`const` reference to the same piece of memory). Based on the above, after this CL `cc_bindings_from_rs` will stop generating bindings for `operator=` (at least for now). PiperOrigin-RevId: 501685790
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.
$ apt install clang lld bazel $ git clone git@github.com:google/crubit.git $ cd crubit $ bazel build --linkopt=-fuse-ld=/usr/bin/ld.lld //rs_bindings_from_cc:rs_bindings_from_cc_impl
$ git clone https://github.com/llvm/llvm-project $ cd llvm-project $ CC=clang CXX=clang++ cmake -S llvm -B build -DLLVM_ENABLE_PROJECTS='clang' -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install $ cmake --build build -j $ # wait... $ cmake --install build $ cd ../crubit $ LLVM_INSTALL_PATH=../llvm-project/install bazel build //rs_bindings_from_cc:rs_bindings_from_cc_impl