Use new ClassManager

This commit is contained in:
King_DuckZ 2022-05-14 17:09:56 +02:00
parent ccd15301af
commit 418d0af70f
2 changed files with 4 additions and 12 deletions

View file

@ -19,6 +19,7 @@
#include <wrenpp/vm_fun.hpp> #include <wrenpp/vm_fun.hpp>
#include <wrenpp/def_configuration.hpp> #include <wrenpp/def_configuration.hpp>
#include <wrenpp/callback_manager.hpp> #include <wrenpp/callback_manager.hpp>
#include <wrenpp/class_manager.hpp>
#include <utility> #include <utility>
#include <algorithm> #include <algorithm>
@ -89,17 +90,6 @@ void exchange_ticker_price_bitcoinity_wren (wren::VM& vm) {
class MyWrenConfiguration : public wren::DefConfiguration { class MyWrenConfiguration : public wren::DefConfiguration {
public: public:
wren::foreign_class_t foreign_class_fn(
wren::VM* vm,
std::string_view module,
std::string_view class_name
) {
if (module == "ticker_price" and class_name == "TickerPrice")
return wren::make_foreign_class<duck::TickerPrice>();
else
return {nullptr, nullptr};
}
char* load_module_fn(wren::VM* vm, std::string_view module_name) { char* load_module_fn(wren::VM* vm, std::string_view module_name) {
std::string_view wren_code; std::string_view wren_code;
@ -132,6 +122,8 @@ int main() {
.add_callback(false, "ticker_price", "TickerPrice", "currency", wren::make_method_bindable<&TickerPrice::currency>()) .add_callback(false, "ticker_price", "TickerPrice", "currency", wren::make_method_bindable<&TickerPrice::currency>())
.add_callback(false, "ticker_price", "TickerPrice", "is_valid", wren::make_method_bindable<&TickerPrice::is_valid>()) .add_callback(false, "ticker_price", "TickerPrice", "is_valid", wren::make_method_bindable<&TickerPrice::is_valid>())
.add_callback(false, "ticker_price", "TickerPrice", "exchange", wren::make_method_bindable<&TickerPrice::exchange>()); .add_callback(false, "ticker_price", "TickerPrice", "exchange", wren::make_method_bindable<&TickerPrice::exchange>());
vm.class_manager()
.add_class_maker("ticker_price", "TickerPrice", &wren::make_foreign_class<duck::TickerPrice>);
vm.interpret("main", g_script); vm.interpret("main", g_script);
wren::call<void>(vm, {"main", "the_app"}, "start"); wren::call<void>(vm, {"main", "the_app"}, "start");

@ -1 +1 @@
Subproject commit d985ebc417f80c59fe26200a9e1e677f54ccb9e9 Subproject commit 258237cbf3b070f31defd5d5976bb96277ac9f65