dtolnay/cxx

Improvements to namespace support

Ouverte

#353 ouverte le 10 oct. 2020

 (16 commentaires) (0 réaction) (0 personne assignée)Rust (253 forks)batch import
help wanted

Métriques du dépôt

Stars
 (4 472 étoiles)
Métriques de merge PR
 (Merge moyen 8m) (3 PRs mergées en 30 j)

Description

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.

Guide contributeur