dtolnay/cxx

Improvements to namespace support

Aperta

#353 aperta il 10 ott 2020

 (16 commenti) (0 reazioni) (0 assegnatari)Rust (253 fork)batch import
help wanted

Metriche repository

Star
 (4472 stelle)
Metriche merge PR
 (Merge medio 8m) (3 PR mergiate in 30 g)

Descrizione

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.

Guida contributor