对应的Thrift类型是:
Erlang类型和Thrift IDL类型之间的直接映射是否有可用的文档?
答案 0 :(得分:3)
好吧,我会尽力回答:)
显然在Thrift中没有Erlang元组的直接翻译。你可以做的是在你的Erlang模块中包含Thrift生成的类型定义,并编写你的Erlang代码,以便它使用生成的Erlang记录作为函数的参数和/或返回值。
Erlang原子必须被翻译成Thrift二进制文件(或最终字符串)。
所以,如果你想要像:
-spec cool_function() ->
{atom(), atom()}.
cool_function() ->
{foo, bar}
您需要在 whatever.thrift 文件中指定:
struct MyTuple {
1: binary first,
2: binary second
}
service myService {
MyTuple cool_function()
}
另外,您需要将Erlang函数编写为:
[...]
-include("whatever_types.hrl").
[...]
-spec cool_function() ->
#myTuple{}.
cool_function() ->
#myTuple{
first = atom_to_binary(foo, utf8),
second = atom_to_binary(bar, utf8)
}.
如果我错了,请纠正我。