summaryrefslogtreecommitdiffhomepage
path: root/mrb_gems/basic_struct_example/autogen.rb
diff options
context:
space:
mode:
authorrealtradam <[email protected]>2023-05-26 01:01:44 -0400
committerrealtradam <[email protected]>2023-05-26 01:01:44 -0400
commit85f3e9ed33b3e3cab7e011bae3b1ac99fb4520a7 (patch)
tree5f6819bcd93a10c66eb3daf0bd90ec88f194bbb2 /mrb_gems/basic_struct_example/autogen.rb
parent0e689b72d7fc7afa64508a99948527009712d189 (diff)
downloadmruby-playground-85f3e9ed33b3e3cab7e011bae3b1ac99fb4520a7.tar.gz
mruby-playground-85f3e9ed33b3e3cab7e011bae3b1ac99fb4520a7.zip
some progress
Diffstat (limited to 'mrb_gems/basic_struct_example/autogen.rb')
-rw-r--r--mrb_gems/basic_struct_example/autogen.rb39
1 files changed, 39 insertions, 0 deletions
diff --git a/mrb_gems/basic_struct_example/autogen.rb b/mrb_gems/basic_struct_example/autogen.rb
new file mode 100644
index 0000000..5db0cb8
--- /dev/null
+++ b/mrb_gems/basic_struct_example/autogen.rb
@@ -0,0 +1,39 @@
+require "FelBind"
+
+mgem = FelBind::BindGem.new(gem_name: "basic_struct_example")
+
+mgem.add_class("Color")
+
+mgem.add_struct(class_name: "Color", cstruct_name: "Color") do |struct|
+ struct.initializer = true
+ struct.member(
+ name: "r",
+ ctype: "char",
+ rtype: "int",
+ accessor: true
+ )
+ struct.member(
+ name: "g",
+ ctype: "char",
+ rtype: "int",
+ accessor: true
+ )
+ struct.member(
+ name: "b",
+ ctype: "char",
+ rtype: "int",
+ accessor: true
+ )
+end
+
+result = "typedef struct Color
+{
+ char r;
+ char g;
+ char b;
+} Color;\n"
+
+result += mgem.build
+
+File.write("src/basic_struct_example.c", result)
+