github.com/yoheimuta/protolint@v0.49.8-0.20240515023657-4ecaebb7575d/_example/proto/issue_88/oneof_options.proto (about)

     1  // Copyright 2016 Michal Witkowski. All Rights Reserved.
     2  // See LICENSE for licensing terms.
     3  
     4  syntax = "proto3";
     5  package validatortest;
     6  
     7  import "github.com/gogo/protobuf/gogoproto/gogo.proto";
     8  import "github.com/mwitkow/go-proto-validators/validator.proto";
     9  
    10  message ExternalMsg {
    11      string Identifier = 1 [(validator.field) = {regex: "^[a-z]{2,5}$"}];
    12      int64 SomeValue = 2 [(validator.field) = {int_gt: 0, int_lt: 100}];
    13  }
    14  
    15  message OneOfMessage3 {
    16      uint32 SomeInt = 1  [(validator.field) = {int_gt: 10}];
    17  
    18      oneof type {
    19          ExternalMsg one_msg = 2;
    20          uint32 one_int = 3 [(validator.field) = {int_gt: 20}];
    21          uint32 two_int = 4 [(validator.field) = {int_gt: 100}];
    22      }
    23  
    24      oneof something {
    25          option (validator.oneof) = {required: true};
    26          uint32 three_int = 5 [(validator.field) = {int_gt: 20}];
    27          uint32 four_int = 6 [(validator.field) = {int_gt: 100}];
    28          string five_regex = 7 [(validator.field) = {regex: "^[a-z]{2,5}$"}];
    29      }
    30  }