blob: eea0af711ea9a0865cef2b95cb1fe4443ca19501 [file] [log] [blame]
David Tolnay7db73692019-10-20 14:51:12 -04001#pragma once
David Tolnay736cbca2020-03-11 16:49:18 -07002#include "rust/cxx.h"
David Tolnay7db73692019-10-20 14:51:12 -04003#include <memory>
4#include <string>
5
6namespace org {
David Tolnayaa17a5a2020-03-01 13:44:24 -08007namespace example {
David Tolnay7db73692019-10-20 14:51:12 -04008
9class ThingC {
10public:
11 ThingC(std::string appname);
12 ~ThingC();
13
14 std::string appname;
15};
16
17struct SharedThing;
Myron Ahneba35cf2020-02-05 19:41:51 +070018struct JsonBlob;
David Tolnay7db73692019-10-20 14:51:12 -040019
Myron Ahneba35cf2020-02-05 19:41:51 +070020std::unique_ptr<ThingC> make_demo(::rust::Str appname);
David Tolnayb6a5f672020-04-17 15:04:56 -070021const std::string &get_name(const ThingC &thing);
Myron Ahneba35cf2020-02-05 19:41:51 +070022std::unique_ptr<std::vector<uint8_t>> do_thing(SharedThing state);
23JsonBlob get_jb(const ::rust::Vec<uint8_t>& vec);
David Tolnay7db73692019-10-20 14:51:12 -040024
David Tolnayaa17a5a2020-03-01 13:44:24 -080025} // namespace example
David Tolnay7db73692019-10-20 14:51:12 -040026} // namespace org