2010-02-09 40 views
4

哪一個是對應的節儉類型:二郎原子和元組在節儉

  • 一個Erlang元組(I可以想象這是一個結構)
  • 一個Erlang原子(如果有的話?)

Erlang類型和Thrift IDL類型之間的直接映射是否有任何文檔可用?

回答

3

好吧,我會盡量回答自己:)

顯然存在節儉二郎元組沒有直接的翻譯。你可以做的是在你的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) 
    }. 

請糾正我,如果我錯了。