Add support for registering foreign methods that return foreign objects

Still a bit work in progress but functioning
This commit is contained in:
King_DuckZ 2022-05-18 18:48:18 +02:00
commit 1fa6d62f17
15 changed files with 264 additions and 45 deletions

View file

@ -123,7 +123,7 @@ int main() {
vm.callback_manager().add_callback(true, "calendar", "Calendar", "today()", &Calendar::today)
.add_callback(false, "calendar", "Calendar", "add_appointment(_)", wren::make_method_bindable<&Calendar::add_appointment>())
.add_callback(false, "calendar", "Calendar", "appointment_count()", wren::make_method_bindable<&Calendar::appointment_count>());
vm.class_manager().add_class_maker("calendar", "Calendar", &wren::make_foreign_class<Calendar>);
vm.class_manager().add_class_maker("calendar", "Calendar", wren::make_foreign_class<Calendar>);
vm.interpret("main", g_test_script);

View file

@ -112,7 +112,7 @@ int main() {
.add_callback(false, "math_vector", "MathVector", "z", make_method_bindable<&Vector<double>::z>());
vm.class_manager()
.add_class_maker("math_vector", "MathVector", &make_foreign_class<Vector<double>,
.add_class_maker("math_vector", "MathVector", make_foreign_class<Vector<double>,
double, //single value constructor
std::tuple<double, double, double>, //x,y,z constructor
std::tuple<> //default constructor