/* * Copyright 2021 Google LLC * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #include #include "experimental/tskit/bindings/bindings.h" class Something { public: Something(std::string n): fName(n) {} const std::string getName() { return fName; } void setName(std::string name) { fName = name; } private: std::string fName; }; EMSCRIPTEN_BINDINGS(Core) { TS_PRIVATE_EXPORT("_privateFunction(x: number, y: number): number") function("_privateFunction", optional_override([](int x, int y)->size_t { return x * y; })); /** * This function does a public thing. * @param input an ice cream flavor */ TS_EXPORT("publicFunction(input: string): void") function("publicFunction", optional_override([](std::string s)->void { printf("Hello %s\n", s.c_str()); })); /** * The Something class is quite something. See SkSomething.h for more. */ class_("Something") /** * Returns a Something with the provided name. * @param name */ TS_EXPORT("new(name: string): Something") .constructor() /** * Returns the associated name. */ TS_EXPORT("getName(): string") .function("getName", &Something::getName) TS_PRIVATE_EXPORT("setName(name: string): void") .function("_setName", &Something::setName); }