You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Anatoly Kanivetsky (JIRA)" <ji...@apache.org> on 2011/03/31 17:36:06 UTC

[jira] [Updated] (THRIFT-1126) Extending struct_info for erlang bindings

     [ https://issues.apache.org/jira/browse/THRIFT-1126?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Anatoly Kanivetsky updated THRIFT-1126:
---------------------------------------

    Attachment: thrift-1086852.diff

> Extending struct_info for erlang bindings
> -----------------------------------------
>
>                 Key: THRIFT-1126
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1126
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Erlang - Compiler
>            Reporter: Anatoly Kanivetsky
>         Attachments: thrift-1086852.diff
>
>
> In addition to recently fixed THRIFT-27, I've made some extra changes, if no one objects.
> In this patch i've added more type specifiers to generated records. 
> Now it covers all possible types (I've forgot about list(), map() and #another_record{}).
> It now initializes all record fields without default value with 'undefined'. 
> This is a bit redundant, but I like it. (maybe you're not? let me know if you have some objections!).
> Also in this patch adds generation of additional structure info, that might be useful from runtime.
> It contains:
>  * FieldID,
>  * FieldReq,
>  * FieldType 
>  * Identifier
>  * ConstValue
> ConstValue is constructed everytime when struct_info_ext(...) is called. 
> This isn't good, but perhaps, it is ok if erlang optimizes such things. Does it?
> I planned to use struct_info_ext(...) in further modifications of erlang thrift library, to implement runtime validation of presence of required fields during reading/writing, and to avoid encoding of optional fields with default values. But it is pretty usable of itself.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira