blob: 6fc24658996d397242e8d55d50af611dab3259a2 [file] [log] [blame]
David Tolnay7db73692019-10-20 14:51:12 -04001#include "demo-cxx/demo.h"
David Tolnay1a2683a2020-03-17 19:09:29 -07002#include "demo-rs/src/main.rs.h"
David Tolnay7db73692019-10-20 14:51:12 -04003#include <iostream>
4
5namespace org {
David Tolnayaa17a5a2020-03-01 13:44:24 -08006namespace example {
David Tolnay7db73692019-10-20 14:51:12 -04007
8ThingC::ThingC(std::string appname) : appname(std::move(appname)) {}
9
10ThingC::~ThingC() { std::cout << "done with ThingC" << std::endl; }
11
Joel Galenson3d4f6122020-04-07 15:54:05 -070012const std::string &ThingC::get_name() const {
13 std::cout << "I'm a C++ method!" << std::endl;
14 return this->appname;
15}
16
David Tolnayaa17a5a2020-03-01 13:44:24 -080017std::unique_ptr<ThingC> make_demo(rust::Str appname) {
David Tolnay404d6892020-03-01 20:19:41 -080018 return std::unique_ptr<ThingC>(new ThingC(std::string(appname)));
David Tolnay7db73692019-10-20 14:51:12 -040019}
20
David Tolnay7db73692019-10-20 14:51:12 -040021void do_thing(SharedThing state) { print_r(*state.y); }
22
David Tolnayaa17a5a2020-03-01 13:44:24 -080023} // namespace example
David Tolnay7db73692019-10-20 14:51:12 -040024} // namespace org