dtolnay/cxx

Improvements to namespace support

オープン

#353 opened on 2020/10/10

 (16 件のコメント) (0 件のリアクション) (0 人の担当者)Rust (253 件のフォーク)batch import
help wanted

Repository metrics

Stars
 (4,472 個のスター)
PR merge metrics
 (平均マージ 8m) (30d で 3 merged PRs)

説明

This issue is just to track the implementation plan laid out at the bottom of https://github.com/dtolnay/cxx/pull/298#issuecomment-703817493.

  • Emit all mentions of a type in generated C++ code (in function arguments and so forth) as a fully qualified path ::name::space::of::Type, even if it currently always happens to be within the same module. #370

  • Store a distinct Namespace on each FFI item rather than having a single global namespace for the whole code generation. #370

  • Implement #[namespace = ...] attribute to determine namespace of individual items. #370 #380

  • Implement hierarchical handling of namespace which prioritizes item-level attribute > extern block > module. #444

  • Emit ExternType impls for shared structs. #341

  • Safe ExternType derive for extern Rust items. extern "Rust" { #[derive(ExternType)] type TheType; } 16e2620fe51032d789770b489e27a9c6c27719ef

  • Permit use inside of cxx::bridge.

コントリビューターガイド