Safe FFI between Rust and C++
diff --git a/demo-cxx/demo.cc b/demo-cxx/demo.cc
new file mode 100644
index 0000000..500ee3a
--- /dev/null
+++ b/demo-cxx/demo.cc
@@ -0,0 +1,21 @@
+#include "demo-cxx/demo.h"
+#include "demo-rs/src/main.rs"
+#include <iostream>
+
+namespace org {
+namespace rust {
+
+ThingC::ThingC(std::string appname) : appname(std::move(appname)) {}
+
+ThingC::~ThingC() { std::cout << "done with ThingC" << std::endl; }
+
+std::unique_ptr<ThingC> make_demo(cxxbridge::RustStr appname) {
+  return std::unique_ptr<ThingC>(new ThingC(appname));
+}
+
+const std::string &get_name(const ThingC &thing) { return thing.appname; }
+
+void do_thing(SharedThing state) { print_r(*state.y); }
+
+} // namespace rust
+} // namespace org