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

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

    Description: 
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 set(), 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.

  was:
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.


> 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 set(), 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

Reply via email to