dtolnay/cxx

Improvements to namespace support

Open

#353 创建于 2020年10月10日

在 GitHub 查看
 (16 评论) (0 反应) (0 负责人)Rust (4,472 star) (253 fork)batch import
help wanted

描述

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.

贡献者指南