Cの世界で定義されたデータ(構造体)をRubyのオブジェクトとして取り扱いたい場合がありえます.このような場合はTypedData_XXX マクロ群を用いて構造体へのポインタとRubyのオブジェクトとを互いに変換できます.
# 古い(非Typedな)Data_XXXマクロ群は非推奨になりました.
# 将来のバージョンのRubyでは古いマクロは動作しなくなる可能性があります.
| diff --git a/ext/fiddle/conversions.c b/ext/fiddle/conversions.c | |
| index bb5361a..2291829 100644 | |
| --- a/ext/fiddle/conversions.c | |
| +++ b/ext/fiddle/conversions.c | |
| @@ -1,5 +1,55 @@ | |
| #include <fiddle.h> | |
| +#undef ffi_type_uchar | |
| +#undef ffi_type_schar | |
| +#undef ffi_type_ushort |
| ../../configure --prefix=~/local --program-suffix=-1.9.2 --with-rubylibprefix=~/local/lib/ruby-1.9.2 --with-soname=ruby-1.9.2 --with-ridir=~/local/share/ri-1.9.2 --with-rubyhdrdir=~/local/include/ruby-1.9.1-1.9.2 --with-gdbm-dir=/opt/local --with-libyaml-dir=/opt/local --with-libffi-dir=/opt/local --with-arch=i386 CC="ccache gcc" |
Cの世界で定義されたデータ(構造体)をRubyのオブジェクトとして取り扱いたい場合がありえます.このような場合はTypedData_XXX マクロ群を用いて構造体へのポインタとRubyのオブジェクトとを互いに変換できます.
# 古い(非Typedな)Data_XXXマクロ群は非推奨になりました.
# 将来のバージョンのRubyでは古いマクロは動作しなくなる可能性があります.
| g++ -framework Foundation -std=gnu++14 -lobjc test.mm |
| syntax = "proto3"; | |
| package example; | |
| message Example { | |
| oneof oneof_field { | |
| string string_value = 1; | |
| int32 int32_value = 2; | |
| } | |
| } |
| package main | |
| import ( | |
| "log" | |
| "github.com/golang/protobuf/jsonpb" | |
| ) | |
| func main() { | |
| const input = `{"create_request": {"key": "Zm9v"}}` |
| load("@com_github_gengo_rules_pypi//pypi:def.bzl", "pypi_universal_repository") | |
| BUILD_FILE = """ | |
| py_library( | |
| name = "library", | |
| srcs = glob(["lib/python*/site-packages/**/*.py"]), | |
| imports = [ | |
| "lib/python2.7/site-packages", | |
| "lib/python3.5/site-packages", | |
| ], |
| 3 あ | |
| e い | |
| 4 う | |
| 5 え | |
| 6 お | |
| # ぁ | |
| E ぃ | |
| $ ぅ | |
| % ぇ | |
| ^ ぉ |
| On the 6th of May, 1709, I took a solemn leave of his majesty, and | |
| all | |
| my friends. This prince was so gracious as to order a guard to | |
| conduct me to Glanguenstald, which is a royal port to the south- | |
| west part of the island. In six days I found a vessel ready to | |
| carry me to Japan, and spent fifteen days in the voyage. |
| // Code generated by protoc-gen-go. DO NOT EDIT. | |
| // source: custom-options.proto | |
| /* | |
| Package main is a generated protocol buffer package. | |
| It is generated from these files: | |
| custom-options.proto | |
| It has these top-level messages: |