SpineEventEngine / validation

Apache License 2.0
2 stars 0 forks source link

Support field references in `min` and `max` options #64

Open alexander-yevsyukov opened 1 year ago

alexander-yevsyukov commented 1 year ago

Suppose, I have the following type definition:

message Range {
    int32 min_value = 1;
    int32 max_value = 2;
}

Obviously, the following should apply: 1) min_value <= max_value 2) max_value >= min_value, which is just an opposite of the item 1.

Can we do it now like this?

message Range {
    int32 min_value = 1 [(max).value = "max_value"]; // using optional `this.` prefix is also desired.
    int32 max_value = 2;
}
message NumberGenerated {
    int32 number = 1 [(min).value = "range.min_value", (max).value = "range.max_value"];
    Range range = 2 [(required) = true];
}
alexander-yevsyukov commented 1 year ago

I've just tested it with NumberGenerated in a testFixtures of core-java project. We don't handle this case yet. No code is generated.