[
https://issues.apache.org/jira/browse/THRIFT-224?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12660997#action_12660997
]
Bryan Duxbury commented on THRIFT-224:
--------------------------------------
Allow me to clarify. I think we should go with patch v5, the one that doesn't
contain the get_my_field_valid_values implementation. I think this method
doesn't add that much value, because either a) you know the enum class and you
don't need the method or b) you're working with the field reflectively, and you
don't know whether it's even an enum or not, so you wouldn't know to look for
this method.
I think that the best thing to do is commit this patch without the extra
method, and to implement THRIFT-245. Then you can find everything you need.
> Validate method should check that enum types are assigned valid values
> -----------------------------------------------------------------------
>
> Key: THRIFT-224
> URL: https://issues.apache.org/jira/browse/THRIFT-224
> Project: Thrift
> Issue Type: Improvement
> Components: Compiler (Ruby)
> Reporter: Nathan Marz
> Assignee: Piotr Kozikowski
> Attachments: thrift-224-v2.patch, thrift-224-v3.patch,
> thrift-224-v4.patch, thrift-224-v5.patch, thrift-224-v6.patch,
> thrift-224.patch
>
>
> The validate method generated currently checks that required fields are set.
> It would be nice if it were to enforce more parts of the schema. One example
> of this are the values assigned to enum types. For example, if I have this
> enum:
> enum MyEnum {
> FOO = 1;
> BAR = 3;
> BAZ = 4;
> BIZ = 5;
> }
> and this struct:
> struct MyStruct {
> MyEnum e;
> }
> The validate method would ensure that MyStruct#e is either 1, 3, 4, or 5.
> The naive way of implementing this would be to generate a conditional
> statement for every value, aka
> "e==1 || e==3 || e==4 || e==5"
> A better implementation would generate something like:
> "e==1 || (e>=3 && e<=5)"
> Since the common case seems to be having large ranges of contiguous values,
> this is the difference between having N conditionals execute versus 2.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.