| David Tolnay | 7db7369 | 2019-10-20 14:51:12 -0400 | [diff] [blame] | 1 | #include "demo-cxx/demo.h" |
| David Tolnay | 1a2683a | 2020-03-17 19:09:29 -0700 | [diff] [blame] | 2 | #include "demo-rs/src/main.rs.h" |
| David Tolnay | 7db7369 | 2019-10-20 14:51:12 -0400 | [diff] [blame] | 3 | #include <iostream> |
| 4 | |
| 5 | namespace org { |
| David Tolnay | aa17a5a | 2020-03-01 13:44:24 -0800 | [diff] [blame] | 6 | namespace example { |
| David Tolnay | 7db7369 | 2019-10-20 14:51:12 -0400 | [diff] [blame] | 7 | |
| 8 | ThingC::ThingC(std::string appname) : appname(std::move(appname)) {} |
| 9 | |
| 10 | ThingC::~ThingC() { std::cout << "done with ThingC" << std::endl; } |
| 11 | |
| David Tolnay | 7c29546 | 2020-04-25 12:45:07 -0700 | [diff] [blame^] | 12 | std::unique_ptr<ThingC> make_demo(rust::Str appname) { |
| David Tolnay | 404d689 | 2020-03-01 20:19:41 -0800 | [diff] [blame] | 13 | return std::unique_ptr<ThingC>(new ThingC(std::string(appname))); |
| David Tolnay | 7db7369 | 2019-10-20 14:51:12 -0400 | [diff] [blame] | 14 | } |
| 15 | |
| David Tolnay | b6a5f67 | 2020-04-17 15:04:56 -0700 | [diff] [blame] | 16 | const std::string &get_name(const ThingC &thing) { return thing.appname; } |
| 17 | |
| Myron Ahn | eba35cf | 2020-02-05 19:41:51 +0700 | [diff] [blame] | 18 | std::unique_ptr<std::vector<uint8_t>> do_thing(SharedThing state) { |
| 19 | print_r(*state.y); |
| 20 | auto vec = std::unique_ptr<std::vector<uint8_t>>(new std::vector<uint8_t>()); |
| 21 | for (uint8_t i = 0; i < 10; i++) { |
| 22 | vec->push_back(i * i); |
| 23 | } |
| 24 | return vec; |
| 25 | } |
| 26 | |
| David Tolnay | 37dd7e1 | 2020-04-25 12:51:59 -0700 | [diff] [blame] | 27 | JsonBlob get_jb(const ::rust::Vec<uint8_t> &vec) { |
| Myron Ahn | eba35cf | 2020-02-05 19:41:51 +0700 | [diff] [blame] | 28 | JsonBlob retval; |
| 29 | |
| 30 | std::cout << "incoming vec length is " << vec.size() << "\n"; |
| 31 | auto vec_copy = static_cast<std::vector<uint8_t>>(vec); |
| 32 | std::cout << "vec_copy length is " << vec_copy.size() << "\n"; |
| 33 | std::cout << "vec_copy[0] is " << (int)vec_copy[0] << "\n"; |
| 34 | |
| 35 | auto blob = std::unique_ptr<std::vector<uint8_t>>(new std::vector<uint8_t>()); |
| 36 | for (uint8_t i = 0; i < 10; i++) { |
| 37 | blob->push_back(i * 2); |
| 38 | } |
| 39 | |
| 40 | auto json = std::unique_ptr<std::string>(new std::string("{\"demo\": 23}")); |
| 41 | |
| 42 | retval.json = std::move(json); |
| 43 | retval.blob = std::move(blob); |
| 44 | |
| 45 | return retval; |
| 46 | } |
| David Tolnay | 7db7369 | 2019-10-20 14:51:12 -0400 | [diff] [blame] | 47 | |
| David Tolnay | aa17a5a | 2020-03-01 13:44:24 -0800 | [diff] [blame] | 48 | } // namespace example |
| David Tolnay | 7db7369 | 2019-10-20 14:51:12 -0400 | [diff] [blame] | 49 | } // namespace org |