tree: 2d28f6a3eecfab26049846b9b7b107dcb39ea1f0
  1. cc_import/
  2. cc_std/
  3. cc_std_impl/
  4. cc_template/
  5. crubit_annotate/
  6. crubit_bridge_rust/
  7. crubit_hash_rust/
  8. extract_cpp_from_rust/
  9. ffi_11/
  10. internal/
  11. protobuf/
  12. rs_std/
  13. stable_fallback/
  14. annotations.h
  15. annotations.swig
  16. annotations_internal.h
  17. bridge.h
  18. bridge_test.cc
  19. BUILD
  20. BUILD.gn
  21. CMakeLists.txt
  22. cpp_std.rs
  23. cpp_std_test.rs
  24. cref.rs
  25. cref_test.rs
  26. crubit_annotate_test.rs
  27. ctor.rs
  28. ctor_macro_test.rs
  29. ctor_proc_macros.rs
  30. ctor_proc_macros_e2e_test.rs
  31. ctor_rename_test.rs
  32. ctor_test.rs
  33. decltype_cast.rs
  34. forward_declare.rs
  35. forward_declare_macros_test.rs
  36. forward_declare_proc_macros.rs
  37. forward_declare_unstable_test.rs
  38. lifetime_annotations.h
  39. movable.h
  40. movable_test.cc
  41. oops.rs
  42. operator.rs
  43. README.md
support/README.md

Crubit runtime support library

This directory contains C++ and Rust libraries needed to support the C++ and Rust FFI bindings that Crubit's tools generate:

  • The C++ and Rust code generated by Crubit's rs_bindings_from_cc and cc_bindings_from_rs tools may depend on these libraries. For example, compile-time assertions related to struct layout in the generated ..._rs_api.h depend on crubit/support/offset_of.h.

  • The C++ and Rust code that uses Crubit-generated bindings may need to depend on these libraries. For example, Rust code that uses Crubit-generated bindings for C++ may need to use the forward_declare crate to perform safe casting between forward-declared and fully-defined types.