ElixirからErlangのrecordを扱う方法


Erlangのrecordを使うときは、Record.extractを使えばよいことを知りましたが、結構長くなります。

[code]

    iex(1)> require Record
    nil
    
    iex(2)> r = Record.extract(:sctp_initmsg, from_lib: "kernel/include/inet_sctp.hrl")
    [num_ostreams: :undefined, max_instreams: :undefined, max_attempts: :undefined,
    max_init_timeo: :undefined]
    
[/code]

毎回これを書く以外に、方法はあるでしょうか？ includeのような一回書けば済むものがあるとよいのですが。




自己レスですが、別のことを調べているときに偶然、正しい(?)使用例を見つけました。  
(出典: <https://stackoverflow.com/questions/17345939/elixir-and-erlang-records-
pattern-matching>)

[code]

    defrecord :xmlText, Record.extract(:xmlText, from_lib: "xmerl/include/xmerl.hrl") 
    
[/code]

レコードを使いたいときに毎回Record.extract/2を使うのではなくて、defrecordに食わせるんですね。

