dtolnay/cxx
Better integration between derives and operator overloads
Aperta
#109 aperta il 11 apr 2020
help wanted
Metriche repository
- Star
- (4472 stelle)
- Metriche merge PR
- (Merge medio 8m) (3 PR mergiate in 30 g)
Descrizione
Many integration opportunities here.
-
If a shared struct has a #[derive(
PartialEqorOrd)] then emit a compatibleoperator ==,operator !=,operator <,operator <=,operator >,operator >=on the type for C++.mod ffi { #[derive(PartialEq)] struct Key { n: usize, } } -
If an opaque Rust type is written with trait bounds then wire up the corresponding operator for C++ in a way that delegates to Rust's implementation of the operator.
mod ffi { extern "Rust" { type R: PartialEq; } } struct R {...} impl PartialEq for R {...} -
If an opaque C++ type is written with trait bounds then produce a trait impl in Rust that delegates to the corresponding overloaded operator(s) in C++.
mod ffi { extern "C++" { type C: PartialEq; // produce a PartialEq that calls `operator ==` } }