// Copyright 2023-2025 Buf Technologies, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.6
// 	protoc        (unknown)
// source: buf/validate/conformance/cases/oneofs.proto

//go:build protoopaque

package cases

import (
	_ "buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	unsafe "unsafe"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type TestOneofMsg struct {
	state          protoimpl.MessageState `protogen:"opaque.v1"`
	xxx_hidden_Val bool                   `protobuf:"varint,1,opt,name=val,proto3"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

func (x *TestOneofMsg) Reset() {
	*x = TestOneofMsg{}
	mi := &file_buf_validate_conformance_cases_oneofs_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TestOneofMsg) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TestOneofMsg) ProtoMessage() {}

func (x *TestOneofMsg) ProtoReflect() protoreflect.Message {
	mi := &file_buf_validate_conformance_cases_oneofs_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *TestOneofMsg) GetVal() bool {
	if x != nil {
		return x.xxx_hidden_Val
	}
	return false
}

func (x *TestOneofMsg) SetVal(v bool) {
	x.xxx_hidden_Val = v
}

type TestOneofMsg_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

	Val bool
}

func (b0 TestOneofMsg_builder) Build() *TestOneofMsg {
	m0 := &TestOneofMsg{}
	b, x := &b0, m0
	_, _ = b, x
	x.xxx_hidden_Val = b.Val
	return m0
}

type OneofNone struct {
	state         protoimpl.MessageState `protogen:"opaque.v1"`
	xxx_hidden_O  isOneofNone_O          `protobuf_oneof:"o"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *OneofNone) Reset() {
	*x = OneofNone{}
	mi := &file_buf_validate_conformance_cases_oneofs_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *OneofNone) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OneofNone) ProtoMessage() {}

func (x *OneofNone) ProtoReflect() protoreflect.Message {
	mi := &file_buf_validate_conformance_cases_oneofs_proto_msgTypes[1]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *OneofNone) GetX() string {
	if x != nil {
		if x, ok := x.xxx_hidden_O.(*oneofNone_X); ok {
			return x.X
		}
	}
	return ""
}

func (x *OneofNone) GetY() int32 {
	if x != nil {
		if x, ok := x.xxx_hidden_O.(*oneofNone_Y); ok {
			return x.Y
		}
	}
	return 0
}

func (x *OneofNone) SetX(v string) {
	x.xxx_hidden_O = &oneofNone_X{v}
}

func (x *OneofNone) SetY(v int32) {
	x.xxx_hidden_O = &oneofNone_Y{v}
}

func (x *OneofNone) HasO() bool {
	if x == nil {
		return false
	}
	return x.xxx_hidden_O != nil
}

func (x *OneofNone) HasX() bool {
	if x == nil {
		return false
	}
	_, ok := x.xxx_hidden_O.(*oneofNone_X)
	return ok
}

func (x *OneofNone) HasY() bool {
	if x == nil {
		return false
	}
	_, ok := x.xxx_hidden_O.(*oneofNone_Y)
	return ok
}

func (x *OneofNone) ClearO() {
	x.xxx_hidden_O = nil
}

func (x *OneofNone) ClearX() {
	if _, ok := x.xxx_hidden_O.(*oneofNone_X); ok {
		x.xxx_hidden_O = nil
	}
}

func (x *OneofNone) ClearY() {
	if _, ok := x.xxx_hidden_O.(*oneofNone_Y); ok {
		x.xxx_hidden_O = nil
	}
}

const OneofNone_O_not_set_case case_OneofNone_O = 0
const OneofNone_X_case case_OneofNone_O = 1
const OneofNone_Y_case case_OneofNone_O = 2

func (x *OneofNone) WhichO() case_OneofNone_O {
	if x == nil {
		return OneofNone_O_not_set_case
	}
	switch x.xxx_hidden_O.(type) {
	case *oneofNone_X:
		return OneofNone_X_case
	case *oneofNone_Y:
		return OneofNone_Y_case
	default:
		return OneofNone_O_not_set_case
	}
}

type OneofNone_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

	// Fields of oneof xxx_hidden_O:
	X *string
	Y *int32
	// -- end of xxx_hidden_O
}

func (b0 OneofNone_builder) Build() *OneofNone {
	m0 := &OneofNone{}
	b, x := &b0, m0
	_, _ = b, x
	if b.X != nil {
		x.xxx_hidden_O = &oneofNone_X{*b.X}
	}
	if b.Y != nil {
		x.xxx_hidden_O = &oneofNone_Y{*b.Y}
	}
	return m0
}

type case_OneofNone_O protoreflect.FieldNumber

func (x case_OneofNone_O) String() string {
	md := file_buf_validate_conformance_cases_oneofs_proto_msgTypes[1].Descriptor()
	if x == 0 {
		return "not set"
	}
	return protoimpl.X.MessageFieldStringOf(md, protoreflect.FieldNumber(x))
}

type isOneofNone_O interface {
	isOneofNone_O()
}

type oneofNone_X struct {
	X string `protobuf:"bytes,1,opt,name=x,proto3,oneof"`
}

type oneofNone_Y struct {
	Y int32 `protobuf:"varint,2,opt,name=y,proto3,oneof"`
}

func (*oneofNone_X) isOneofNone_O() {}

func (*oneofNone_Y) isOneofNone_O() {}

type Oneof struct {
	state         protoimpl.MessageState `protogen:"opaque.v1"`
	xxx_hidden_O  isOneof_O              `protobuf_oneof:"o"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Oneof) Reset() {
	*x = Oneof{}
	mi := &file_buf_validate_conformance_cases_oneofs_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Oneof) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Oneof) ProtoMessage() {}

func (x *Oneof) ProtoReflect() protoreflect.Message {
	mi := &file_buf_validate_conformance_cases_oneofs_proto_msgTypes[2]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *Oneof) GetX() string {
	if x != nil {
		if x, ok := x.xxx_hidden_O.(*oneof_X); ok {
			return x.X
		}
	}
	return ""
}

func (x *Oneof) GetY() int32 {
	if x != nil {
		if x, ok := x.xxx_hidden_O.(*oneof_Y); ok {
			return x.Y
		}
	}
	return 0
}

func (x *Oneof) GetZ() *TestOneofMsg {
	if x != nil {
		if x, ok := x.xxx_hidden_O.(*oneof_Z); ok {
			return x.Z
		}
	}
	return nil
}

func (x *Oneof) SetX(v string) {
	x.xxx_hidden_O = &oneof_X{v}
}

func (x *Oneof) SetY(v int32) {
	x.xxx_hidden_O = &oneof_Y{v}
}

func (x *Oneof) SetZ(v *TestOneofMsg) {
	if v == nil {
		x.xxx_hidden_O = nil
		return
	}
	x.xxx_hidden_O = &oneof_Z{v}
}

func (x *Oneof) HasO() bool {
	if x == nil {
		return false
	}
	return x.xxx_hidden_O != nil
}

func (x *Oneof) HasX() bool {
	if x == nil {
		return false
	}
	_, ok := x.xxx_hidden_O.(*oneof_X)
	return ok
}

func (x *Oneof) HasY() bool {
	if x == nil {
		return false
	}
	_, ok := x.xxx_hidden_O.(*oneof_Y)
	return ok
}

func (x *Oneof) HasZ() bool {
	if x == nil {
		return false
	}
	_, ok := x.xxx_hidden_O.(*oneof_Z)
	return ok
}

func (x *Oneof) ClearO() {
	x.xxx_hidden_O = nil
}

func (x *Oneof) ClearX() {
	if _, ok := x.xxx_hidden_O.(*oneof_X); ok {
		x.xxx_hidden_O = nil
	}
}

func (x *Oneof) ClearY() {
	if _, ok := x.xxx_hidden_O.(*oneof_Y); ok {
		x.xxx_hidden_O = nil
	}
}

func (x *Oneof) ClearZ() {
	if _, ok := x.xxx_hidden_O.(*oneof_Z); ok {
		x.xxx_hidden_O = nil
	}
}

const Oneof_O_not_set_case case_Oneof_O = 0
const Oneof_X_case case_Oneof_O = 1
const Oneof_Y_case case_Oneof_O = 2
const Oneof_Z_case case_Oneof_O = 3

func (x *Oneof) WhichO() case_Oneof_O {
	if x == nil {
		return Oneof_O_not_set_case
	}
	switch x.xxx_hidden_O.(type) {
	case *oneof_X:
		return Oneof_X_case
	case *oneof_Y:
		return Oneof_Y_case
	case *oneof_Z:
		return Oneof_Z_case
	default:
		return Oneof_O_not_set_case
	}
}

type Oneof_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

	// Fields of oneof xxx_hidden_O:
	X *string
	Y *int32
	Z *TestOneofMsg
	// -- end of xxx_hidden_O
}

func (b0 Oneof_builder) Build() *Oneof {
	m0 := &Oneof{}
	b, x := &b0, m0
	_, _ = b, x
	if b.X != nil {
		x.xxx_hidden_O = &oneof_X{*b.X}
	}
	if b.Y != nil {
		x.xxx_hidden_O = &oneof_Y{*b.Y}
	}
	if b.Z != nil {
		x.xxx_hidden_O = &oneof_Z{b.Z}
	}
	return m0
}

type case_Oneof_O protoreflect.FieldNumber

func (x case_Oneof_O) String() string {
	md := file_buf_validate_conformance_cases_oneofs_proto_msgTypes[2].Descriptor()
	if x == 0 {
		return "not set"
	}
	return protoimpl.X.MessageFieldStringOf(md, protoreflect.FieldNumber(x))
}

type isOneof_O interface {
	isOneof_O()
}

type oneof_X struct {
	X string `protobuf:"bytes,1,opt,name=x,proto3,oneof"`
}

type oneof_Y struct {
	Y int32 `protobuf:"varint,2,opt,name=y,proto3,oneof"`
}

type oneof_Z struct {
	Z *TestOneofMsg `protobuf:"bytes,3,opt,name=z,proto3,oneof"`
}

func (*oneof_X) isOneof_O() {}

func (*oneof_Y) isOneof_O() {}

func (*oneof_Z) isOneof_O() {}

type OneofRequired struct {
	state         protoimpl.MessageState `protogen:"opaque.v1"`
	xxx_hidden_O  isOneofRequired_O      `protobuf_oneof:"o"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *OneofRequired) Reset() {
	*x = OneofRequired{}
	mi := &file_buf_validate_conformance_cases_oneofs_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *OneofRequired) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OneofRequired) ProtoMessage() {}

func (x *OneofRequired) ProtoReflect() protoreflect.Message {
	mi := &file_buf_validate_conformance_cases_oneofs_proto_msgTypes[3]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *OneofRequired) GetX() string {
	if x != nil {
		if x, ok := x.xxx_hidden_O.(*oneofRequired_X); ok {
			return x.X
		}
	}
	return ""
}

func (x *OneofRequired) GetY() int32 {
	if x != nil {
		if x, ok := x.xxx_hidden_O.(*oneofRequired_Y); ok {
			return x.Y
		}
	}
	return 0
}

func (x *OneofRequired) GetNameWithUnderscores() int32 {
	if x != nil {
		if x, ok := x.xxx_hidden_O.(*oneofRequired_NameWithUnderscores); ok {
			return x.NameWithUnderscores
		}
	}
	return 0
}

func (x *OneofRequired) GetUnderAnd_1Number() int32 {
	if x != nil {
		if x, ok := x.xxx_hidden_O.(*oneofRequired_UnderAnd_1Number); ok {
			return x.UnderAnd_1Number
		}
	}
	return 0
}

func (x *OneofRequired) SetX(v string) {
	x.xxx_hidden_O = &oneofRequired_X{v}
}

func (x *OneofRequired) SetY(v int32) {
	x.xxx_hidden_O = &oneofRequired_Y{v}
}

func (x *OneofRequired) SetNameWithUnderscores(v int32) {
	x.xxx_hidden_O = &oneofRequired_NameWithUnderscores{v}
}

func (x *OneofRequired) SetUnderAnd_1Number(v int32) {
	x.xxx_hidden_O = &oneofRequired_UnderAnd_1Number{v}
}

func (x *OneofRequired) HasO() bool {
	if x == nil {
		return false
	}
	return x.xxx_hidden_O != nil
}

func (x *OneofRequired) HasX() bool {
	if x == nil {
		return false
	}
	_, ok := x.xxx_hidden_O.(*oneofRequired_X)
	return ok
}

func (x *OneofRequired) HasY() bool {
	if x == nil {
		return false
	}
	_, ok := x.xxx_hidden_O.(*oneofRequired_Y)
	return ok
}

func (x *OneofRequired) HasNameWithUnderscores() bool {
	if x == nil {
		return false
	}
	_, ok := x.xxx_hidden_O.(*oneofRequired_NameWithUnderscores)
	return ok
}

func (x *OneofRequired) HasUnderAnd_1Number() bool {
	if x == nil {
		return false
	}
	_, ok := x.xxx_hidden_O.(*oneofRequired_UnderAnd_1Number)
	return ok
}

func (x *OneofRequired) ClearO() {
	x.xxx_hidden_O = nil
}

func (x *OneofRequired) ClearX() {
	if _, ok := x.xxx_hidden_O.(*oneofRequired_X); ok {
		x.xxx_hidden_O = nil
	}
}

func (x *OneofRequired) ClearY() {
	if _, ok := x.xxx_hidden_O.(*oneofRequired_Y); ok {
		x.xxx_hidden_O = nil
	}
}

func (x *OneofRequired) ClearNameWithUnderscores() {
	if _, ok := x.xxx_hidden_O.(*oneofRequired_NameWithUnderscores); ok {
		x.xxx_hidden_O = nil
	}
}

func (x *OneofRequired) ClearUnderAnd_1Number() {
	if _, ok := x.xxx_hidden_O.(*oneofRequired_UnderAnd_1Number); ok {
		x.xxx_hidden_O = nil
	}
}

const OneofRequired_O_not_set_case case_OneofRequired_O = 0
const OneofRequired_X_case case_OneofRequired_O = 1
const OneofRequired_Y_case case_OneofRequired_O = 2
const OneofRequired_NameWithUnderscores_case case_OneofRequired_O = 3
const OneofRequired_UnderAnd_1Number_case case_OneofRequired_O = 4

func (x *OneofRequired) WhichO() case_OneofRequired_O {
	if x == nil {
		return OneofRequired_O_not_set_case
	}
	switch x.xxx_hidden_O.(type) {
	case *oneofRequired_X:
		return OneofRequired_X_case
	case *oneofRequired_Y:
		return OneofRequired_Y_case
	case *oneofRequired_NameWithUnderscores:
		return OneofRequired_NameWithUnderscores_case
	case *oneofRequired_UnderAnd_1Number:
		return OneofRequired_UnderAnd_1Number_case
	default:
		return OneofRequired_O_not_set_case
	}
}

type OneofRequired_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

	// Fields of oneof xxx_hidden_O:
	X                   *string
	Y                   *int32
	NameWithUnderscores *int32
	UnderAnd_1Number    *int32
	// -- end of xxx_hidden_O
}

func (b0 OneofRequired_builder) Build() *OneofRequired {
	m0 := &OneofRequired{}
	b, x := &b0, m0
	_, _ = b, x
	if b.X != nil {
		x.xxx_hidden_O = &oneofRequired_X{*b.X}
	}
	if b.Y != nil {
		x.xxx_hidden_O = &oneofRequired_Y{*b.Y}
	}
	if b.NameWithUnderscores != nil {
		x.xxx_hidden_O = &oneofRequired_NameWithUnderscores{*b.NameWithUnderscores}
	}
	if b.UnderAnd_1Number != nil {
		x.xxx_hidden_O = &oneofRequired_UnderAnd_1Number{*b.UnderAnd_1Number}
	}
	return m0
}

type case_OneofRequired_O protoreflect.FieldNumber

func (x case_OneofRequired_O) String() string {
	md := file_buf_validate_conformance_cases_oneofs_proto_msgTypes[3].Descriptor()
	if x == 0 {
		return "not set"
	}
	return protoimpl.X.MessageFieldStringOf(md, protoreflect.FieldNumber(x))
}

type isOneofRequired_O interface {
	isOneofRequired_O()
}

type oneofRequired_X struct {
	X string `protobuf:"bytes,1,opt,name=x,proto3,oneof"`
}

type oneofRequired_Y struct {
	Y int32 `protobuf:"varint,2,opt,name=y,proto3,oneof"`
}

type oneofRequired_NameWithUnderscores struct {
	NameWithUnderscores int32 `protobuf:"varint,3,opt,name=name_with_underscores,json=nameWithUnderscores,proto3,oneof"`
}

type oneofRequired_UnderAnd_1Number struct {
	UnderAnd_1Number int32 `protobuf:"varint,4,opt,name=under_and_1_number,json=underAnd1Number,proto3,oneof"`
}

func (*oneofRequired_X) isOneofRequired_O() {}

func (*oneofRequired_Y) isOneofRequired_O() {}

func (*oneofRequired_NameWithUnderscores) isOneofRequired_O() {}

func (*oneofRequired_UnderAnd_1Number) isOneofRequired_O() {}

type OneofRequiredWithRequiredField struct {
	state         protoimpl.MessageState             `protogen:"opaque.v1"`
	xxx_hidden_O  isOneofRequiredWithRequiredField_O `protobuf_oneof:"o"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *OneofRequiredWithRequiredField) Reset() {
	*x = OneofRequiredWithRequiredField{}
	mi := &file_buf_validate_conformance_cases_oneofs_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *OneofRequiredWithRequiredField) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OneofRequiredWithRequiredField) ProtoMessage() {}

func (x *OneofRequiredWithRequiredField) ProtoReflect() protoreflect.Message {
	mi := &file_buf_validate_conformance_cases_oneofs_proto_msgTypes[4]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

func (x *OneofRequiredWithRequiredField) GetA() string {
	if x != nil {
		if x, ok := x.xxx_hidden_O.(*oneofRequiredWithRequiredField_A); ok {
			return x.A
		}
	}
	return ""
}

func (x *OneofRequiredWithRequiredField) GetB() string {
	if x != nil {
		if x, ok := x.xxx_hidden_O.(*oneofRequiredWithRequiredField_B); ok {
			return x.B
		}
	}
	return ""
}

func (x *OneofRequiredWithRequiredField) SetA(v string) {
	x.xxx_hidden_O = &oneofRequiredWithRequiredField_A{v}
}

func (x *OneofRequiredWithRequiredField) SetB(v string) {
	x.xxx_hidden_O = &oneofRequiredWithRequiredField_B{v}
}

func (x *OneofRequiredWithRequiredField) HasO() bool {
	if x == nil {
		return false
	}
	return x.xxx_hidden_O != nil
}

func (x *OneofRequiredWithRequiredField) HasA() bool {
	if x == nil {
		return false
	}
	_, ok := x.xxx_hidden_O.(*oneofRequiredWithRequiredField_A)
	return ok
}

func (x *OneofRequiredWithRequiredField) HasB() bool {
	if x == nil {
		return false
	}
	_, ok := x.xxx_hidden_O.(*oneofRequiredWithRequiredField_B)
	return ok
}

func (x *OneofRequiredWithRequiredField) ClearO() {
	x.xxx_hidden_O = nil
}

func (x *OneofRequiredWithRequiredField) ClearA() {
	if _, ok := x.xxx_hidden_O.(*oneofRequiredWithRequiredField_A); ok {
		x.xxx_hidden_O = nil
	}
}

func (x *OneofRequiredWithRequiredField) ClearB() {
	if _, ok := x.xxx_hidden_O.(*oneofRequiredWithRequiredField_B); ok {
		x.xxx_hidden_O = nil
	}
}

const OneofRequiredWithRequiredField_O_not_set_case case_OneofRequiredWithRequiredField_O = 0
const OneofRequiredWithRequiredField_A_case case_OneofRequiredWithRequiredField_O = 1
const OneofRequiredWithRequiredField_B_case case_OneofRequiredWithRequiredField_O = 2

func (x *OneofRequiredWithRequiredField) WhichO() case_OneofRequiredWithRequiredField_O {
	if x == nil {
		return OneofRequiredWithRequiredField_O_not_set_case
	}
	switch x.xxx_hidden_O.(type) {
	case *oneofRequiredWithRequiredField_A:
		return OneofRequiredWithRequiredField_A_case
	case *oneofRequiredWithRequiredField_B:
		return OneofRequiredWithRequiredField_B_case
	default:
		return OneofRequiredWithRequiredField_O_not_set_case
	}
}

type OneofRequiredWithRequiredField_builder struct {
	_ [0]func() // Prevents comparability and use of unkeyed literals for the builder.

	// Fields of oneof xxx_hidden_O:
	A *string
	B *string
	// -- end of xxx_hidden_O
}

func (b0 OneofRequiredWithRequiredField_builder) Build() *OneofRequiredWithRequiredField {
	m0 := &OneofRequiredWithRequiredField{}
	b, x := &b0, m0
	_, _ = b, x
	if b.A != nil {
		x.xxx_hidden_O = &oneofRequiredWithRequiredField_A{*b.A}
	}
	if b.B != nil {
		x.xxx_hidden_O = &oneofRequiredWithRequiredField_B{*b.B}
	}
	return m0
}

type case_OneofRequiredWithRequiredField_O protoreflect.FieldNumber

func (x case_OneofRequiredWithRequiredField_O) String() string {
	md := file_buf_validate_conformance_cases_oneofs_proto_msgTypes[4].Descriptor()
	if x == 0 {
		return "not set"
	}
	return protoimpl.X.MessageFieldStringOf(md, protoreflect.FieldNumber(x))
}

type isOneofRequiredWithRequiredField_O interface {
	isOneofRequiredWithRequiredField_O()
}

type oneofRequiredWithRequiredField_A struct {
	A string `protobuf:"bytes,1,opt,name=a,proto3,oneof"`
}

type oneofRequiredWithRequiredField_B struct {
	B string `protobuf:"bytes,2,opt,name=b,proto3,oneof"`
}

func (*oneofRequiredWithRequiredField_A) isOneofRequiredWithRequiredField_O() {}

func (*oneofRequiredWithRequiredField_B) isOneofRequiredWithRequiredField_O() {}

var File_buf_validate_conformance_cases_oneofs_proto protoreflect.FileDescriptor

const file_buf_validate_conformance_cases_oneofs_proto_rawDesc = "" +
	"\n" +
	"+buf/validate/conformance/cases/oneofs.proto\x12\x1ebuf.validate.conformance.cases\x1a\x1bbuf/validate/validate.proto\")\n" +
	"\fTestOneofMsg\x12\x19\n" +
	"\x03val\x18\x01 \x01(\bB\a\xbaH\x04j\x02\b\x01R\x03val\"0\n" +
	"\tOneofNone\x12\x0e\n" +
	"\x01x\x18\x01 \x01(\tH\x00R\x01x\x12\x0e\n" +
	"\x01y\x18\x02 \x01(\x05H\x00R\x01yB\x03\n" +
	"\x01o\"\x7f\n" +
	"\x05Oneof\x12\x1a\n" +
	"\x01x\x18\x01 \x01(\tB\n" +
	"\xbaH\ar\x05:\x03fooH\x00R\x01x\x12\x17\n" +
	"\x01y\x18\x02 \x01(\x05B\a\xbaH\x04\x1a\x02 \x00H\x00R\x01y\x12<\n" +
	"\x01z\x18\x03 \x01(\v2,.buf.validate.conformance.cases.TestOneofMsgH\x00R\x01zB\x03\n" +
	"\x01o\"\xa0\x01\n" +
	"\rOneofRequired\x12\x0e\n" +
	"\x01x\x18\x01 \x01(\tH\x00R\x01x\x12\x0e\n" +
	"\x01y\x18\x02 \x01(\x05H\x00R\x01y\x124\n" +
	"\x15name_with_underscores\x18\x03 \x01(\x05H\x00R\x13nameWithUnderscores\x12-\n" +
	"\x12under_and_1_number\x18\x04 \x01(\x05H\x00R\x0funderAnd1NumberB\n" +
	"\n" +
	"\x01o\x12\x05\xbaH\x02\b\x01\"T\n" +
	"\x1eOneofRequiredWithRequiredField\x12\x16\n" +
	"\x01a\x18\x01 \x01(\tB\x06\xbaH\x03\xc8\x01\x01H\x00R\x01a\x12\x0e\n" +
	"\x01b\x18\x02 \x01(\tH\x00R\x01bB\n" +
	"\n" +
	"\x01o\x12\x05\xbaH\x02\b\x01B\x95\x02\n" +
	"\"com.buf.validate.conformance.casesB\vOneofsProtoP\x01ZFbuf.build/go/protovalidate/internal/gen/buf/validate/conformance/cases\xa2\x02\x04BVCC\xaa\x02\x1eBuf.Validate.Conformance.Cases\xca\x02\x1eBuf\\Validate\\Conformance\\Cases\xe2\x02*Buf\\Validate\\Conformance\\Cases\\GPBMetadata\xea\x02!Buf::Validate::Conformance::Casesb\x06proto3"

var file_buf_validate_conformance_cases_oneofs_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
var file_buf_validate_conformance_cases_oneofs_proto_goTypes = []any{
	(*TestOneofMsg)(nil),                   // 0: buf.validate.conformance.cases.TestOneofMsg
	(*OneofNone)(nil),                      // 1: buf.validate.conformance.cases.OneofNone
	(*Oneof)(nil),                          // 2: buf.validate.conformance.cases.Oneof
	(*OneofRequired)(nil),                  // 3: buf.validate.conformance.cases.OneofRequired
	(*OneofRequiredWithRequiredField)(nil), // 4: buf.validate.conformance.cases.OneofRequiredWithRequiredField
}
var file_buf_validate_conformance_cases_oneofs_proto_depIdxs = []int32{
	0, // 0: buf.validate.conformance.cases.Oneof.z:type_name -> buf.validate.conformance.cases.TestOneofMsg
	1, // [1:1] is the sub-list for method output_type
	1, // [1:1] is the sub-list for method input_type
	1, // [1:1] is the sub-list for extension type_name
	1, // [1:1] is the sub-list for extension extendee
	0, // [0:1] is the sub-list for field type_name
}

func init() { file_buf_validate_conformance_cases_oneofs_proto_init() }
func file_buf_validate_conformance_cases_oneofs_proto_init() {
	if File_buf_validate_conformance_cases_oneofs_proto != nil {
		return
	}
	file_buf_validate_conformance_cases_oneofs_proto_msgTypes[1].OneofWrappers = []any{
		(*oneofNone_X)(nil),
		(*oneofNone_Y)(nil),
	}
	file_buf_validate_conformance_cases_oneofs_proto_msgTypes[2].OneofWrappers = []any{
		(*oneof_X)(nil),
		(*oneof_Y)(nil),
		(*oneof_Z)(nil),
	}
	file_buf_validate_conformance_cases_oneofs_proto_msgTypes[3].OneofWrappers = []any{
		(*oneofRequired_X)(nil),
		(*oneofRequired_Y)(nil),
		(*oneofRequired_NameWithUnderscores)(nil),
		(*oneofRequired_UnderAnd_1Number)(nil),
	}
	file_buf_validate_conformance_cases_oneofs_proto_msgTypes[4].OneofWrappers = []any{
		(*oneofRequiredWithRequiredField_A)(nil),
		(*oneofRequiredWithRequiredField_B)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_buf_validate_conformance_cases_oneofs_proto_rawDesc), len(file_buf_validate_conformance_cases_oneofs_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   5,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_buf_validate_conformance_cases_oneofs_proto_goTypes,
		DependencyIndexes: file_buf_validate_conformance_cases_oneofs_proto_depIdxs,
		MessageInfos:      file_buf_validate_conformance_cases_oneofs_proto_msgTypes,
	}.Build()
	File_buf_validate_conformance_cases_oneofs_proto = out.File
	file_buf_validate_conformance_cases_oneofs_proto_goTypes = nil
	file_buf_validate_conformance_cases_oneofs_proto_depIdxs = nil
}
