google/crubit
A bidirectional bindings generator for C++ and Rust.
https://skillcdn.ai/gh/google/crubit내 AI에 이 주소를 연결하면 이 스킬들을 쓸 수 있어요. 연결 방법 보기
- 미확인
- 기본 브랜치
main - 커밋
a9601ab - 라이선스
Apache-2.0
저장소 둘러보기
스킬과 문서의 원문에서 찾습니다. 화면용 번역은 검색되지 않아요.
문서
- High-level design of C++/Rust interopThis document describes the high-level design choices of Crubit, a C++/Rust Bidirectional Interop Tool.docs/design/design.md
- Problem Description: forward-declared typesC++ allows for the same type to be defined in multiple places, where each of these declarations refers to the same type. Types in C++ are not "owned" by any particular target, and anyone can redefine…docs/design/forward_declarations.md
- Lifetime Annotations for C++Summary: We propose a scheme for annotating lifetimes for references and pointers in C++.docs/design/lifetime_annotations_cpp.md
- Static Analysis for C++ LifetimesSummary: We describe a static analysis that infers lifetimes in C++ function signatures.docs/design/lifetimes_static_analysis.md
- [Pre-RFC] Allow stride != sizeRust should allow for values to be placed at the next aligned position after the previous value, ignoring the tail padding of that previous field. This requires changing the meaning of "size", so tha…docs/design/pre_rfc_separate_size_stride.md
- Struct LayoutC++ (in the Itanium ABI) extends the C layout rules, and so repr(C) isn't enough. This pages documents the tweaks to Rust structs to give them the same layout as C++ structs.docs/design/struct_layout.md
- Thunks for class template member functionsGiven the C++ header below...docs/design/thunks_for_class_template_member_functions.md
- `Unpin` for C++ TypesSUMMARY: A C++ type is Unpin if it is Rust-movable (e.g., a trivial type, or a nontrivial type which is [[clang::trivial_abi]]). Any such type can be used by value or plain reference/pointer in inter…docs/design/unpin.md