dtolnay/cxx

Box clone() member function to call Clone on opaque Rust types

Offen

#105 geöffnet am 11.04.2020

 (3 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)Rust (253 Forks)batch import
help wanted

Repository-Metriken

Stars
 (4.472 Sterne)
PR-Merge-Metriken
 (Durchschn. Merge 8m) (3 gemergte PRs in 30 T)

Beschreibung

We should provide a way to constrain that some opaque Rust type implements Clone and then expose the Clone impl to C++ via a clone() member function on rust::Box.

Something like:

mod ffi {
    extern "Rust" {
        type ClonableR: Clone;
    }

    extern "C++" {
        fn f(b: Box<ClonableR>); // C++ will be able to clone b
    }
}
  template <typename T>
  class Box {
+   Box clone() const noexcept;
  };

Contributor Guide